楽天証券の口座でデイトレの自動売買に挑戦しようと Windows / Excel 上で利用できる マーケットスピード II RSS を活用して Python であれこれ取り組んでいます。この「自動売買への道」のトピックでは、プログラミングの話題にも踏み込んで、日々の活動をまとめています。
今日の日経平均株価
| 現在値 | 54,341.23 | +792.07 | +1.48% | 15:30 | |
|---|---|---|---|---|---|
| 前日終値 | 53,549.16 | 01/13 | 高値 | 54,487.32 | 12:31 |
| 始値 | 53,827.24 | 09:00 | 安値 | 53,792.68 | 09:00 |
※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。
【関連ニュース】
- 米12月CPI2.7%上昇、予想と一致 食品価格3年超ぶり大幅上昇 | ロイター [2026-01-14]
- 【米国市況】円売り優勢、対ドル159円台-CPI受け株は最高値から反落 - Bloomberg [2026-01-14]
- 米国株式市場=反落、金融株主導 トランプ氏のクレジットカード金利上限案で | ロイター [2026-01-14]
- マンダムのMBO、米KKRが買収提案 1株3100円で - 日本経済新聞 [2026-01-14]
- 中国、株式信用取引のリスク抑制強化-証拠金維持率を引き上げ - Bloomberg [2026-01-14]
- ATMのイーネット苦境 生命線ファミマが置き換え|47NEWS(よんななニュース) [2026-01-14]
- 【日本市況】高市トレードで株最高値、円159円前半-5年金利過去最高 - Bloomberg [2026-01-14]
- 米高級百貨店サックスが破産申請、新CEOを任命 当面は営業継続 | ロイター [2026-01-14]
- 日経平均は3日続伸、初の5万4000円 短期過熱警戒も | ロイター [2026-01-14]
デイトレ用自作アプリ
以下は株価・取引に関連する情報の流れを示しています。
楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード II RSS を介して取引をする構成を取っています。
リアルタイムの取引シミュレーション (7011)
| 実験条件 | doe-10g | |
|---|---|---|
| パラメータ | 設定値 | |
| PERIOD_WARMUP | 180 | sec |
| PERIOD_MA_1 | 170 | sec |
| PERIOD_MA_2 | 500 | sec |
| PERIOD_SLOPE | 5 | sec |
| THRESHOLD_SLOPE | 0.05 | - |
| PERIOD_RR | 30 | sec |
| TURBULENCE | 35 | - |
| LOSSCUT_1 | -25 | 円 |
複数銘柄について、実験計画 (DOE) にもとづいた取引シミュレーションの結果を蓄積しており、下記のページに一括してまとめています。
以下は、本日のリアルタイム取引シミュレーション (Simulated Trade) による取引結果です。
本日のリアルタイムの取引シミュレーション (Simulated Trade) の取引明細(100 株単位)
| 注文番号 | 注文日時 | 銘柄コード | 売買 | 約定単価 | 約定数量 | 損益 | 備考 |
|---|---|---|---|---|---|---|---|
| 1 | 2026-01-14 09:16:20.757155418 | 7011 | 売建 | 4577.0 | 100 | ||
| 2 | 2026-01-14 09:19:24.466943264 | 7011 | 買埋 | 4602.0 | 100 | -2500.0 | |
| 3 | 2026-01-14 09:19:43.481167316 | 7011 | 買建 | 4602.0 | 100 | ||
| 4 | 2026-01-14 09:29:34.176778793 | 7011 | 売埋 | 4612.0 | 100 | 1000.0 | |
| 5 | 2026-01-14 09:29:35.183405638 | 7011 | 売建 | 4612.0 | 100 | ||
| 6 | 2026-01-14 09:36:19.513462305 | 7011 | 買埋 | 4615.0 | 100 | -300.0 | |
| 7 | 2026-01-14 10:02:54.719801664 | 7011 | 買建 | 4633.0 | 100 | ||
| 8 | 2026-01-14 10:12:53.466048002 | 7011 | 売埋 | 4638.0 | 100 | 500.0 | |
| 9 | 2026-01-14 10:21:20.096020460 | 7011 | 買建 | 4638.0 | 100 | ||
| 10 | 2026-01-14 10:34:04.435460567 | 7011 | 売埋 | 4641.0 | 100 | 300.0 | |
| 11 | 2026-01-14 10:34:05.441451550 | 7011 | 売建 | 4641.0 | 100 | ||
| 12 | 2026-01-14 10:40:40.833501577 | 7011 | 買埋 | 4644.0 | 100 | -300.0 | |
| 13 | 2026-01-14 10:40:41.837982655 | 7011 | 買建 | 4644.0 | 100 | ||
| 14 | 2026-01-14 10:46:27.012354136 | 7011 | 売埋 | 4640.0 | 100 | -400.0 | |
| 15 | 2026-01-14 11:05:20.148250818 | 7011 | 売建 | 4652.0 | 100 | ||
| 16 | 2026-01-14 11:12:24.459593773 | 7011 | 買埋 | 4657.0 | 100 | -500.0 | |
| 17 | 2026-01-14 11:15:20.160584211 | 7011 | 売建 | 4648.0 | 100 | ||
| 18 | 2026-01-14 11:23:45.631506681 | 7011 | 買埋 | 4647.0 | 100 | 100.0 | |
| 19 | 2026-01-14 12:30:41.770925522 | 7011 | 買建 | 4668.0 | 100 | ||
| 20 | 2026-01-14 12:35:04.714393377 | 7011 | 売埋 | 4649.0 | 100 | -1900.0 | |
| 21 | 2026-01-14 12:35:05.710421085 | 7011 | 売建 | 4649.0 | 100 | ||
| 22 | 2026-01-14 12:40:07.666376591 | 7011 | 買埋 | 4657.0 | 100 | -800.0 | |
| 23 | 2026-01-14 12:47:44.899830580 | 7011 | 売建 | 4658.0 | 100 | ||
| 24 | 2026-01-14 12:51:44.580913067 | 7011 | 買埋 | 4662.0 | 100 | -400.0 | |
| 25 | 2026-01-14 13:07:00.725727320 | 7011 | 買建 | 4658.0 | 100 | ||
| 26 | 2026-01-14 13:13:30.952054739 | 7011 | 売埋 | 4660.0 | 100 | 200.0 | |
| 27 | 2026-01-14 13:51:23.567097187 | 7011 | 売建 | 4653.0 | 100 | ||
| 28 | 2026-01-14 13:56:30.717854261 | 7011 | 買埋 | 4663.0 | 100 | -1000.0 | |
| 29 | 2026-01-14 13:56:31.709067345 | 7011 | 買建 | 4663.0 | 100 | ||
| 30 | 2026-01-14 14:02:10.456957579 | 7011 | 売埋 | 4660.0 | 100 | -300.0 | |
| 31 | 2026-01-14 15:05:30.830638885 | 7011 | 売建 | 4674.0 | 100 | ||
| 32 | 2026-01-14 15:09:36.381393909 | 7011 | 買埋 | 4678.0 | 100 | -400.0 | |
| 合計損益 | -6700.0 | ||||||
累積損益の時系列トレンド
今日の累積損益の時系列トレンドを見ると、残念ながらクロス・シグナルのタイミングがことごとく裏目に出て損失を重ねています(-6,700 円)。
こういう結果を見てしまうと、移動平均線 MA1 を単純な移動平均線 (SMA) から指数平滑移動平均線 (EMA) へ変更したくなるのですが、ぐっと堪えてひとまず今日の分の DOE 実施が終了した後、今日の値動きで利益を上げている条件を確認することにします。
なお、EMA を処理するクラスは用意してあるので、機を見て評価をする予定ではあります。
テクニカル指標の時系列トレンド
環境内で管理している、売買シグナルのソースとなるテクニカル指標と含み損益のトレンドをプロットしました。
縦の赤線は、取引明細の時間から入れたもので、売買をしたタイミングになります。
売買ロジックへのインプット
売買ロジックは Maskable PPO 互換のインターフェイスを持った自作のアルゴリズムを備えた疑似モデルです。
なるべくシンプルなロジックで売買判断できることを目指しているため、現在のところ、[0, 1] あるいは [-1, 0, 1] といった離散的なシグナルをインプットするようにしています。
シグナル名は短縮してしまって意味が判りにくいので、それぞれの機能をまとめました。
- クロスS1
- 移動平均 MA1, MA2 のクロスシグナル。デッドクロス、クロス無し、ゴールデンクロスを -1, 0, 1 としたシグナル。
- クロスS2
- クロスS1の 1 秒遅れのシグナル。反対売買用。
- クロ強
- MA1 の傾き(絶対値)が THRESHOLD_SLOPE より大きい場合に発生するクロス・シグナルの強さを示すシグナル。
- 乱高下
- Rolling Range の値が TURBULENCE より大きい場合は、株価が乱高下しているとみなしてエントリを抑制するシグナル。
- ロス1
- 含み損益が LOSSCUT_1 を下回った時に発生するシグナル。
- 建玉
- ポジション SHORT, NONE, LONG を -1, 0, 1 としたシグナル。
本日分の等高線図
収集したティックデータから、DOE を実施し、移動平均線 MA1 と MA2 の周期の組み合わせによる損益の等高線図を確認しました。収益を得られそうな値動きに思えましたが移動平均線のクロスシグナルによる売買ではほとんどの領域では収益を上げられていません。
ちなみに、実験条件の範囲において、収益が最大だった条件は下記の通りです。設定した取引回数の上限 100 回に達してしまっています。
2026-01-14 のベスト条件 [doe-10g] PERIOD_MA_1 PERIOD_MA_2 取引回数 損益 0 30 300 100 5900.0
リアルタイムの取引シミュレーションを眺めていると、含み益があるのにズルズルとマイ転するまで建玉を返済しないパターンが多いように感じていましたが、数値化できていません。ひょっとすると、売買判定にバグが潜んでいてこんなことになっているのかもしれません。チェックし直します。
また、最低限のロスカット機能は実装していますが、強制的な利確の方は未実装です。今の段階であれこれ利確機能を加えるのは早いと思っていましたが、キリの良いところで利確する機能を実装する必要があるかもしれません。
参考サイト
- マーケットスピード 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 件のコメント:
コメントを投稿