ブログ再開しました。システムトレードプログラム作成していきます。

kabuステーションAPIを利用したExcel VBAによるシステムトレードプログラム構成

 今後作成するシステムトレードプログラム構成を下図のとおり描いた。本記事では各構成要素のポイントをまとめ、詳細については別記事でまとめていく。

システムトレードプログラム構成のポイント

  • ①~③では、取引時間(9:00~15:00)に合わせてBIOS(APM)→Windows起動、Windows(タスクスケジューラ)→Excel起動、Excel(Auto_Open)→各プログラム起動を行う。
  • ④について、kabuステーションAPIはkabuSTATIONとやり取りを行うAPIであるため、APIを使うときはkabuSTATIONを起動しておくことが必要。そして、kabuステーションAPIはApplication Referenceという形式であり、タスクスケジューラによって起動させることができないため、VBAのUIautomationによって力技で起動する。
  • ⑤では、トークン取得はExcelのリボン上で行うため、UIautomation、WindowsAPIを駆使して力技で行う。
  • ⑥~⑦において、PUSH API(kabuSTATION_API_PUSH_sample参照:Websocket関数)を利用してリアルタイムデータ取得を行っている。PUSH APIを利用するために事前に銘柄登録(kabuSTATION_API_function_sample参照:REGISTERSYMBOL関数)を行う。
  • ⑧では何らかの売・買判断を行い、⑨で発注(kabuSTATION_API_ORDER_sample参照)し、⑩では約定後の残高照会を行う。
  • ⑪について、執筆時点(2022/1/23)では銘柄登録の上限数は50銘柄であること、kabuステーションAPIでは分足データの過去データを取得できないことから、kabuSTATIONのチャートに描かれる分足データをCSVで取得するため、UIAutomation、WindowsAPIを駆使してkabuステーションAPIを利用せずに力技で全銘柄の分足4本値を取得する。⑫では、そのデータを過去のCSVデータと連結して保存する。
  • ⑬~⑭では、翌日の準備として、最新のデータを用いてストラテジーパラメータを変更するとともに、自動売買の対象となる50銘柄を選定する。
  • ⑮では、Excelを保存し、kabuSTATION、Excel、Windowsをシャットダウンする。

 いま考えている全体構成は以上。

Power Automate Desktop

 現在プログラムの完全自動化を目指して奮闘中ですが、結構大変です。VBA の知識だけでなく、kabuステーションAPIの使い方を知る必要があるとは思っていましたが…実際に完全自動化するにはkabuステーションAPIで対応仕切れないところがありました。そういった部分はWindowsを操作すべくUIAutmationを活用し、それでも対応し切れないところがあるのでwindowsAPIを駆使するといった力技が必要となりました…トライ&エラーの繰り返しで、心が折れそうでした。

 そんな折に出会ったのがPower Automate Desktopです。Windows操作の自動化ソフトですが、これはすごいです。Excelの「マクロの記録」のようにWindowsの操作をコーディングできるし、コーディングはワークフローで示されるので、誰でも簡単にできる、そして無料でほとんどの機能が使えるといった優れものです。ただ残念なことに指定時間に起動するといった機能は有料でした…が!UIAutomationを駆使するとその壁を乗り越えれます。今回のシステムでは破線で示した部分で、実際に使ってませんが、便利なので、その方法は今後まとめておきます。

最新情報をチェックしよう!