楽天証券の口座でデイトレの自動売買に挑戦しようと、Windows / Excel 上で動作する マーケットスピード II RSS を利用した Python アプリ (Kabuto) を開発しています。今月は、来るゴールデン・ウィークに存分に強化学習モデルのバックテストができるように準備を進めています。
今日の日経平均株価
| 現在値 | 59,518.34 | +1,384.10 | +2.38% | 15:45 | |
|---|---|---|---|---|---|
| 前日終値 | 58,134.24 | 04/15 | 高値 | 59,688.10 | 15:20 |
| 始値 | 58,479.83 | 09:00 | 安値 | 58,428.19 | 09:00 |
※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。
【関連ニュース】
- サントリーHDが第一三共の市販薬子会社買収、2465億円-医薬品強化 - Bloomberg [2026-04-15]
- 米住宅建設業者の業況感、7カ月ぶりの低水準-イラン戦争が影響 - Bloomberg [2026-04-15]
- 【欧州市況】株下落、決算に失望-国債は狭いレンジの値動きで小幅安 - Bloomberg [2026-04-16]
- 米地区連銀経済報告、戦争で不確実性高まる-エネルギー高騰 - Bloomberg [2026-04-16]
- 米国株式市場=S&P500・ナスダック最高値、企業決算と中東情勢に楽観的 | ロイター [2026-04-16]
- 4月ロイター企業調査:米関税1年、22%が「今も負の影響大」 政府の対応評価は29% | ロイター [2026-04-16]
- 中国、3月の新築住宅価格が2カ月連続で下落ペース鈍化-底打ちの兆し - Bloomberg [2026-04-16]
- 中国経済、1~3月は5%成長と予想上回る-イラン戦争の影響は限定的 - Bloomberg [2026-04-16]
- 台湾株の時価総額、英国超え世界7位に-ハイテク株に資金回帰 - Bloomberg [2026-04-16]
- TSMC、1~3月の純利益は予想上回る-イラン戦争でもAI需要抑制されず - Bloomberg [2026-04-16]
- 【日本市況】日経平均が史上最高値、米・イラン停戦期待-6万円接近 - Bloomberg [2026-04-16]
強化学習の沼
月末から始まるゴールデンウィークにゆっくりバックテストができそうなので、それまでにどれだけ強化学習モデルを育てられるかに挑んでいます。
学習環境 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 : 株価
- MA1 : 短周期の移動平均
- MA2 : 長周期の移動平均
- VWAP : 出来高加重平均価格
- Profit : 含み損益
- クロス関連 [-inf, +inf](符号が重要なので「標準化」なし)
- DiffMA : MA乖離率 = (MA1 - MA2) / MA2
- DiffVWAP : VWAP乖離率 = (MA1 - VWAP) / VWAP
- カウンタ関連 [0, +inf](おまかせ「標準化」)
- n_trade : 約定回数
- count_negative : 含み損の継続カウンタ
- ポジションを One-Hot エンコーディング
- SHORT [1. 0. 0.]
- NONE [0. 1. 0.]
- LONG [0. 0. 1.]
- 報酬 Rewards
- 建玉なし : 報酬なし
- 建玉保持 : 含み損益の一定割合を付与+前ステップの含み益からの増減の一定割合を付与
- 買建/売建時 : ゴールデン/デッド クロス・シグナルと一致していれば、約定コストを相殺+αを付与
- 返済時 : 直前の含み損益を付与
- 約定コスト : 建玉、返済時いずれも固定の約定コストを引く
- 連続含み損 : 許容回数を超えたらペナルティを急激に増大
- 終了条件 Episode End
- terminated
- "目的を達成した/失敗した" など、エージェント側の原因で終了
- 終端として扱う(価値は 0)
- なし(「約定回数の上限で終了」を評価予定)
- truncated
- 時間制限・ステップ制限・データ終端など “外的理由” で終了
- 終端ではない(価値を bootstrap)
- ティックデータが最終行に達した時
- 終了時、建玉があれば強制返済。報酬条件、約定コストは同じ
観測空間の特徴量を増やしました。短・長周期の移動平均線、単周期の移動平均線 vs VWAP のクロス・シグナルでエントリするように報酬でモデルの行動を誘導できるのかどうかを確認したかったので試してみました。
複数のティックデータで訓練
学習環境を少しだけ変更したので、過去 20 日分のティックデータに対し、最初のティックデータは 100 エピソード、残りは 50 エピソードの学習を実施しました。
推論 - 今日のティックデータ
まだ推論と呼べるほど立派ではありませんが、過去 20 日分のティックデータで学習したモデルを使って、過去 19 日分のデータ + 今日のティックデータに対して推論しました。
今日のティックデータ分のレビュー
残念ながら、取引最初で 40 回売買してあとは何もしないという結果でした。学習段階でのレビューでは、売買がなんとなくクロス・シグナルと関連しているような動きでしたが、学習をしていないティックデータでの動きは全然ダメです。
今後、学習環境と推論環境を分けた方が良いと考えていて、現在、環境のコードを整理中です。明日は、今日と同じような評価になりますが、コードはほぼ書き直したものを使用します。
参考サイト
- マーケットスピード II RSS | 楽天証券のトレーディングツール
- マーケットスピード II RSS 関数マニュアル
- 注文 | マーケットスピード II RSS オンラインヘルプ | 楽天証券のトレーディングツール
- PythonでGUIを設計 | Qtの公式Pythonバインディング
- Python in Excel alternative: Open. Self-hosted. No limits.
- Book - xlwings Documentation




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