記事の更新日:2022年5月3日
2020年8月auカブコム証券は個人投資家向けに、「kabuステーション®API」をリリースしました。
kabuステーション®APIは、「個人投資家に、デジタルの武器を」 と冠して、個人投資家向けに提供されているプログラミング発注基盤です。
「kabuステーション® API」は、kabuステーション®を起動したお客さまのパソコンより、任意の開発言語によるデータ取得や注文執行が可能となります。汎用性の高い、REST形式により実行されます。C#、Python、Java、PHP等お客さまの実装しやすいプログラミング言語をお選びいただける他、外部SaaS等のクラウドツール等との連携が可能となります。Web系、機械学習系などさまざまな技術バックグラウンド・学習言語が多様化している背景からREST形式による汎用性の高い実装を支援いたします。
引用元:auカブコム証券API公式ページ https://kabu.com/company/lp/lp90.html
素晴らしいではありませんか!
自分が思い描いた通りの株取引をプログラミングすれば、全自動取引などが可能になるのです。
平日の昼間は、本業が忙しくて株式相場を見る事が出来ないサラリーマンや主婦でも、アクティブな株取引環境を構築できます。
しかし、良いことずくめのように思えるkabuステーション®APIですが、大きな難点があります。
「初心者向けの情報が少ない!!」
少ないと言うよりも「ほとんど無い!?」
公式のリファレンスは、エンジニア向けで初学者が見ても理解するのは難しいでしょう。
このブログでも、初心者向けに解説記事を投稿していますが、初学者には難しかったかも知れません。
Pythonでauカブコム証券APIを操作する。初心者向けに、やさしくシステム導入からサンプルコードの解説をします。[日本株自動売買・システムトレード]
このブログ記事では、Pythonを学び始めて間がない方にもご理解いただけるように、丁寧に解説したつもりです。
少し難しく感じるかも知れませんが、このブログページをブックマークしていただき、ゆっくりノンビリ読み進めていただければ幸いです。
解説内容をご理解いただいた後には、「株式投資の未来」を思い描くことが出来るでしょう。
「kabuステーション®API」準備
「kabuステーション®API」をPythonで使用する為には事前準備が必要です。
- auカブコム証券口座開設
- Pythonのインストール
- auカブコム証券API設定
この部分を含めて解説を行うと、記事が長くなりすぎてしまいます。
事前準備の上記3項目は以前投稿した記事を参考にしてください。
※記事中PyCharmのインストールは不要なので、読み飛ばして下さい。
Pythonでauカブコム証券APIを操作する。初心者向けに、やさしくシステム導入からサンプルコードの解説をします。[日本株自動売買・システムトレード]
同内容をYouTubeでも、公開しています。
Jupyter Lab(ジュピター・ラボ)を起動
Pythonを実行するため、Jupyter Lab(ジュピター・ラボ)を起動します。
Jupyter Lab(ジュピター・ラボ)とは、ブラウザ上で動作するPythonの対話型実行環境です。
Jupyter Lab(ジュピター・ラボ)は、Jupyter Notebook(ジュピター・ノートブック)の後継版です。
Jupyter Notebookでも、ほぼ同じように操作できますので、Jupyter Notebookに慣れている方は、無理にJupyter Labを使用しなくても結構です。
ANACONDAのインストールが正常に終わっていれば、すべてのアプリに Anaconda navigator が表示されているはずです。
Anaconda navigatorを起動
まず、Anaconda navigatorを起動します。
続いて、Jupyter Lab(ジュピター・ラボ)のアイコンをクリックして起動させてください。
初回起動時は、インストールから始まるかも知れません。
Jupyter Lab(ジュピター・ラボ)のアイコンの下部が[insutall]になっていたら、インストールが完了するまで少し待ってください。
アイコンが[Launch]に変われば起動する事が出来ます。
なぜ、IDE統合開発環境を使用しないのか
なぜ、IDE(統合開発環境)を使用しないのか?
このように思う方も多いでしょう。
もちろん、実際の株取引プログラム開発をするならば、「Visual Studio Code」や「PyCharm」などの、IDE(統合開発環境)は必須です。
私も開発には「PyCharm」を使用しています。
ただし、初学者がPythonコードを書きながら学習を進めるには、Jupyter Lab(ジュピター・ラボ)が適していると思います。
まずは、Jupyter Lab(ジュピター・ラボ)でPythonコードへの理解を深めて、次のステップでIDE(統合開発環境)に移行する。
結果的にこのステップで学習を進める方が、理解が早いはずです。
もちろん、IDE(統合開発環境)を使える方はそちらの環境でも構いません。
Pythonサンプルコード取得
auカブコム証券API公式ページから、Pythonサンプルコードを取得します。
ページが表示されたら少し下にスクロールすると、開発者ポータルへのリンクアイコンが表示されるのでクリックします。
続けてページ下段の >Python リンクをクリックします。
Python.zipをクリックすると、圧縮されたサンプルコードがダウンロードされます。
任意のフォルダに展開してください。
私の場合は C:\Users\ashio\workspace\aukabu\lec_aukabuAPI に展開しました。
Jupyter Lab(ジュピター・ラボ)でサンプルコードを確認
Jupyter Lab(ジュピター・ラボ)でサンプルコードを確認します。
画面左枠のフォルダアイコンをクリックして、フォルダを選択するウインドウを開いてください。
サンプルコードを保存したフォルダを開いてください。
私の場合はこのフォルダです。 C:\Users\ashio\workspace\aukabu\lec_aukabuAPI
Pythonフォルダの中を見てみましょう。
拡張子.pyのファイルがPythonサンプルコードです。
説明ファイルを開く
00.Readme.txtファイルにPythonサンプルコードの説明が記載されています。
ところがダブルクリックで開こうとするると、このウインドウが現れファイルを開く事ができませんでした。
Windows標準のメモ帳でなら開くことができました。
00.Readme.txtの内容は以下になります。
===== 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)新規_プレミアム料入札
kabusapi_sendorder_margin_daytrade.py
(3)返済(決済順序)
コマンド:python kabusapi_sendorder_margin_pay_ClosePositionOrder.py
(4)返済(返済建玉指定)
コマンド: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
26. プレミアム料取得
kabusapi_marginpremium.py
// ライセンスについて
Copyright (c) 2020 au Kabucom Securities Co., Ltd.
Released under the MIT license
https://opensource.org/licenses/mit-license.php
===== 00.Readme.txtの内容 ここまで=====
auカブコム証券APIで出来ることの、ほぼすべてのサンプルコードが含まれているようです。
株を発注するコード
株を発注するコードを見てみましょう。
00.Readme.txtによると 注文発注(現物)買いのコードはこちらです。
コマンド:python kabusapi_sendorder_cash_buy.py
Jupyter Lab(ジュピター・ラボ)上でダブルクリックすると、右側のウインドウにサンプルコードが表示されました。
何やらゴチャゴチャ書いてありますね。
分かるところもあるけど・・・・・・
そんな感じでしょうか。
大丈夫です!
これからじっくり解説してゆきます。(*^_^*)
コード解説の前に、もう1つだけ覚えておくことがあります。
auカブコム証券API実行条件
auカブコム証券APIのPythonサンプルコードを実行するには条件があります。
◇事前準備が完了していること
「kabuステーション®API」をPythonで使用する為には事前準備が必要です。
- auカブコム証券口座開設
- Pythonのインストール
- auカブコム証券API設定
◇kabuステーションにログインしていること
auカブコム証券API設定が正しく完了していれば、kabuステーションのウインドウ右上のアイコンが、緑に光っています。
◇有効なトークンが取得されていること
有効なトークン? また新たな単語が出てきました。
「有効なトークン」とは何者なのでしょうか。
先ほど、 注文発注(現物)買いのサンプルコードをみました。
コマンド:python kabusapi_sendorder_cash_buy.py
31行目にこのコードが記載されています。
req.add_header(‘X-API-KEY’, ‘ed94b0d34f9441c3931621e55230e402‘)
青色の文字列がトークンです。
トークンはauカブコム証券APIのPythonコードを実行する事で取得できます。
ただし取得したトークンには有効期限があります。
発行されたAPIトークンは以下のタイミングで無効となります。
・kabuステーションを終了した時
・kabuステーションからログアウトした時
・別のトークンが新たに発行された時出所: 公式REST API リファレンス
分かりにくいですね。
サンプルコードの解説をしながら、改めて「トークン」の話をしてゆきます。
今のところは、「Pythonコードを実行するにはトークンが必要」とだけ覚えておいてください。
Pythonサンプルコード解説
お待たせしました。
いよいよ、サンプルコード解説にはいります。
トークンを取得する
まず、トークンを取得します。
トークンを取得するPythonコードはこちらです。
kabusapi_token.py
Jupyter Lab(ジュピター・ラボ)上でダブルクリックすると、右側のウインドウにトークン取得のサンプルコードが表示されました。
さっそくこのサンプルコードを実行したいところですが、もう1手順あります。
サンプルコードの拡張子を見てください .py です。
.pyはPythonファイルの拡張子です。
しかし、Jupyter Lab(ジュピター・ラボ)やJupyter Notebook(ジュピター・ノートブック)で編集出来るファイルの拡張子は .ipynbです。
なので、このままではサンプルコードを実行出来ません。
新しくJupyter Lab(ジュピター・ラボ)形式のファイルを作って、コードを貼り付けましょう。
Jupyter Lab(ジュピター・ラボ)の File-Nwe-Notebook と進みます。
下のウインドウが現れたら、Selectボタンを押します。
新しくJupyter Lab(ジュピター・ラボ)形式のファイルが作成されました。
kabusapi_token.pyコードを貼り付けましょう。
これで、Jupyter Lab(ジュピター・ラボ)で編集・実行が出来るようになりました。
次に続く
解説が長くなりましたので、このつづきは新しいページをご覧下さい。
auカブコム証券API Pythonで発注する方法を、超初心者向けにゆっくり解説。Page2 [kabuステーション®API]
この記事を書いた人
あしおゆたか
株式投資歴22年のシステムトレーダー(←主な取引手法)
机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。
スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。
◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション
◇運営者情報はこちら