楽天証券の口座で取引する前提で、デイトレの自動売買を実現するには、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-08-11 | 開発中 | 評価・実装 |
|
Phase 7 | 2025-09-?? | 未着手 | 本運用 |
|
Python で作っている自作のデイトレアプリで、ゆくゆくは自動売買に挑戦するために取り組んでいます。しかし自動売買実現までの道のりは長いので、まずはセミオート操作で売買ができるように進めています。以下は株価などの情報の流れを示しています。
楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード2 RSS を介して取引をする構成を取っています。
強化学習モデルのパフォーマンスに驚く
ChatGPT5 の能力を試してみたくなり、ある制約条件下のデイトレのシミュレーションで、強化学習ができる売買モデルのサンプル (Python / PyTorch) を提案してもらいました。
提案してもらったサンプルを少し加工して、過去のティックデータでシミュレーション上の収益を評価してみたところ、そのパフォーマンスの高さにびっくりしました。😮
下記チャートは、三菱重工業 (7011) について、建玉 100 株、ナンピン無しに1日に何度も信用売買した収益パフォーマンスです。その日のティックデータに売買モデルを適用したときの収益をプロットし、翌日のために 10 回の再学習をさせています。
現在株価を指値にして売買が成立すると仮定して、スキャルピングで利益を積み上げています。このサンプルは、BUY / SELL / HOLD の 3 つの状態下で報酬(収益)を最大化するという条件だけで、初期の学習曲線で収益が上がった後も継続的にパフォーマンスを維持できています。
学習曲線の向上を経てパフォーマンスが維持されることについて、モデルを破棄して 0 から過去数ヶ月分のティックデータを学習させ直して確認を繰り返しましたが、いずれも同じ傾向が得られることを確認できました。このモデルを出発点にして実用的なモデルに仕上げていくことを開発の目的にできそうです。
Parabolic SAR のアプローチを捨てる
強化学習モデルのパフォーマンスを知り、自動売買に Parabolic SAR のアプローチを利用することを諦める決心がつきました。
開発中のアプリは、実際の売買機能が未実装ですが、リアルタイムでデータを取得する機能を確認できているので、その機能を残して Parabolic SAR に関わる機能のモジュールをすべて外しました。
ニューラルネットワークを利用する懸念
会社勤めをしていたころ、ニューラルネットワークを使わない機械学習システムを開発するのにさえ、化け物みたいなパワーのコンピュータを利用していました。まして、ニューラルネットワークを応用した機械学習を利用するとなると、コンピュータ・パワーとリソースがとにかく必要になるだろうと懸念していました。
そのため、自動売買アルゴリズムを開発するにあたって、まずは機械学習の利用を前提としないアルゴリズムにしたいと考えていました。しかし、値動きに応じて柔軟に対応できるような仕組みを開発することの難しさを思い知ったのでした。
そして、結局のところ機械学習を利用したアプローチの魅力には抗えませんでした。しかも、単純なモデルであれば GPU が無くてもそこそこ計算できるということも判りました。
コンピュータ・パワーを追求し始めるとキリがないので、まずは工夫して現行のシステムで対応できるかどうかを見極めながら取り組んでいきたいと思います。
参考サイト
- マーケットスピード II RSS | 楽天証券のトレーディングツール
- マーケットスピード II RSS 関数マニュアル
- PythonでGUIを設計 | Qtの公式Pythonバインディング
- PyQtGraph - Scientific Graphics and GUI Library for Python
- Python in Excel alternative: Open. Self-hosted. No limits.
- Book - xlwings Documentation
- 私の株日記: Realtime Parabolic SAR


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