Pythonでauカブコム証券APIを操作する。初心者向けに、やさしくシステム導入からサンプルコードの解説をします。[日本株自動売買・システムトレード]

Python

ブログ記事更新日:2021年5月9日

 

auカブコム証券APIを、Pythonから操作する方法を解説します。

 

初心者向けに、PythonのインストールからIDE(システムの統合開発環境)の導入を含めて解説しています。

 

 

auカブコム証券がやってくれました。

 

個人投資家向けにAPIの無償提供スタート

日本株式はもちろん、信用取引、先物・オプション取引にも対応しています。

 

動画で解説

 

このブログ記事と、ほぼ同じ内容です。(動画は、より詳細な情報を含んでいます)

 

 

関連動画

はじめてのPythonとplotlyで株価分析。動くチャートの作り方をやさしく解説。Google Colaboratoryで実行しています。完全無料でテクニカル分析が出来る!

 

 

 

Pythonのインストール

 

Pythonをインストールしましょう。

Pythonのインストール方法には大きく分けて2種類あります。

◇Python Package をインストールする方法
◇Anaconda をインストールする方法

 

今回はAnacondaをインストールします。

 

Anacondaをインストールするメリット

 

Anacondaはデーターサイエンスや、科学技術用のプラットフォームです。

Anacondaをインストールすると、Pythonと同時にデーターサイエンスのツールやライブラリーもインストールされます。

 

今回はAnacondaをインストールします。

アナコンダ ダウンロードページ
https://www.anaconda.com/

 

Windows10の方は 64ビットを選びましょう。

 

ダウンロードしたファイルを起動します。

 

ネクストボタンを押します。

 

内容を確認したら次に進みます。

 

ユーザーを指定

 

インストール先を選択。

特に変更が無ければそのままネクストボタンを押します。

 

下のチエックボックスにチェックを入れると、後からインストールするIDE(統合開発環境)からパスを見つけやすくなります。

 

インストールが完了しました。

ANAKONDAのアイコンの右隣にあるのが、これからインストールするPyCharm(IDE)のアイコンです。

 

インストールを終了すると、次のホームページが立ち上がることがあります。

そのまま消去してOK。

 

 

PyCharmのインストール

 

PyCharm はPythonのプログラミング開発に最適化されたIDE(統合開発環境)です。

もちろん他のIDEを使用していただいても、全く問題はありません。

 

https://www.jetbrains.com/ja-jp/pycharm/

 

有料版と無料版があります。

どちらでも問題ないと思いますが、私は有料版を使っています。

 

インストールを開始します。

 

インストールするフォルダを指定します。

こだわりが無ければ、デフォルトでOK。

 

こちらも好みですが、私はデスクトップにショートカットを作るチェックボックスと拡張子”.PY”を関連付けるチェックボックスにチェックを入れました。

 

インストールが完了しました。

 

契約内容を確認して、EXIT。

 

製品品質向上のため、匿名情報を送るかの確認。

どちらでも良いと思いますが、私は送らない条件でつぎに進みます。

 

無料版を使うのであれば、freeにチェックを入れてください。

有料版を使う方は、ユーザーネームとパスワードをいれて、アクティベートします。

 

PyCharmが起動しました。

 

PyCharmのメニューは日本語化する事が出来ます。

私は面倒なのでやっていません。

日本語化の手順はグーグル等で検索していただければ、すぐに見つかると思います。

 

フォントサイズをマウスホイールで変更する設定

 

File-Settings

 

General-Mouse Control の中のChange font size With Ctrl+Mouse Wheel にチエックを入れます。

 

auカブコム証券API設定

 

auカブコム証券のホームページにログイン

 

マイページ右側中央部分にkabuステーションのリンクがあります。

利用申し込みが済んでいない方は、済ませておいてください。

 

kabuステーション起動のリンクをクリックすると、こちらのウインドウが立ち上がります。

[インストール・起動]のボタンを押します。

 

setup.exeファイルがダウンロードされるので、setup.exeファイルを起動させます。

 

インストールをクリックします。

 

デスクトップにショートカットを作成するか聞かれますので、お好みで「はい」「いいえ」をクリックしてください。

迷うなら「はい」を選んでください。

 

口座番号とパスワードを登録して、ログインボタンを押します。

 

kabuステーションが立ち上がります。

 

kabuステーションAPI利用登録

 

kabuステーションAPIを利用するには、最初に登録が必要です。

 

auカブコム証券のホームページに戻って、「kabuステーションAPIポータル」をクリックしてください。

 

kabuステーションのホームページが開きます。

 

 

表示が小さいのですが、ページの下の方に「kabuステーション(R)API利用登録方法」のリンクがありますので、クリックしてください。

 

 

「kabuステーション(R)APIのご利用設定」をクリックします。

 

kabuステーション(R)API利用設定のページが開きます。

https://kabucom.github.io/kabusapi/ptal/howto.html

上のページの手順にしたがって「kabuステーション(R)APIを利用するための初期設定」を済ませてください。

 

kabuステーションAPIシステム設定

 

kabuステーション(R)APIを利用するための初期設定が済んだら、kabuステーションAPIシステム設定を行います。

 

「えーっ。まだ設定が続くの~」

 

そんな声が聞こえてきそうですが、もう一息です。

 

初期設定と同じページの「APIシステム設定」の手順にしたがって設定を行ってください。

 

Pythonサンプルコードをダウンロード

 

kabuステーションAPのIシステム設定が完了したら、公式ページからPythonサンプルコードをダウンロードしましょう。

 

「kabuステーション(R)開発者ポータルはこちら」 のリンクをクリックしてください。

ページ下段にサンプルコードへのリンクがあります。

 

サンプルコード >Python をクリックしてください。

 

GitHubのページに飛びますが、心配ありません。

Python.zip をクリックしてサンプルコードをダウンロードしましょう。

 

ダウンロードしたファイルは圧縮されていますので、好きな場所に展開してください。

展開したファイルはこちら。

 

簡単な説明が、 00.Readme.txt ファイルに記載されています。

 

【前提】
・PCにpython3がインストールされていること。
・PUSH配信(websocket)をするには、python3のインストール後にコマンドプロンプトにて以下のコマンドを実行する。
コマンド:py -m pip install websocket-client

【注意】
「token.py」ファイル名は、pythonで予約とされているため使用できません。

【kabuステAPI実行方法】
コマンドプロンプトから、各コマンドを実行する。

【ファイルリスト】
1.トークン発行
コマンド:python kabusapi_token.py
※1で発行したtokenを2以降の各ファイル内の「X-API-KEY」に指定する

2.注文発注(現物)
(1)買
コマンド:python kabusapi_sendorder_cash_buy.py
(2)売
コマンド:python kabusapi_sendorder_cash_sell.py

3.注文発注(信用)
(1)新規
コマンド:python kabusapi_sendorder_margin_new.py
(2)返済(決済順序)
コマンド:python kabusapi_sendorder_margin_pay_ClosePositionOrder.py
(3)返済(返済建玉指定)
コマンド:python kabusapi_sendorder_margin_pay_ClosePositions.py

4.注文発注(先物)
(1)新規
コマンド:python kabusapi_sendorder_future_new.py
(2)返済(決済順序)
コマンド:python kabusapi_sendorder_future_pay_ClosePositionOrder.py
(3)返済(返済建玉指定)
コマンド:python kabusapi_sendorder_future_pay_ClosePositions.py

5.注文発注(OP)
(1)新規
コマンド:python kabusapi_sendorder_option_new.py
(2)返済(決済順序)
コマンド:python kabusapi_sendorder_option_pay_ClosePositionOrder.py
(3)返済(返済建玉指定)
コマンド:python kabusapi_sendorder_option_pay_ClosePositions.py

6.注文取消
コマンド:python kabusapi_cancelorder.py

7.取引余力(現物)
コマンド:python kabusapi_cash.py

8.取引余力(信用)
コマンド:python kabusapi_margin.py

9.取引余力(先物)
コマンド:python kabusapi_wallet_future.py

10.取引余力(OP)
コマンド:python kabusapi_wallet_option.py

11.時価情報・板情報
コマンド:python kabusapi_board.py

12.銘柄情報
コマンド:python kabusapi_symbol.py

13.注文約定照会
コマンド:python kabusapi_orders.py

14.残高照会
コマンド:python kabusapi_positions.py

15.先物銘柄コード取得
コマンド:python kabusapi_symbolname_future.py

16.オプション銘柄コード取得
コマンド:python kabusapi_symbolname_option.py

17.PUSH配信開始
コマンド:python kabusapi_websocket.py

18.銘柄登録
コマンド:python kabusapi_register.py

19.銘柄登録解除
コマンド:python kabusapi_unregister.py

20.銘柄登録全解除
コマンド:python kabusapi_unregisterall.py

21. 詳細ランキング
コマンド:kabusapi_ranking.py

22. 為替情報
コマンド:kabusapi_exchange.py

23. 規制情報
コマンド:kabusapi_regulations.py

24. 優先市場
コマンド:kabusapi_primaryexchange.py

25. ソフトリミット
コマンド:kabusapi_apisoftlimit.py

// ライセンスについて
Copyright (c) 2020 au Kabucom Securities Co., Ltd.
Released under the MIT license
https://opensource.org/licenses/mit-license.php

 

Python初心者の方は、この 00.Readme.txt ファイルの内容を読んでも何が何だかわかりませんよね。

 

この記事の前半でインストールしたPyCharmでサンプルコードを開いてみます。

※PyCharm はPythonのプログラミング開発に最適化されたIDE(統合開発環境)です。

 

サンプルコードの変更(トークンやパスワードの扱い方)

 

ダウンロードしたサンプルコードをPyCharmで開きます。

 

トークンの取得

 

サンプルコードをPyCharmで開きました。

 

PythonからkabuステーションAPIを使ってデーターを取得するには、最初にトークンを発行する必要があります。

トークンを発行するサンプルコードkabusapi_token.pyの中身はこちら。

 

obj = { ‘APIPassword’: ‘qwerty‘ }

qwerty部分にAPIパスワードを入力して、実行します。

 

トークンが発行されました。

 

 

注文発注(現物)

 

注文発注(現物)のサンプルコードを見てみましょう。

 

obj = { ‘Password’: ‘123456‘,

123456の部分に取引パスワードを入力。

 

req.add_header(‘X-API-KEY’, ‘ed94b0d34f9441c3931621e55230e402‘)

ed94b0d34f9441c3931621e55230e402の部分に先ほど取得したトークンを入力します。

 

このように、サンプルコードには取引パスワードや、トークンをPythonコードの中に直接記述するようになっています。

 

運用する上で好ましくありません。

 

パスワードや、トークンをまとめて管理できるように変更してみます。

 

パスワードやトークンなどの情報をまとめる

 

パスワードやトークンなどの情報をセッティングファイルにまとめます。

 

PyCharmのプロジェクトファイルの上で右クリック。

New – Fileを選んで新しくsettings.iniファイルを作成します。

 

settings.iniファイルに次のように入力します。

XXXXXの部分は、ご自分のパスワードや取得したトークンを入力してください。

(2行目の空白行は削除)

 

次にPythonファイルを新しく作成します。

New – Python Fileを選んで新しくsettings.pyファイルを作成します。

 

settings.pyのコードはこちら。

 

設定ファイル管理モジュールをインポート

import configparser

 

読み込んでいるのは、settings.iniファイルの内容です。

conf = configparser.ConfigParser()
conf.read(‘settings.ini’)

 

APIパスワードを APIPassword 変数に代入

APIPassword = conf[‘aukabu’][‘APIPassword’]

 

トークンを Token 変数に代入

Token = conf[‘aukabu’][‘Token’]

 

パスワードを Password 変数に代入
Password = conf[‘aukabu’][‘Password’]

 

サンプルコードを書き直す

 

パスワードやトークンを変数として取得出来るようになりましたので、サンプルコードに手を加えてみます。

 

時価情報・板情報 kabusapi_board.py

 

加えたのはこの2行。

トークンをsettingsから取得しています。

##追記
import settings
Token = settings.Token
##追記ここまで

 

そして、トークンを変数Tokenに書き換えました。

req.add_header(‘X-API-KEY’, Token)

 

 

サンプルコード(追記したもの) 時価情報・板情報 kabusapi_board.pyを実行しました・

日本製鉄の情報が取得できています。

 

 

 

今回のブログ記事はここまでにします。

 

随時、auカブコム証券API関連の記事を配信しています。

 

簡単な自動売買ができるようになるまで、情報を配信します。

 

記事内容にご興味がある方はブックマークしていただけると幸いです。

 

YouTubeの解説動画とリンクしていますので、YouTubeチャンネルの登録もご検討ください。

 

 

この記事を書いた人

ゆたかドットらいふ編集部

あしおゆたか

投資歴21年の個人投資家

机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。

スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。(現在自粛中)

◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション

◇運営者情報はこちら

 

ページの先頭へ