楽天証券の口座でデイトレの自動売買に挑戦しようと Windows / Excel 上で利用できる マーケットスピード II RSS を活用して Python であれこれ取り組んでいます。この「自動売買への道」のトピックでは、プログラミングの話題にも踏み込んで、日々の活動をまとめています。
今日の日経平均株価
| 現在値 | 52,774.64 | -216.46 | -0.41% | 15:30 | |
|---|---|---|---|---|---|
| 前日終値 | 52,991.10 | 01/20 | 高値 | 52,848.78 | 10:44 |
| 始値 | 52,228.08 | 09:00 | 安値 | 52,194.81 | 09:03 |
※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。
【関連ニュース】
- 日本国債急落、トレーディング現場は「狂乱」-財政懸念が突然広がる - Bloomberg [2026-01-21]
- 米国株式市場=大幅続落、ダウ870ドル安 グリーンランド関税巡る懸念で | ロイター [2026-01-21]
- 中国万科、債券保有者が一部返済の1年延期を承認 | ロイター [2026-01-21]
- SHIFT、システム可視化サービスを高度化 松尾研究所と共同開発 - 日本経済新聞 [2026-01-21]
- 日経平均は5日続落、売り一巡後下げ渋り 金融株軟調 | ロイター [2026-01-21]
デイトレ用自作アプリ
以下は株価・取引に関連する情報の流れを示しています。
楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード II RSS を介して取引をする構成を取っています。
リアルタイムの取引シミュレーション (7011)
| value | |
|---|---|
| PERIOD_WARMUP | 180.00 |
| PERIOD_MA_1 | 40.00 |
| PERIOD_MA_2 | 1400.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 | 180.00 |
本日のパラメータを決めるために、実験計画 (DOE) にもとづいた取引シミュレーションを実施して、その結果を蓄積しています。毎回、詳細な解析・考察をしようとすると続かないので、興味がある情報だけをまとめています。
今日は、実験水準内で移動平均線の短周期、長周期が極端に離れていて、かつ、直近 (25 営業日分) のシミュレーション上の収益がそこそこある条件を選びました。
以下は、本日のリアルタイム取引シミュレーション (Simulated Trade) による取引結果です。
| 注文番号 | 注文日時 | 銘柄コード | 売買 | 約定単価 | 約定数量 | 損益 | 備考 |
|---|---|---|---|---|---|---|---|
| 1 | 2026-01-21 09:15:35.709371805 | 7011 | 売建 | 4757.0 | 100 | ||
| 2 | 2026-01-21 09:16:38.952451944 | 7011 | 買埋 | 4750.0 | 100 | 700.0 | |
| 3 | 2026-01-21 09:18:17.187366962 | 7011 | 買建 | 4760.0 | 100 | ||
| 4 | 2026-01-21 09:18:58.315700531 | 7011 | 売埋 | 4757.0 | 100 | -300.0 | |
| 5 | 2026-01-21 09:18:59.322422028 | 7011 | 売建 | 4758.0 | 100 | ||
| 6 | 2026-01-21 09:19:11.357567787 | 7011 | 買埋 | 4762.0 | 100 | -400.0 | |
| 7 | 2026-01-21 09:19:12.351068497 | 7011 | 買建 | 4764.0 | 100 | ||
| 8 | 2026-01-21 10:00:16.275466442 | 7011 | 売埋 | 4845.0 | 100 | 8100.0 | |
| 9 | 2026-01-21 10:00:17.282825708 | 7011 | 売建 | 4845.0 | 100 | ||
| 10 | 2026-01-21 10:01:17.451091766 | 7011 | 買埋 | 4843.0 | 100 | 200.0 | |
| 11 | 2026-01-21 10:02:50.760915995 | 7011 | 買建 | 4863.0 | 100 | ||
| 12 | 2026-01-21 10:07:15.740635872 | 7011 | 売埋 | 4865.0 | 100 | 200.0 | |
| 13 | 2026-01-21 10:11:49.477062225 | 7011 | 売建 | 4862.0 | 100 | ||
| 14 | 2026-01-21 10:13:03.695614100 | 7011 | 買埋 | 4866.0 | 100 | -400.0 | |
| 15 | 2026-01-21 10:13:04.704238653 | 7011 | 買建 | 4867.0 | 100 | ||
| 16 | 2026-01-21 10:15:33.165325165 | 7011 | 売埋 | 4871.0 | 100 | 400.0 | |
| 17 | 2026-01-21 10:26:17.052114725 | 7011 | 売建 | 4865.0 | 100 | ||
| 18 | 2026-01-21 10:35:36.744697332 | 7011 | 買埋 | 4858.0 | 100 | 700.0 | |
| 19 | 2026-01-21 10:47:51.078378916 | 7011 | 買建 | 4859.0 | 100 | ||
| 20 | 2026-01-21 10:55:35.492996693 | 7011 | 売埋 | 4852.0 | 100 | -700.0 | |
| 21 | 2026-01-21 10:55:36.500608921 | 7011 | 売建 | 4851.0 | 100 | ||
| 22 | 2026-01-21 10:57:32.779518127 | 7011 | 買埋 | 4855.0 | 100 | -400.0 | |
| 23 | 2026-01-21 10:57:46.835363388 | 7011 | 買建 | 4856.0 | 100 | ||
| 24 | 2026-01-21 11:01:42.520549536 | 7011 | 売埋 | 4853.0 | 100 | -300.0 | |
| 25 | 2026-01-21 11:01:43.525063276 | 7011 | 売建 | 4853.0 | 100 | ||
| 26 | 2026-01-21 11:02:52.813138247 | 7011 | 買埋 | 4859.0 | 100 | -600.0 | |
| 27 | 2026-01-21 11:02:53.817453861 | 7011 | 買建 | 4859.0 | 100 | ||
| 28 | 2026-01-21 11:09:01.802683592 | 7011 | 売埋 | 4856.0 | 100 | -300.0 | |
| 29 | 2026-01-21 12:30:48.130041838 | 7011 | 買建 | 4864.0 | 100 | ||
| 30 | 2026-01-21 12:32:59.612230539 | 7011 | 売埋 | 4851.0 | 100 | -1300.0 | |
| 31 | 2026-01-21 12:39:31.925495625 | 7011 | 売建 | 4842.0 | 100 | ||
| 32 | 2026-01-21 13:01:16.077589273 | 7011 | 買埋 | 4832.0 | 100 | 1000.0 | |
| 33 | 2026-01-21 13:02:08.213837862 | 7011 | 買建 | 4834.0 | 100 | ||
| 34 | 2026-01-21 13:12:08.068628550 | 7011 | 売埋 | 4827.0 | 100 | -700.0 | |
| 35 | 2026-01-21 13:12:09.072906733 | 7011 | 売建 | 4828.0 | 100 | ||
| 36 | 2026-01-21 13:16:16.887746811 | 7011 | 買埋 | 4821.0 | 100 | 700.0 | |
| 37 | 2026-01-21 13:37:05.863252878 | 7011 | 売建 | 4814.0 | 100 | ||
| 38 | 2026-01-21 13:39:24.273653984 | 7011 | 買埋 | 4822.0 | 100 | -800.0 | |
| 39 | 2026-01-21 13:39:25.279504299 | 7011 | 買建 | 4821.0 | 100 | ||
| 40 | 2026-01-21 13:41:13.566301584 | 7011 | 売埋 | 4817.0 | 100 | -400.0 | |
| 41 | 2026-01-21 13:41:36.659981012 | 7011 | 売建 | 4813.0 | 100 | ||
| 42 | 2026-01-21 13:44:16.176020384 | 7011 | 買埋 | 4819.0 | 100 | -600.0 | |
| 43 | 2026-01-21 13:44:17.181723356 | 7011 | 買建 | 4820.0 | 100 | ||
| 44 | 2026-01-21 13:45:22.521100760 | 7011 | 売埋 | 4814.0 | 100 | -600.0 | |
| 45 | 2026-01-21 13:45:23.526418924 | 7011 | 売建 | 4814.0 | 100 | ||
| 46 | 2026-01-21 14:03:45.098054647 | 7011 | 買埋 | 4807.0 | 100 | 700.0 | |
| 47 | 2026-01-21 14:04:11.144979715 | 7011 | 買建 | 4811.0 | 100 | ||
| 48 | 2026-01-21 14:15:13.913419962 | 7011 | 売埋 | 4812.0 | 100 | 100.0 | |
| 49 | 2026-01-21 14:26:26.968203068 | 7011 | 売建 | 4815.0 | 100 | ||
| 50 | 2026-01-21 14:30:33.647756338 | 7011 | 買埋 | 4816.0 | 100 | -100.0 | |
| 51 | 2026-01-21 14:41:34.282890081 | 7011 | 買建 | 4818.0 | 100 | ||
| 52 | 2026-01-21 14:45:42.050350666 | 7011 | 売埋 | 4813.0 | 100 | -500.0 | |
| 53 | 2026-01-21 14:45:43.058746576 | 7011 | 売建 | 4813.0 | 100 | ||
| 54 | 2026-01-21 14:46:22.181325197 | 7011 | 買埋 | 4815.0 | 100 | -200.0 | |
| 55 | 2026-01-21 14:53:06.780836582 | 7011 | 売建 | 4812.0 | 100 | ||
| 56 | 2026-01-21 14:58:55.750698090 | 7011 | 買埋 | 4815.0 | 100 | -300.0 | |
| 57 | 2026-01-21 15:03:09.662839890 | 7011 | 売建 | 4812.0 | 100 | ||
| 58 | 2026-01-21 15:18:53.731103182 | 7011 | 買埋 | 4816.0 | 100 | -400.0 | |
| 59 | 2026-01-21 15:18:54.738800287 | 7011 | 買建 | 4816.0 | 100 | ||
| 60 | 2026-01-21 15:22:19.350365162 | 7011 | 売埋 | 4807.0 | 100 | -900.0 | |
| 61 | 2026-01-21 15:22:20.359537601 | 7011 | 売建 | 4808.0 | 100 | ||
| 62 | 2026-01-21 15:23:19.462211847 | 7011 | 買埋 | 4812.0 | 100 | -400.0 | |
| 63 | 2026-01-21 15:23:20.470109224 | 7011 | 買建 | 4811.0 | 100 | ||
| 64 | 2026-01-21 15:24:50.699108362 | 7011 | 売埋 | 4816.0 | 100 | 500.0 | |
| 合計損益 | 2700.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 件のコメント:
コメントを投稿