楽天証券の口座でデイトレの自動売買に挑戦しようと Windows / Excel 上で利用できる マーケットスピード II RSS を活用して Python であれこれ取り組んでいます。この「自動売買への道」のトピックでは、プログラミングの話題にも踏み込んで、日々の活動をまとめていきます。
今日の日経平均株価
| 現在値 | 50,323.91 | -52.62 | -0.10% | 15:30 | |
|---|---|---|---|---|---|
| 前日終値 | 50,376.53 | 11/14 | 高値 | 50,398.16 | 09:49 |
| 始値 | 50,282.39 | 09:00 | 安値 | 49,845.86 | 09:16 |
※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。
【関連ニュース】
- 富士フイルム、半導体材料でインド工場計画-生産拠点として期待と社長 - Bloomberg [2025-11-17]
- バーガーキング日本事業売却、ゴールドマンに優先交渉権 700億円規模 - 日本経済新聞 [2025-11-17]
- 大日本印刷とチューリング 完全自動運転の領域で資本業務提携 | 大日本印刷株式会社のプレスリリース [2025-11-17]
- Sakana AI、200億円を調達 企業価値は4000億円に 「ソブリンAI」開発に注力 - ITmedia AI+ [2025-11-17]
- 日経平均は小幅続落、様子見で方向感乏しい インバウンド株は大幅安 | ロイター [2025-11-17]
デイトレ用自作アプリ
以下は株価に関連する情報の流れを示しています。
楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード II RSS を介して取引をする構成を取っています。
現在は、強化学習を利用した取引モデルの開発に取り組んでいます。
取引回数の制限(とりあえずのまとめ)
過去のティックデータで学習させたモデルで(学習に使用したティックデータを)推論させると、取引回数が多いほど損失が大きくなるという相関を確認できました。
そこで、取引回数の上限を設定、残り取引回数を観測値に加えたところ、モデルは過敏に反応して取引回数の上限を目指すような行動になってしまいました。
週末に(主に行動マスクをこまめに制御しようと)試行錯誤を重ねましたが、安定した条件にたどり着くことができませんでした。
結果が出なかったので、行動マスクを本来の「ナンピン禁止 + 最初のウォームアップ期間の取引禁止」に戻して、先週取り組んだことを整理しました。
- 報酬設計
- 建玉を長く持つように強い報酬誘導
- 行動マスク
- sb3_contrib.MaskablePPO を使用
- 寄り付き後のウォームアップ期間(60 秒)は取引を禁止
- ナンピン売買を禁止
- その他
- 取引回数を最大 100 回に制限
- 問題点
- 取引回数 100 回を達成するような行動になる?
- GUI に強化学習の機能を再実装
マラソンテスト
過去ティックデータが蓄積されてきて、過去の全てのティックデータで学習をさせるのに時間がかかるようになってきました。しかし、学習を重ねないとモデルの振る舞いが収束してきません。なので、最適条件でなくともモデルの挙動を確認するために、できるだけ過去データでの学習を続ける予定です。
今回は不本意ではありますが、週末に試行錯誤した、行動マスクの設定を最低限(ナンピン禁止+ウォームアップ期間)に戻した環境を使って、先週までの過去データで学習 → 推論させました。推論では報酬設計において取引コストの因子(ペナルティ)が強すぎたようで、全然取引をしないケースが多発してしまいました。。
GUI による事後シミュレーション(推論)
マラソンテストをしたモデルを使って、本日取得したティックデータで事後シミュレーション(推論)をしました。
残念ながら取引なしでした。明日は、条件を変更した学習済みモデルを試します。
参考サイト
- マーケットスピード II RSS | 楽天証券のトレーディングツール
- マーケットスピード II RSS 関数マニュアル
- 注文 | マーケットスピード II RSS オンラインヘルプ | 楽天証券のトレーディングツール
- Gymnasium Documentation
- Stable-Baselines3 Docs - Reliable Reinforcement Learning Implementations
- Maskable PPO — Stable Baselines3 - documentation
- PyTorch documentation
- PythonでGUIを設計 | Qtの公式Pythonバインディング
- Python in Excel alternative: Open. Self-hosted. No limits.
- Book - xlwings Documentation






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