記事の更新日:2022年5月4日
auカブコム証券「kabuステーション®API」Pythonサンプルコードを丁寧に解説しています。
このブログ記事は下の解説ページの続きです。
auカブコム証券API Pythonで発注する方法を、超初心者向けにゆっくり解説。Page2 [kabuステーション®API]
Pythonサンプルコード解説
トークンを取得するサンプルコードを、4つの要素に分解しました。
これまでに要素1から要素3までの解説が終了しています。
1~4の要素に分解しています。
- 要素1:ライブラリーのインポート
- 要素2:送信データーの作成
- 要素3:処理内容の指定
- 要素4:処理の実行
要素4:処理の実行
要素4はさらに4つの要素に分解されます。
ここから先の解説は、トークンを取得するサンプルコードの出力結果を見ながらの方が理解しやすいと思います。
サンプルコードを実行してみましょう。
トークンを取得するサンプルコード実行
トークンを取得するサンプルコードを編集します。
Jupyter Lab(ジュピター・ラボ)をアクティブにします。
Pythonコードの記述されている部分(セル)をクリックしてアクティブにします。
この状態で、Shift+Enterキーを押すと、アクティブなセルのPythonコードだけが実行されます。
下図は、Pythonコードが実行された結果です。
26行目の下にメッセージが出力されました。
’トークン取得失敗’と出力されています。
このエラーは、5行目に正しいAPIパスワードが入力されていないために発生しました。
このAPIパスワードとは、kabuステーションのAPIシステム設定で登録したパスワードになります。
コードを一部変更しました。
4行目に正しいパスワードをAPIPasswordという変数に代入するコードを追加し、5行目にその変数を記載しました。
※4行目のパスワード’xxx△△△◇◇◇’は、あなたの正規のパスワードに置き換えてください。
トークンが正しく出力されています。
要素分割されたコードと出力結果の比較
要素分割されたPythonコードと、出力結果を並べて表示しました。
13行目からのwith句でサーバーから返される値(レスポンス)を受け取ります。
14行目から17行目までのコードで、レスポンス状態を示す内容が出力(Print)されます。(青の点線で囲った部分)
目的はトークンを取得する事なので、細分化A’のコードは削除しても構いません。
18行目で、JSON文字列を辞書に変換してcontent変数に代入。
19行目のpprintで、出力されるデーターを見栄え良く(人間が判読しやすいよう)自動で整形して出力(Print)
例外処理(exception)
コードを実行して得られた出力結果は、細分化Aが出力した値です。
それでは、細分化B、細分化Cのコードは何のためにあるのでしょうか。
上の図12行目に try: と記述されています。
そして、20行目と24行目に except と記述されています。
これは、予期しない値が返ってきた際にプログラムがエラーで止まらないようにするための記述です。
例外処理と呼ばれます。
実行したい処理は、上図の細分化Aのようにtry:以降に記述します。
例外が発生した場合は、その内容によって上図の細分化BまたはCが実行されます。
詳しくは「try-except python」などで検索してみてください。
トークンだけを取り出す
トークンを取得するサンプルコード実行した理由は、取得したトークンを使って発注のPythonコードを実行させることです。
トークンだけを取り出すコードはこちらです。
上図18行目のコードで、JSON文字列を辞書に変換してcontent変数に代入。
content = json.loads(res.read())
下の1行を追加して、トークンだけをtoken_value変数に代入。
token_value = content.get(‘Token’)
次に続く
トークン取得のサンプルコードの解説がひととおり終わりました。
ここらで、一息つきましょうか。
次は、トークン取得のコードを関数化します。
auカブコム証券API Pythonで発注する方法を、超初心者向けにゆっくり解説。Page4 トークン取得を関数化 [kabuステーション®API]
この記事を書いた人
あしおゆたか
株式投資歴22年のシステムトレーダー(←主な取引手法)
机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。
スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。
◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション
◇運営者情報はこちら