楽天証券の口座でデイトレの自動売買に挑戦しようと Windows / Excel 上で利用できる マーケットスピード II RSS を活用して Python であれこれ取り組んでいます。この「自動売買への道」のトピックでは、プログラミングの話題にも踏み込んで、日々の活動をまとめています。
今日の日経平均株価
| 現在値 | 53,688.89 | +914.25 | +1.73% | 15:45 | |
|---|---|---|---|---|---|
| 前日終値 | 52,774.64 | 01/21 | 高値 | 53,922.53 | 14:08 |
| 始値 | 53,327.39 | 09:00 | 安値 | 53,242.38 | 09:00 |
※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。
【関連ニュース】
- ソニーが最新型イヤホンを発表、人気上昇中のクリップ式デザイン - Bloomberg [2026-01-22]
- ウォール街の常勝戦略「TACOトレード」に陰り、ついにリスクを認識 - Bloomberg [2026-01-22]
- 【米国市況】株反発、グリーンランド巡る関税見送りで-158円台前半 - Bloomberg [2026-01-22]
- 米国株式市場=急反発、ダウ588ドル高 グリーンランド関税回避で | ロイター [2026-01-22]
- 「脱レアアース」で8割高のミツバ株、高騰に懐疑的な声-技術面で制約 - Bloomberg [2026-01-22]
- 日経平均は6日ぶり反発、米欧対立への過度な警戒が緩和 決算期待も | ロイター [2026-01-22]
デイトレ用自作アプリ
以下は株価・取引に関連する情報の流れを示しています。
楽天証券では、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.10 |
| 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) にもとづいた取引シミュレーションを実施して、その結果を蓄積しています。毎回、詳細な解析・考察をしようとすると続かないので、興味がある情報だけをまとめています。
今日は、チャートの確認はそっちのけで、リアルタイムで Excel ファイルから読み込む処理を、生成 AI の助けを借りて最適化することに集中していました。取引中でしか確認できないことを、バックアップ用の Windows PC 上で確認していました。その甲斐あって CPU 負荷を随分削減できました。
以下は、本日のリアルタイム取引シミュレーション (Simulated Trade) による取引結果です。
| 注文番号 | 注文日時 | 銘柄コード | 売買 | 約定単価 | 約定数量 | 損益 | 備考 |
|---|---|---|---|---|---|---|---|
| 1 | 2026-01-22 09:32:54.933141947 | 7011 | 買建 | 4732.0 | 100 | ||
| 2 | 2026-01-22 09:34:57.291762590 | 7011 | 売埋 | 4737.0 | 100 | 500.0 | |
| 3 | 2026-01-22 09:54:39.383417130 | 7011 | 売建 | 4739.0 | 100 | ||
| 4 | 2026-01-22 10:05:02.386697769 | 7011 | 買埋 | 4734.0 | 100 | 500.0 | |
| 5 | 2026-01-22 10:23:55.908145666 | 7011 | 買建 | 4717.0 | 100 | ||
| 6 | 2026-01-22 10:24:37.093510151 | 7011 | 売埋 | 4710.0 | 100 | -700.0 | |
| 7 | 2026-01-22 10:24:38.084219217 | 7011 | 売建 | 4710.0 | 100 | ||
| 8 | 2026-01-22 10:29:56.020367622 | 7011 | 買埋 | 4708.0 | 100 | 200.0 | |
| 9 | 2026-01-22 10:30:25.134522676 | 7011 | 買建 | 4714.0 | 100 | ||
| 10 | 2026-01-22 10:33:22.761293411 | 7011 | 売埋 | 4710.0 | 100 | -400.0 | |
| 11 | 2026-01-22 10:41:35.015271425 | 7011 | 売建 | 4704.0 | 100 | ||
| 12 | 2026-01-22 10:43:07.289942026 | 7011 | 買埋 | 4708.0 | 100 | -400.0 | |
| 13 | 2026-01-22 11:00:43.570283175 | 7011 | 買建 | 4700.0 | 100 | ||
| 14 | 2026-01-22 11:08:33.072920561 | 7011 | 売埋 | 4705.0 | 100 | 500.0 | |
| 15 | 2026-01-22 11:25:28.562444210 | 7011 | 買建 | 4708.0 | 100 | ||
| 16 | 2026-01-22 11:27:09.881929874 | 7011 | 売埋 | 4702.0 | 100 | -600.0 | |
| 17 | 2026-01-22 12:31:58.729647875 | 7011 | 売建 | 4696.0 | 100 | ||
| 18 | 2026-01-22 12:34:37.225333214 | 7011 | 買埋 | 4706.0 | 100 | -1000.0 | |
| 19 | 2026-01-22 12:34:38.227846861 | 7011 | 買建 | 4704.0 | 100 | ||
| 20 | 2026-01-22 12:36:57.630726576 | 7011 | 売埋 | 4696.0 | 100 | -800.0 | |
| 21 | 2026-01-22 12:36:58.636785984 | 7011 | 売建 | 4696.0 | 100 | ||
| 22 | 2026-01-22 12:38:32.931328058 | 7011 | 買埋 | 4698.0 | 100 | -200.0 | |
| 23 | 2026-01-22 12:40:04.261404276 | 7011 | 買建 | 4702.0 | 100 | ||
| 24 | 2026-01-22 12:43:11.655810356 | 7011 | 売埋 | 4699.0 | 100 | -300.0 | |
| 25 | 2026-01-22 12:53:27.019790173 | 7011 | 売建 | 4700.0 | 100 | ||
| 26 | 2026-01-22 13:08:22.637713909 | 7011 | 買埋 | 4694.0 | 100 | 600.0 | |
| 27 | 2026-01-22 13:21:46.290132046 | 7011 | 買建 | 4685.0 | 100 | ||
| 28 | 2026-01-22 14:24:04.081807613 | 7011 | 売埋 | 4702.0 | 100 | 1700.0 | |
| 29 | 2026-01-22 14:25:03.284773588 | 7011 | 買建 | 4707.0 | 100 | ||
| 30 | 2026-01-22 14:44:15.230225563 | 7011 | 売埋 | 4721.0 | 100 | 1400.0 | |
| 31 | 2026-01-22 15:05:12.358157396 | 7011 | 買建 | 4718.0 | 100 | ||
| 32 | 2026-01-22 15:05:47.400572777 | 7011 | 売埋 | 4713.0 | 100 | -500.0 | |
| 33 | 2026-01-22 15:05:48.419083834 | 7011 | 売建 | 4713.0 | 100 | ||
| 34 | 2026-01-22 15:06:32.553395510 | 7011 | 買埋 | 4717.0 | 100 | -400.0 | |
| 合計損益 | 100.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 件のコメント:
コメントを投稿