auカブコム証券のkabu STATION API(kabusapi)のノウハウ
APIでリクエストしなくても、登録された銘柄の情報が自動的に配信される便利な機能があります。 しかし、いくつか注意点がありますのでまとめておきます。
用語
- Regist:銘柄登録のこと
- WebSocket:WebサーバとWebブラウザの間で双方向通信できるようにする技術仕様
登録銘柄関係の REST API
- 銘柄登録(/register)
- 銘柄登録解除(/unregister)
- 銘柄登録全解除(/unregister/all)
銘柄呼びだしでも勝手に追加される
- 普通に銘柄を呼び出すだけで、銘柄リストに追加される
- 銘柄を呼び出す段階で、Regist処理が走り、リアルタイムでカブステーション上に時価情報がPUSH及び、保持される
- 以降はカブステーション上の問合せで情報が返るので、高速に情報を取得可能となる
現在登録されている一覧を取得する方法(PUSH配信する銘柄)
PUT register
lists = { 'Symbols':[] }
registを銘柄指定無しで実行します。銘柄登録時に一覧が取得できることを利用します。
登録銘柄のPUSHされるタイミング
- 登録銘柄の価格に変更があったときにPUSH配信される
- 寄前であってもkabuステーションに配信があった情報に関してはPUSH配信される
- 未配信の情報に関してはNullとなる
- 変更がない場合は配信されない(1分足等はまだ実装されてない)
- 場間(昼休み)と引け後での配信は無い
昼休み等の配信ですが、kabuステーション上になんかしらの配信がされている情報に関しては配信されるとのことです。つまり、kabuステーションにデータが降ってくればそのままPUSHされますよってことですね。
ちなみに、検証用は、疎通を確認するのみを目的としており、銘柄登録は空が戻ります。検証用は主にスタブによる返信です。
注意事項
- 登録銘柄50件まで
- 銘柄を呼び出すだけで、銘柄リストには追加される
- APIの銘柄登録リストは再起動で初期化される
- リアルタイムな情報なので、場間(昼休み)引け後、休日には配信されない
- 変更がない場合は配信されない
- 配信情報は、取引所から受信した情報をもとにそのまま配信し、依存関係を持っていない
- 情報配信は、kabuステーションが受信しているデータを再配信している
- KabuステーションAPI側の関係で、PUSH配信のWebsocketは最新の1コネクションのみ有効になる
変化がないとPUSH配信されないので、まずは現状を銘柄情報の直近を取得したうえで、PUSH配信の情報を利用するとよいです。
配信情報は、取引所から受信した情報をもとにそのまま配信し、依存関係を持っていないことを十分考慮する必要があります。
時価PUSH配信のTradingVolume(売買高)とTradingValue(売買代金)などは、同時に更新されるべきですが、APIでは、情報受信と同時に配信を行っている都合上、先に売買高の更新が行われたりする場合、不整合が発生することがあります。
kabuステーションログアウト後も配信される
- kabuステーションは、5時~6時の間に強制ログアウトされる
- WebSocketが切断されることはない
- 銘柄のリクエストについては過去のトークンで行われたもので、時価情報が配信される
- 時価情報取得(PUSH)に関しては情報を現状受け取ることができる
- 銘柄登録、削除等TOKENを利用するリクエストは、TOKENが無効化されているため、再認証した上でリクエストが必要
参考
2022/09/25