2026-04-09

自動売買への道 (2026-04-09)

楽天証券の口座でデイトレの自動売買に挑戦しようと、Windows / Excel 上で動作する マーケットスピード II RSS を利用した Python アプリ (Kabuto) を開発しています。未だ安心して自動売買できるレベルにまで到達していませんが、経験値を上げるため、セミオートでデイトレードを始めています。

今日の日経平均株価

現在値 55,895.32 -413.10 -0.73% 15:45
前日終値 56,308.42 04/08 高値 56,406.49 09:17
始値 56,199.86 09:00 安値 55,763.05 13:22

※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。

【関連ニュース】

強化学習へ沼りに行く⑤

今日もひきつづき強化学習モデルの開発を優先して、デイトレはお休みです。

学習環境 TrainingEnv(gymnasium.Env)

学習環境の概略です。観測空間に MA1 を追加しました。現時点では超シンプルな観測空間や報酬の構成になっています。この環境でパラメータを調整して結果がどうなるかを試行錯誤しています。

行動空間 Action Space
  1. HOLD : 何もしない
  2. BUY  : 「買建」または「返済」
  3. SELL : 「売建」または「返済」
「返済」は環境側で制御、またナンピン禁止を行動マスクで制御
観測空間 Observation Space
  1. Price    : 株価
  2. MA1      : 短周期の移動平均
  3. DiffVWAP : 乖離率 = (MA1 - VWAP) / VWAP
  4. Profit   : 含み損益
ポジションを One-Hot エンコーディング
  1. SHORT [1. 0. 0.]
  2. NONE  [0. 1. 0.]
  3. LONG  [0. 0. 1.]
報酬 Rewards
  • 建玉なし   : 報酬なし
  • 建玉保持   : 含み損益の一定割合を付与
  • 買建時     : -DiffVWAP を付与
  • 売建時     : +DiffVWAP を付与
  • 返済時     : 直前の含み損益を付与
  • 約定コスト : 建玉、返済時いずれも固定の約定コストを引く
終了条件 Episode End
  1. terminated
    • "目的を達成した/失敗した" など、エージェント側の原因で終了
    • 終端として扱う(価値は 0)
    1. なし(「約定回数の上限で終了」を評価予定)
  2. truncated
    • 時間制限・ステップ制限・データ終端など “外的理由” で終了
    • 終端ではない(価値を bootstrap)
    1. ティックデータが最終行に達した時
      • 終了時、建玉があれば強制返済。報酬条件、約定コストは同じ

報酬 vs. 損益

今日収集したティックデータより、ソフトバンクグループ (9984) のデータ (20260409_9984.csv) に対して 100 エピソード分を新たに学習させました。

100 エピソード分の学習における報酬 (episord_reward)、損益 (pnl)、約定回数トレンド (transactions)

エピソード毎のログから、最後のエピソードのログについて報酬と損益データ を集計、株価トレンドと取引シミュレーションの結果と並べました。縦線は売買が発生した箇所です。

100 エピソード分の学習における報酬、損益、約定回数トレンド

約定回数(取引回数)が多いので対策を検討します。まずは寄り付き後、一定時間は取引禁止にする予定です。

参考サイト

  1. マーケットスピード II RSS | 楽天証券のトレーディングツール
  2. マーケットスピード II RSS 関数マニュアル
  3. 注文 | マーケットスピード II RSS オンラインヘルプ | 楽天証券のトレーディングツール
  4. PythonでGUIを設計 | Qtの公式Pythonバインディング
  5. Python in Excel alternative: Open. Self-hosted. No limits.
  6. Book - xlwings Documentation
にほんブログ村 株ブログ 株日記へ
PVアクセスランキング にほんブログ村

0 件のコメント:

コメントを投稿