2025-08-17

自動売買への道 (2025-08-17)

楽天証券の口座で取引する前提で、デイトレの自動売買を実現するには、Windows / Excel 上で マーケットスピード II RSS を利用することが確実な方法だと考えました。そこで、Windows / Excel / VBA で自動売買のためのマクロを作ってリアルタイムの取引シミュレーションを始めており、Python で検証をしています。

現在の開発状況を更新しました。

フェーズ 開 始 状 況 目 的 成  果
Phase 1 2024-12-10 終了 実現可能性
(feasibility)
  • やっつけでコーディング ✓
  • 下記を実証 (PoC) ✓
    • ループ処理による単純シミュレーション
    • リアルタイム・シミュレーション (Dry Run)
Phase 2 2024-12-16 終了 マクロ再構成
  • 単一ワークシート上に機能集約 ✓
  • マクロを再構成 ✓
  • Phase 1 と同じ機能レベルまで実現 ✓
  • ベンチマーク計測を追加 ✓
Phase 3 2024-12-31 取りやめ 実装
  • 機能を複数ワークシート上に再配置 ✓
  • Dry Run 実施 ✓
  • 売買アルゴリズムの改良 ✓
  • Python シミュレータで評価 ✓
  • RSS による売買を、テスト用マクロで確認
Phase 4 2025-03-09 終了 評価・実装
  • ティックデータへ Parabolic SAR を適用 ✓
  • Python シミュレータで評価とパラメータ・チューニング ✓
Phase 5 2025-05-17 終了 再評価・再実装
  • メイン・アプリを Python へ ✓
    • アプリの作り直し
      • xlwings パッケージの評価
      • リアルタイムに対応させるためのスレッド化
      • RealtimePSAR クラスの改良
      • Matplotlib の採用
      • リアルタイムデータのスムージング
      • 楽天証券との実取引のサンプルワーク
  • リアルタイムデータ収集アプリ作成 ✓
    • 20 銘柄程度、一度にリアルタイムデータ収集をできるようにデータ収集に特化したアプリ。
Phase 6 2025-08-11 開発中 評価・実装
  • リアルタイム Parabolic SAR 機能の廃止
  • 強化学習モデルの評価・実装 (PyTorch)
    • 単純な学習モデルを使ったシミュレーション機能の実装
Phase 7 2025-09-?? 未着手 本運用
  • ...

Python で作っている自作のデイトレアプリで、ゆくゆくは自動売買に挑戦するために取り組んでいます。しかし自動売買実現までの道のりは長いので、まずはセミオート操作で売買ができるように進めています。以下は株価などの情報の流れを示しています。

株価データの流れ(Windows 11)

楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード2 RSS を介して取引をする構成を取っています。

強化学習モデルのパフォーマンスに驚く

ChatGPT5 の能力を試してみたくなり、ある制約条件下のデイトレのシミュレーションで、強化学習ができる売買モデルのサンプル (Python / PyTorch) を提案してもらいました。

提案してもらったサンプルを少し加工して、過去のティックデータでシミュレーション上の収益を評価してみたところ、そのパフォーマンスの高さにびっくりしました。😮

下記チャートは、三菱重工業 (7011) について、建玉 100 株、ナンピン無しに1日に何度も信用売買した収益パフォーマンスです。その日のティックデータに売買モデルを適用したときの収益をプロットし、翌日のために 10 回の再学習をさせています。

ChatGPT5 が提案した強化学習モデルの評価

現在株価を指値にして売買が成立すると仮定して、スキャルピングで利益を積み上げています。このサンプルは、BUY / SELL / HOLD の 3 つの状態下で報酬(収益)を最大化するという条件だけで、初期の学習曲線で収益が上がった後も継続的にパフォーマンスを維持できています。

学習曲線の向上を経てパフォーマンスが維持されることについて、モデルを破棄して 0 から過去数ヶ月分のティックデータを学習させ直して確認を繰り返しましたが、いずれも同じ傾向が得られることを確認できました。このモデルを出発点にして実用的なモデルに仕上げていくことを開発の目的にできそうです。

Parabolic SAR のアプローチを捨てる

強化学習モデルのパフォーマンスを知り、自動売買に Parabolic SAR のアプローチを利用することを諦める決心がつきました。

開発中のアプリは、実際の売買機能が未実装ですが、リアルタイムでデータを取得する機能を確認できているので、その機能を残して Parabolic SAR に関わる機能のモジュールをすべて外しました。

ターゲット銘柄の株価トレンド (Windows 11)

ニューラルネットワークを利用する懸念

会社勤めをしていたころ、ニューラルネットワークを使わない機械学習システムを開発するのにさえ、化け物みたいなパワーのコンピュータを利用していました。まして、ニューラルネットワークを応用した機械学習を利用するとなると、コンピュータ・パワーとリソースがとにかく必要になるだろうと懸念していました。

そのため、自動売買アルゴリズムを開発するにあたって、まずは機械学習の利用を前提としないアルゴリズムにしたいと考えていました。しかし、値動きに応じて柔軟に対応できるような仕組みを開発することの難しさを思い知ったのでした。

そして、結局のところ機械学習を利用したアプローチの魅力には抗えませんでした。しかも、単純なモデルであれば GPU が無くてもそこそこ計算できるということも判りました。

コンピュータ・パワーを追求し始めるとキリがないので、まずは工夫して現行のシステムで対応できるかどうかを見極めながら取り組んでいきたいと思います。

参考サイト

  1. マーケットスピード II RSS | 楽天証券のトレーディングツール
  2. マーケットスピード II RSS 関数マニュアル
  3. PythonでGUIを設計 | Qtの公式Pythonバインディング
  4. PyQtGraph - Scientific Graphics and GUI Library for Python
  5. Python in Excel alternative: Open. Self-hosted. No limits.
  6. Book - xlwings Documentation
  7. 私の株日記: Realtime Parabolic SAR
にほんブログ村 株ブログ 株日記へ
PVアクセスランキング にほんブログ村

0 件のコメント:

コメントを投稿