(楽天証券の口座で取引する前提で)デイトレ自動売買を実現するには、Windows / Excel 上で マーケットスピード II RSS を利用することがまずは確実な方法だと考えました。そこで、Windows / Excel / VBA で自動売買のためのマクロを作ってリアルタイムの取引シミュレーションを始めており、Python で検証をしています。
現在の開発状況を更新しました。
フェーズ | 開 始 | 状 況 | 目 的 | 成 果 |
---|---|---|---|---|
Phase 1 | 2024-12-10 | 終了 | 実現可能性 (feasibility) |
|
Phase 2 | 2024-12-16 | 終了 | マクロ再構成 |
|
Phase 3 | 2024-12-31 | 取りやめ | 実装 |
|
Phase 4 | 2025-03-09 | 開発中 | 評価・実装 |
|
Phase 5 | 2025-05-17 | 開発中 | 再評価・再実装 |
|
Phase 6 | 2025-06-?? | 未着手 | 本運用 |
|
プログラムで売買判断をさせるメインの手法は、ティックデータに適用できるようにした Parabolic SAR です [3]。
しかし単純に Parabolic SAR を適用するだけでは稼げないので、工夫を加えながら実用に耐えうるアルゴリズムに仕上げようとシミュレーションに励んでいる毎日です。
日々のアイデアを整理するために、時々ブログ記事にまとめています。
アプリはまだ作り直し中
現在開発中のアプリにおける情報の流れを下記に整理しました。情報の流れが双方向にはなっていますが、現在のところは株価データを読み込んでいるだけなので実質的に右側への一方向です。
Python のアプリですが、ベースの GUI は PySide6 [4]、Excel(マーケットスピード2 RSS)とのやりとりは xlwings [5]、チャート作成は(迷った末に)PyQtGraph [6] を使うということで、ひとまず使用する開発環境およびライブラリを固定しました。
現在のところ、リアルタイムでティックデータを取得して、株価と Parabolic SAR のトレンド点をプロット、売買ボタンのクリックで売買シミュレーションができるまで、アプリの作り込みを進めました。
少なくとも、日々のデータ収集は、今まで使用していた VBA アプリから完全に切り替えて、この開発中のアプリでできるようになりました。
収集したデータのレビューと売買シミュレーション
開発中のアプリは、ザラ場ではデータ収集にしか使えていませんが、デバッグ・モードでは、右側のドックに並べた売買ボタンをクリックして売買シミュレーションができるようになりました。
売買履歴も表示できるようにしました。
自動売買は少し遠のいたか?
自動売買の実現を諦めたわけではありませんが、このアプリの売買ボタンをクリックして身をもってデイトレの実践を重ねないと、自動売買の実現には辿り着けないだろうと思っています。そういうわけで、アプリの機能としては売買ボタンのクリック操作で実際に売買ができるところまで実装する予定です。
スレッド、スレッド、スレッド
タイマーで 1 秒毎に Excel から株価を収集してチャートを更新するアプリを作っていると、スレッドを利用した並列処理(マルチスレッド・プログラミング)の重要性を痛感します。
Parabolic SAR の処理は、今のところティックデータに直接適用しているだけなので、データを取得するスレッド内で計算させていました。しかし、ティックデータにはノイズが多いので、ゆくゆくはスムージングなどの前処理を加えようと考えています。Python は便利なのでいろいろ機能を加えてしまうのですが、そうするとどうしても計算コストがかかるようになります。Parabolic SAR などのデータ処理を毎秒の処理内に収まるようにするには、銘柄毎にスレッド化して、ベンチマークを計測しながらデータ処理の内容を吟味できるようにしておいた方が良さそうです。
というわけで、今の内に片付けてしまおうと、この週末は Parabolic SAR の算出処理をスレッド化するところまで進めました。これでメインスレッドを GUI のイベント処理やチャートの描画に専念させ、毎秒の株価データ読み込みや銘柄毎の Parabolic SAR の算出など、他の処理のほとんどを別スレッドに移してしまったことになります。コーディングがやや煩雑になりましたが、主要な機能を独立、並列化できました。慣れれば、この方がプログラムを保守しやすいかもしれません。
ひとまず、ちゃんと動いているようにみえていますが、来週はデバッグ作業に明け暮れることになりそうです。
参考サイト
- マーケットスピード II RSS | 楽天証券のトレーディングツール
- マーケットスピード II RSS 関数マニュアル
- 私の株日記: Realtime Parabolic SAR
- Qt for Python
- xlwings Documentation
- PyQtGraph - Scientific Graphics and GUI Library for Python


0 件のコメント:
コメントを投稿