楽天証券の口座でデイトレの自動売買に挑戦しようと Windows / Excel 上で利用できる マーケットスピード II RSS を活用して Python であれこれ取り組んでいます。この「自動売買への道」のトピックでは、プログラミングの話題にも踏み込んで、日々の活動をまとめています。
今日の日経平均株価
| 現在値 | 52,991.10 | -592.47 | -1.11% | 15:30 | |
|---|---|---|---|---|---|
| 前日終値 | 53,583.57 | 01/19 | 高値 | 53,408.35 | 09:00 |
| 始値 | 53,348.59 | 09:00 | 安値 | 52,852.90 | 13:58 |
※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。
【関連ニュース】
- 米欧株が下落、トランプ氏関税警告で貿易摩擦懸念が再燃-金は最高値 - Bloomberg [2026-01-20]
- 超長期金利急騰、昨年4月来の変動に-財政と需給警戒で95年来の4%台 - Bloomberg [2026-01-20]
- 20年国債入札の応札倍率は3.19倍、過去12カ月平均3.34倍を下回る - Bloomberg [2026-01-20]
- 日経平均は4日続落、利益確定継続 政策期待で内需株は上昇 | ロイター [2026-01-20]
デイトレ用自作アプリ
以下は株価・取引に関連する情報の流れを示しています。
楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード II RSS を介して取引をする構成を取っています。
リアルタイムの取引シミュレーション (7011)
| value | |
|---|---|
| PERIOD_WARMUP | 180.00 |
| PERIOD_MA_1 | 50.00 |
| PERIOD_MA_2 | 800.00 |
| PERIOD_SLOPE | 5.00 |
| THRESHOLD_SLOPE | 0.05 |
| PERIOD_RR | 30.00 |
| TURBULENCE | 35.00 |
| LOSSCUT_1 | -25.00 |
| THRESHOLD_PM_MIN | 10.00 |
| THRESHOLD_DDR_MIN | 0.60 |
| N_MINUS_MAX | 240.00 |
本日のパラメータを決めるために、実験計画 (DOE) にもとづいた取引シミュレーションを実施して、その結果を蓄積しています。毎回、詳細な解析・考察をしようとすると続かないので、興味がある情報だけをまとめています。
観測値(主にテクニカル指標)をレビューできる体制が整うと、評価したい指標が次々と出てきます。評価したいパラメータがある程度出尽くして売買ロジックへの反映が終わるまでは、移動平均線の周期の組み合わせ探索をベースの DOE として毎日実施しています。ベースラインの 3 銘柄について、夕方にシミュレータに仕掛けて翌朝に全結果が出ているような実験量に調節しています。
他のパラメータについては小規模な DOE を昼間に実施して、部分最適化に注力しています。
以下は、本日のリアルタイム取引シミュレーション (Simulated Trade) による取引結果です。
| 注文番号 | 注文日時 | 銘柄コード | 売買 | 約定単価 | 約定数量 | 損益 | 備考 |
|---|---|---|---|---|---|---|---|
| 1 | 2026-01-20 09:08:02.931283236 | 7011 | 売建 | 4884.0 | 100 | ||
| 2 | 2026-01-20 09:08:48.221943617 | 7011 | 買埋 | 4900.0 | 100 | -1600.0 | |
| 3 | 2026-01-20 09:08:49.224189520 | 7011 | 買建 | 4898.0 | 100 | ||
| 4 | 2026-01-20 09:12:04.143759727 | 7011 | 売埋 | 4902.0 | 100 | 400.0 | |
| 5 | 2026-01-20 09:13:54.690078259 | 7011 | 売建 | 4896.0 | 100 | ||
| 6 | 2026-01-20 09:34:49.462503910 | 7011 | 買埋 | 4839.0 | 100 | 5700.0 | |
| 7 | 2026-01-20 09:34:50.466616869 | 7011 | 買建 | 4840.0 | 100 | ||
| 8 | 2026-01-20 09:44:20.992662191 | 7011 | 売埋 | 4853.0 | 100 | 1300.0 | |
| 9 | 2026-01-20 09:45:15.278560400 | 7011 | 売建 | 4848.0 | 100 | ||
| 10 | 2026-01-20 09:48:59.333724737 | 7011 | 買埋 | 4856.0 | 100 | -800.0 | |
| 11 | 2026-01-20 09:49:00.350282907 | 7011 | 買建 | 4857.0 | 100 | ||
| 12 | 2026-01-20 09:49:27.451502562 | 7011 | 売埋 | 4853.0 | 100 | -400.0 | |
| 13 | 2026-01-20 10:07:11.188257694 | 7011 | 売建 | 4832.0 | 100 | ||
| 14 | 2026-01-20 10:07:31.211841822 | 7011 | 買埋 | 4834.0 | 100 | -200.0 | |
| 15 | 2026-01-20 10:19:55.703878880 | 7011 | 買建 | 4823.0 | 100 | ||
| 16 | 2026-01-20 10:33:15.694299459 | 7011 | 売埋 | 4832.0 | 100 | 900.0 | |
| 17 | 2026-01-20 10:33:16.697115898 | 7011 | 売建 | 4834.0 | 100 | ||
| 18 | 2026-01-20 10:47:43.006493807 | 7011 | 買埋 | 4830.0 | 100 | 400.0 | |
| 19 | 2026-01-20 10:47:50.012936592 | 7011 | 買建 | 4827.0 | 100 | ||
| 20 | 2026-01-20 10:49:19.501533985 | 7011 | 売埋 | 4824.0 | 100 | -300.0 | |
| 21 | 2026-01-20 10:55:11.087258816 | 7011 | 買建 | 4825.0 | 100 | ||
| 22 | 2026-01-20 10:56:21.365866899 | 7011 | 売埋 | 4822.0 | 100 | -300.0 | |
| 23 | 2026-01-20 11:21:13.095693111 | 7011 | 買建 | 4797.0 | 100 | ||
| 24 | 2026-01-20 11:21:29.132600307 | 7011 | 売埋 | 4794.0 | 100 | -300.0 | |
| 25 | 2026-01-20 11:21:30.137910604 | 7011 | 売建 | 4794.0 | 100 | ||
| 26 | 2026-01-20 12:30:10.030370474 | 7011 | 買埋 | 4786.0 | 100 | 800.0 | |
| 27 | 2026-01-20 12:47:15.830798626 | 7011 | 売建 | 4826.0 | 100 | ||
| 28 | 2026-01-20 12:50:16.716306210 | 7011 | 買埋 | 4822.0 | 100 | 400.0 | |
| 29 | 2026-01-20 12:53:23.612971783 | 7011 | 買建 | 4833.0 | 100 | ||
| 30 | 2026-01-20 13:04:25.468582153 | 7011 | 売埋 | 4831.0 | 100 | -200.0 | |
| 31 | 2026-01-20 13:11:17.482993603 | 7011 | 買建 | 4835.0 | 100 | ||
| 32 | 2026-01-20 13:12:47.763389587 | 7011 | 売埋 | 4829.0 | 100 | -600.0 | |
| 33 | 2026-01-20 13:12:48.751995087 | 7011 | 売建 | 4829.0 | 100 | ||
| 34 | 2026-01-20 13:17:33.315009117 | 7011 | 買埋 | 4824.0 | 100 | 500.0 | |
| 35 | 2026-01-20 13:24:42.031223297 | 7011 | 買建 | 4824.0 | 100 | ||
| 36 | 2026-01-20 13:41:26.833269596 | 7011 | 売埋 | 4838.0 | 100 | 1400.0 | |
| 37 | 2026-01-20 13:41:27.834885836 | 7011 | 売建 | 4838.0 | 100 | ||
| 38 | 2026-01-20 14:00:16.330434322 | 7011 | 買埋 | 4835.0 | 100 | 300.0 | |
| 39 | 2026-01-20 14:00:50.438346386 | 7011 | 買建 | 4837.0 | 100 | ||
| 40 | 2026-01-20 14:01:50.592600584 | 7011 | 売埋 | 4835.0 | 100 | -200.0 | |
| 41 | 2026-01-20 14:12:10.603047371 | 7011 | 買建 | 4840.0 | 100 | ||
| 42 | 2026-01-20 14:16:37.025683880 | 7011 | 売埋 | 4838.0 | 100 | -200.0 | |
| 43 | 2026-01-20 14:16:38.031364202 | 7011 | 売建 | 4838.0 | 100 | ||
| 44 | 2026-01-20 14:20:55.461994410 | 7011 | 買埋 | 4839.0 | 100 | -100.0 | |
| 45 | 2026-01-20 14:42:15.122286558 | 7011 | 売建 | 4850.0 | 100 | ||
| 46 | 2026-01-20 14:42:33.142925978 | 7011 | 買埋 | 4853.0 | 100 | -300.0 | |
| 47 | 2026-01-20 14:42:34.160367012 | 7011 | 買建 | 4852.0 | 100 | ||
| 48 | 2026-01-20 14:43:36.401164770 | 7011 | 売埋 | 4850.0 | 100 | -200.0 | |
| 49 | 2026-01-20 14:59:19.012402058 | 7011 | 売建 | 4846.0 | 100 | ||
| 50 | 2026-01-20 15:24:50.098436832 | 7011 | 買埋 | 4807.0 | 100 | 3900.0 | |
| 合計損益 | 10300.0 | ||||||
累積損益の時系列トレンド
今日の累積損益の時系列トレンドです。
テクニカル指標の時系列トレンド
環境内で管理している、売買シグナルのソースとなるテクニカル指標と含み損益のトレンドをプロットしました。
縦の赤線は、取引明細の時間から入れたもので、売買をしたタイミングになります。
売買ロジックへのインプット
売買ロジックは 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 を下回った時にロスカットするシグナル。
- ロス2
- 含み損益が N_MINUS_MAX 回より多く連続して負になったらロスカットするシグナル。
- 利確1
- 含み益最大値 (Profit Min = PM) が、設定した最低値 THRESHOLD_PM_MIN より大きく、ドローダウン比率 (Draw Down Ratio = DDR) が設定したしきい値 THRESHOLD_DDR_MIN より大きくなったときに利確タイミングのシグナルを発生。
- 建玉
- ポジション SHORT, NONE, LONG を -1, 0, 1 としたシグナル。
参考サイト
- マーケットスピード 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 件のコメント:
コメントを投稿