2025-05-19

自動売買への道 (2025-05-19)

(楽天証券の口座で取引する前提で)デイトレ自動売買を実現するには、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 を適用 ✓
    • VBA に実装(データ収集のみ、Dry Run 機能は未実装)
    • Python によるシミュレーション環境の整備
  • Python シミュレータで評価とパラメータ・チューニング
    1. スムージング処理の追加
    2. エントリ条件の検討
    3. 利確条件の検討
    4. ロスカット条件の検討
  • Excel VBA で Dry Run 機能の実装と評価
  • 利確・損切条件の最適化
  • RSS による売買を、テスト用マクロで確認
Phase 5 2025-05-17 開発中 再評価・再実装
  • メイン・アプリを Python へ
    • xlwings パッケージの評価
Phase 6 2025-06-?? 未着手 本運用
  • ...

プログラムで売買判断をさせるメインの手法は、ティックデータに適用できるようにした Parabolic SAR です [3]

しかし単純に Parabolic SAR を適用するだけでは稼げないので、工夫を加えながら実用に耐えうるアルゴリズムに仕上げようとシミュレーションに励んでいる毎日です。

日々のアイデアを整理するために、時々ブログ記事にまとめています。

アプリの作り直し

冒頭にあるように、このところ、楽天証券の マーケットスピード II RSS を利用した Excel / VBA の自動売買用マクロ(アプリ)づくりに取り組んできました。

なぜ自動売買アプリを作ろうとするのか?

証券会社が提供しているツールは高機能なので、デイトレをやりたければ、そういうツールを存分に活用して淡々とデイトレに取り組めば良いのではないのか?

そうです、そうすることがたぶん正しい取り組み方なのでしょう。でも、好きなことに取り組むために株式投資を始めた自分にとっては、それではダメなのでした。

最近は株価データをリアルタイムで取得できるのだから、入手できる株価データを自分がやりたいように分析・加工して、納得できるアルゴリズムで自動取引をしたいのです。

絶対勝てるアルゴリズムは、ひょっとしたらできるのかもしれないけれど、決して簡単ではない、ということを重々承知しています。だから、そこそこ勝てるアルゴリズムを作ることが当面の目標にしています。ひとたび、そこそこ勝てるアプリが動き出せれば、その後は勝率を上げるためのアルゴリズム改善に取り組みつづけられます。

VBA ではやりたいことを実現できない

そんなわけで、確実にリアルタイムで株価データを取得できる マーケットスピード II RSS に着目して、慣れない VBA のプログラミングに取り組んできました。

しかし…、VBA ではリアルタイムのチャートすら思うようにプロットできません。せいぜいリアルタイムで株価データを収集できている程度です。これは VBA が悪いのではありません、VBA を使い慣れていない自分が悪いのです😭。

どうしたものかと代替案を探っていると、Python の xlwings というパッケージを見つけました、いや、パッケージの存在を知ってはいたので、あらたに見つけたというよりは、実際に使ってみて、このパッケージは自分がやりたい用途に応用できる、ということを確認できたのでした。

これで、マーケットスピード II RSS + Excel / VBA + Python と、システム構成が増えてしまいますが、メインの処理を使い慣れている Python 側に持ってこれそうです。

Python の xlwings パッケージ

xlwings は、Excel から Python を呼び出したり、その逆を簡単に行うことができるオープンソース(BSD ライセンス)のパッケージです [4]

このパッケージにはいろいろな機能がありますが、まずは最低限期待している機能、すなわち Excel 上の特定のセルの値を読み取って Python 側でトレンドを作成することを確認しました。

まず、下記のような Excel シートを用意します。楽天証券の マーケットスピードⅡ に接続している状態です。A 列の「銘柄コード」以外の列は RSS の RssMarket 関数が マーケットスピードⅡ 経由でリアルタイムに読み込んでいる値です。

このシートの「現在値」列の一つの銘柄の株価を Python 側のテスト用サンプルが 1 秒間隔で読み取って、読み取り時のアプリ側の時刻でトレンドを作成した例です(下図)。

しばらく xlwings パッケージを使いながら、Python 側でどこまでできるかを試して、全体の計画の見直しを考えようと思います。ちなみに、Python で GUI を実現するのには PySide6 (Qt for Python) というライブラリを利用しています [5]

参考サイト

  1. マーケットスピード II RSS | 楽天証券のトレーディングツール
  2. マーケットスピード II RSS 関数マニュアル
  3. 私の株日記: Realtime Parabolic SAR
  4. xlwings Documentation
  5. Qt for Python

にほんブログ村 株ブログ 株日記へ
PVアクセスランキング にほんブログ村

0 件のコメント:

コメントを投稿