楽天証券の口座でデイトレの自動売買に挑戦しようと Windows / Excel 上で利用できる マーケットスピード II RSS を活用して Python であれこれ取り組んでいます。この「自動売買への道」のトピックでは、プログラミングの話題にも踏み込んで、日々の活動をまとめていきます。
今日の日経平均株価
| 現在値 | 48,625.88 | -1,198.06 | -2.40% | 15:30 | |
|---|---|---|---|---|---|
| 前日終値 | 49,823.94 | 11/20 | 高値 | 49,459.59 | 09.03 |
| 始値 | 49,251.26 | 09:00 | 安値 | 48,490.03 | 13:52 |
※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。
【関連ニュース】
- ビットコイン、8万8000ドルまで急落──エヌビディアの決算報告受けた反発は短命に終わる [2025-11-21]
- ビットコインが「最も弱気」水準に到達 強気サイクルは終わるのか [2025-11-21]
- 米株式市場が乱高下、労働市場の改善観測で序盤の上昇が帳消しに | Forbes JAPAN [2025-11-21]
- OpenAIが鴻海と提携、データセンター向けハードウエア設計・製造へ - Bloomberg [2025-11-21]
- 東京株式市場・大引け=反落、ハイテク株の軒並み安で TOPIXは横ばい | ロイター [2025-11-21]
- 柏崎刈羽原発再稼働、新潟県知事が容認表明-地元同意の取得で前進 - Bloomberg [2025-11-21]
デイトレ用自作アプリ
以下は株価に関連する情報の流れを示しています。
楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード II RSS を介して取引をする構成を取っています。
強化学習
現在は、強化学習を利用した取引モデルの開発に取り組んでいます。
リアルタイム利用を想定したシミュレーション (2)
取引モデルの改良はまだまだなのですが、リアルタイム利用を想定した推論シミュレーションができるようにしておきたいと考え、評価システムを作り始めています。
高頻度取引を抑制したい
取引回数の上限を設定すると、モデルは取引上限へ向かう行動を取りやすくなり、結果として高頻度の取引に陥りやすくなってしまいます。
モデルの報酬設計でいろいろ改良を加えているつもりなのですが成果がでません。過去データを学習後「通し」で推論させると取引回数上限に貼り付いてしまいます。それでも大きな損失を出さすに通算損益が僅かにプラスになるという程度にはなりました(下図)。
モデルの報酬設計については、おおむね期待通りの成果が出てからまとめる予定です。
今日のティックデータの事後推論
昨夜、過去のティックデータ全てで学習させたモデル ppo_7011_20251120.zip で、今日取得したティックデータ ticks_20251121.xlsx から 7011(三菱重工業)の分を読み込んで推論させました)。
下記の条件で推論を実施します。
モデル : models\trained\ppo_7011_20251120.zip
ティックデータ : collection\ticks_20251121.xlsx
銘柄コード : 7011
Excel ファイルをデータフレームに読み込みました。
スレッド内にワーカーエージェントを生成します。
2025-11-21 16:01:54,450 - INFO - modules.agent: model, models\trained\ppo_7011_20251120.zip is used.
Wrapping the env with a `Monitor` wrapper
Wrapping the env in a DummyVecEnv.
環境がリセットされました。
推論ループを開始します。
推論ループを終了しました。
計測時間 : 1.530 sec
ティック数 : 1,080 ticks
処理時間 / ティック : 1.416 msec
取引明細
注文日時 銘柄コード 売買 約定単価 約定数量 損益
0 2025-11-21 09:07:01 7011 売建 3877.0 1.0 NaN
1 2025-11-21 09:07:07 7011 買埋 3873.0 1.0 4.0
2 2025-11-21 09:07:08 7011 売建 3873.0 1.0 NaN
3 2025-11-21 09:07:26 7011 買埋 3873.0 1.0 0.0
4 2025-11-21 09:07:27 7011 売建 3877.0 1.0 NaN
.. ... ... .. ... ... ...
95 2025-11-21 09:23:55 7011 売埋 3929.0 1.0 1.0
96 2025-11-21 09:23:56 7011 売建 3929.0 1.0 NaN
97 2025-11-21 09:24:00 7011 買埋 3931.0 1.0 -2.0
98 2025-11-21 09:24:03 7011 買建 3932.0 1.0 NaN
99 2025-11-21 09:24:04 7011 売埋 3932.0 1.0 0.0
[100 rows x 6 columns]
一株当りの損益 : 14.0 円
取引が始まってから 30 分も経たないうちに取引回数上限の 100 回に達してしまっています。これでは使いものになりません。😭
週末の三連休中にモデルの報酬設計を徹底的に見直します。
参考サイト
- マーケットスピード 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 件のコメント:
コメントを投稿