楽天証券の口座でデイトレの自動売買に挑戦しようと、Windows / Excel 上で動作する マーケットスピード II RSS を利用した Python アプリ (Kabuto) を開発しています。今月は、来るゴールデン・ウィークに存分に強化学習モデルのバックテストができるように準備を進めています。
今日の日経平均株価
| 現在値 | 58,134.24 | +256.85 | +0.44% | 15:45 | |
|---|---|---|---|---|---|
| 前日終値 | 57,877.39 | 04/14 | 高値 | 58,585.95 | 10:09 |
| 始値 | 58,265.18 | 09:00 | 安値 | 58,028.75 | 14:53 |
※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。
【関連ニュース】
- 米財務省、アンソロピック「ミトス」へのアクセス要請-脆弱性特定へ - Bloomberg [2026-04-15]
- 【欧州市況】株と国債が上昇、米・イラン協議再開への期待強まる - Bloomberg [2026-04-15]
- 【米国市況】S&P500最高値に接近、米イラン再協議期待で-原油大幅安 - Bloomberg [2026-04-15]
- 2月の機械受注(船舶・電力を除く民需)は前月比13.6%増=内閣府(ロイター予測:-1.1%) | ロイター [2026-04-14]
- アンソロピック、評価額最大8000億ドルでVCが関心=報道 | ロイター [2026-04-15]
- アンソロピック企業価値127兆円以上、投資家から新たに出資オファー - Bloomberg [2026-04-15]
- ブルー・アウル、ブラックフィン少数出資へ交渉-GPステークス戦略 - Bloomberg [2026-04-15]
- ピムコ、ブルー・アウル債を全額購入-プライベートクレジットに信認 - Bloomberg [2026-04-15]
- 米中小企業景況感、11カ月ぶり低水準 原油高が減税効果を相殺 | ロイター [2026-04-15]
- 半導体、足りないなら自前で製造-マスク流炸裂の「テラファブ」とは - Bloomberg [2026-04-15]
- 米政府「クロード・ミトス」をテスト、大統領の禁止令でも=報道 | ロイター [2026-04-15]
- ASML、26年通期の売上高見通し上方修正-先端半導体の需要拡大を反映 - Bloomberg [2026-04-15]
- 半導体製造装置の蘭ASML、AI需要堅調で売上高見通し上げ | ロイター [2026-04-15]
- 【日本市況】日経平均5万8000円回復、停戦交渉期待-円は159円近辺 - Bloomberg [2026-04-15]
- 日経平均は続伸、5万8000円回復 米イラン再協議の思惑で | ロイター [2026-04-15]
- サントリーHDが第一三共の市販薬子会社買収、2465億円-医薬品強化 - Bloomberg [2026-04-15]
強化学習の沼
月末から始まるゴールデンウィークにゆっくりバックテストができそうなので、それまでにどれだけ強化学習モデルを育てられるかに挑んでいます。
学習環境 TrainingEnv(gymnasium.Env)
学習環境の概略です。
- 行動空間 Action Space
- HOLD : 何もしない
- BUY : 「買建」または「返済」
- SELL : 「売建」または「返済」
- 「返済」は環境側で制御、またナンピン禁止を行動マスクで制御
- PositionType に対する mask [HOLD, BUY, SELL]
- WARMUP [True, False, False]
- NONE [True, True, True ]
- LONG [True, False, True ]
- SHORT [True, True, False]
- 観測空間 Observation Space
- 株価、指数など [-inf, +inf]
- Price - price0 : 株価 - 始値
- MA1 - price0 : 短周期の移動平均 - 始値
- DiffVWAP : 乖離率 = (MA1 - VWAP) / VWAP
- Profit : 含み損益
- カウンタ関連 [0, +inf]
- n_trade : 約定回数
- count_negative : 含み損の継続カウンタ
- ポジションを One-Hot エンコーディング
- SHORT [1. 0. 0.]
- NONE [0. 1. 0.]
- LONG [0. 0. 1.]
- 報酬 Rewards
- 建玉なし : 報酬なし
- 建玉保持 : 含み損益の一定割合を付与+前ステップの含み益からの増減の一定割合を付与
- 買建時 : -DiffVWAP を付与
- 売建時 : +DiffVWAP を付与
- 返済時 : 直前の含み損益を付与
- 約定コスト : 建玉、返済時いずれも固定の約定コストを引く
- 連続含み損 : 許容回数を超えたらペナルティを急激に増大
- 終了条件 Episode End
- terminated
- "目的を達成した/失敗した" など、エージェント側の原因で終了
- 終端として扱う(価値は 0)
- なし(「約定回数の上限で終了」を評価予定)
- truncated
- 時間制限・ステップ制限・データ終端など “外的理由” で終了
- 終端ではない(価値を bootstrap)
- ティックデータが最終行に達した時
- 終了時、建玉があれば強制返済。報酬条件、約定コストは同じ
いままで建玉保持時に含み益の一定割合を報酬として付与していましたが、これだけだと(数値化ができていませんが)最後まで建玉を保持して報酬を最大化する(= 約定回数が少なくなる)傾向が見られました。そこで、さらに前回からの含み益増減の一定割合も報酬・ペナルティに付与するようにしました。
複数のティックデータで学習
学習環境を少しだけ変更したので、過去 20 日分のティックデータに対し、最初のティックデータは 100 エピソード、残りは 50 エピソードの学習を実施しました。
報酬 (episord_reward) は 0 をなかなか超えられていませんし、損益 (pnl) も安定していません。約定回数 (transactions) は、一旦 0 に収束する方向に進んだものの後半の学習で再び増加しています。約定回数 = 売買のイベントが一定頻度ある限り、報酬を増やせる有効な方策を追加することで報酬あるいは損益を改善できる余地があると考えています。
推論 - 今日のティックデータ
まだ推論と呼べるほど立派ではありませんが、過去 20 日分のティックデータで学習したモデルを使って、過去 19 日分のデータ + 今日のティックデータに対して推論しました。
今のところ学習時に利用した環境をそのまま推論でも利用しています。学習用の環境では、強制的なロスカットをしていないのですが、推論時にはモデルへの学習に影響を与えないので、実利を優先して条件を外れれば強制的なロスカットをする必要があります。
長期の運用を考慮して、学習用と推論用の環境を使い分ける準備をしています。
今日のティックデータ分のレビュー
現在は売買判定に利用していないテクニカルデータも含めてプロットしています。感覚的には収益はマイナスなのですが、実際はプラスになっています。🤔
各推論時の取引明細を確認できるように改善します。
参考サイト
- マーケットスピード II RSS | 楽天証券のトレーディングツール
- マーケットスピード II RSS 関数マニュアル
- 注文 | マーケットスピード II RSS オンラインヘルプ | 楽天証券のトレーディングツール
- PythonでGUIを設計 | Qtの公式Pythonバインディング
- Python in Excel alternative: Open. Self-hosted. No limits.
- Book - xlwings Documentation



