楽天証券の口座でデイトレの自動売買に挑戦しようと Windows / Excel 上で利用できる マーケットスピード II RSS を活用して Python であれこれ取り組んでいます。この「自動売買への道」のトピックでは、プログラミングの話題にも踏み込んで、日々の活動をまとめています。
今日の日経平均株価
| 現在値 | 53,846.87 | +157.98 | +0.29% | 15:45 | |
|---|---|---|---|---|---|
| 前日終値 | 53,688.89 | 01/22 | 高値 | 54,050.84 | 12:55 |
| 始値 | 53,898.45 | 09:00 | 安値 | 53,603.68 | 09:15 |
※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。
【関連ニュース】
- ムーディーズがニデックを投機的等級のBa3に格下げ、見通しネガティブ - Bloomberg [2026-01-22]
- 任天堂「スイッチ2」、12月は米国での販売が好調-需要鈍化の懸念払拭 - Bloomberg [2026-01-22]
- 米PCE統計、個人支出が2カ月連続で堅調な伸び-消費の底堅さ鮮明 - Bloomberg [2026-01-23]
- 米新規失業保険申請件数は0.1万件増、低採用・低解雇続く | ロイター [2026-01-23]
- 米GDP、25年第3四半期改定値は4.4%増 23年同四半期以来の伸び | ロイター [2026-01-23]
- 日銀が政策金利を維持、経済・物価見通し上方修正-正常化路線は継続 - Bloomberg [2026-01-23]
- 衆院が解散、高市政権の「責任ある積極財政」を問う政権選択選挙へ - Bloomberg [2026-01-23]
- サカナAIにグーグルが出資、日本でのジェミニ普及模索-言語モデル活用 - Bloomberg [2026-01-23]
- 日銀総裁、例外的な状況では機動的にオペを実施ー長期金利上昇 - Bloomberg [2026-01-23]
- 日経平均は続伸、日銀総裁会見控え様子見ムードも | ロイター [2026-01-23]
- 日銀総裁、見通し実現していけば利上げ 円安の基調物価影響を注視 | ロイター [2026-01-23]
デイトレ用自作アプリ
以下は株価・取引に関連する情報の流れを示しています。
楽天証券では、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 | 15.00 |
| THRESHOLD_DDR_MIN | 0.20 |
| N_MINUS_MAX | 180.00 |
本日のパラメータを決めるために、実験計画 (DOE) にもとづいた取引シミュレーションを実施して、その結果を蓄積しています。毎回、詳細な解析・考察をしようとすると続かないので、興味がある情報だけをまとめています。
以下は、本日のリアルタイム取引シミュレーション (Simulated Trade) による取引結果です。
| 注文番号 | 注文日時 | 銘柄コード | 売買 | 約定単価 | 約定数量 | 損益 | 備考 |
|---|---|---|---|---|---|---|---|
| 1 | 2026-01-23 09:03:53.255362511 | 7011 | 買建 | 4735.0 | 100 | ||
| 2 | 2026-01-23 09:08:04.152911425 | 7011 | 売埋 | 4728.0 | 100 | -700.0 | |
| 3 | 2026-01-23 09:08:05.161302567 | 7011 | 売建 | 4720.0 | 100 | ||
| 4 | 2026-01-23 09:09:15.422426224 | 7011 | 買埋 | 4734.0 | 100 | -1400.0 | |
| 5 | 2026-01-23 09:09:16.427311420 | 7011 | 買建 | 4734.0 | 100 | ||
| 6 | 2026-01-23 09:10:38.670450687 | 7011 | 売埋 | 4732.0 | 100 | -200.0 | |
| 7 | 2026-01-23 09:10:39.663048983 | 7011 | 売建 | 4731.0 | 100 | ||
| 8 | 2026-01-23 09:11:02.724727869 | 7011 | 買埋 | 4736.0 | 100 | -500.0 | |
| 9 | 2026-01-23 09:11:03.734669209 | 7011 | 買建 | 4735.0 | 100 | ||
| 10 | 2026-01-23 09:11:38.877211332 | 7011 | 売埋 | 4728.0 | 100 | -700.0 | |
| 11 | 2026-01-23 09:11:39.885648966 | 7011 | 売建 | 4729.0 | 100 | ||
| 12 | 2026-01-23 09:14:00.287638903 | 7011 | 買埋 | 4740.0 | 100 | -1100.0 | |
| 13 | 2026-01-23 09:14:01.294163704 | 7011 | 買建 | 4740.0 | 100 | ||
| 14 | 2026-01-23 09:17:45.109386683 | 7011 | 売埋 | 4758.0 | 100 | 1800.0 | |
| 15 | 2026-01-23 09:30:55.002491236 | 7011 | 売建 | 4748.0 | 100 | ||
| 16 | 2026-01-23 09:31:31.061454535 | 7011 | 買埋 | 4752.0 | 100 | -400.0 | |
| 17 | 2026-01-23 09:39:57.522360802 | 7011 | 売建 | 4757.0 | 100 | ||
| 18 | 2026-01-23 09:40:49.820747852 | 7011 | 買埋 | 4765.0 | 100 | -800.0 | |
| 19 | 2026-01-23 09:40:50.827666521 | 7011 | 買建 | 4766.0 | 100 | ||
| 20 | 2026-01-23 09:43:41.423065901 | 7011 | 売埋 | 4760.0 | 100 | -600.0 | |
| 21 | 2026-01-23 09:43:42.427032232 | 7011 | 売建 | 4760.0 | 100 | ||
| 22 | 2026-01-23 09:46:10.841842651 | 7011 | 買埋 | 4761.0 | 100 | -100.0 | |
| 23 | 2026-01-23 09:48:33.257544279 | 7011 | 売建 | 4760.0 | 100 | ||
| 24 | 2026-01-23 09:50:25.639108896 | 7011 | 買埋 | 4767.0 | 100 | -700.0 | |
| 25 | 2026-01-23 09:50:26.629682779 | 7011 | 買建 | 4767.0 | 100 | ||
| 26 | 2026-01-23 09:52:28.037544250 | 7011 | 売埋 | 4760.0 | 100 | -700.0 | |
| 27 | 2026-01-23 09:52:29.042325497 | 7011 | 売建 | 4760.0 | 100 | ||
| 28 | 2026-01-23 09:54:20.335829496 | 7011 | 買埋 | 4746.0 | 100 | 1400.0 | |
| 29 | 2026-01-23 10:45:08.843826294 | 7011 | 売建 | 4724.0 | 100 | ||
| 30 | 2026-01-23 10:45:37.877856970 | 7011 | 買埋 | 4731.0 | 100 | -700.0 | |
| 31 | 2026-01-23 10:45:38.883409977 | 7011 | 買建 | 4731.0 | 100 | ||
| 32 | 2026-01-23 10:48:23.338110685 | 7011 | 売埋 | 4728.0 | 100 | -300.0 | |
| 33 | 2026-01-23 13:24:09.276726007 | 7011 | 買建 | 4633.0 | 100 | ||
| 34 | 2026-01-23 13:39:07.070012569 | 7011 | 売埋 | 4626.0 | 100 | -700.0 | |
| 35 | 2026-01-23 13:39:08.077225685 | 7011 | 売建 | 4626.0 | 100 | ||
| 36 | 2026-01-23 13:43:46.830888748 | 7011 | 買埋 | 4614.0 | 100 | 1200.0 | |
| 37 | 2026-01-23 14:16:21.336676121 | 7011 | 売建 | 4600.0 | 100 | ||
| 38 | 2026-01-23 14:17:23.515534163 | 7011 | 買埋 | 4609.0 | 100 | -900.0 | |
| 39 | 2026-01-23 14:17:24.504151821 | 7011 | 買建 | 4609.0 | 100 | ||
| 40 | 2026-01-23 14:23:17.626822948 | 7011 | 売埋 | 4607.0 | 100 | -200.0 | |
| 41 | 2026-01-23 14:39:37.591169119 | 7011 | 買建 | 4612.0 | 100 | ||
| 42 | 2026-01-23 14:40:19.737272501 | 7011 | 売埋 | 4609.0 | 100 | -300.0 | |
| 43 | 2026-01-23 14:46:17.613602877 | 7011 | 売建 | 4608.0 | 100 | ||
| 44 | 2026-01-23 14:51:22.594405174 | 7011 | 買埋 | 4610.0 | 100 | -200.0 | |
| 45 | 2026-01-23 15:05:07.268674135 | 7011 | 売建 | 4611.0 | 100 | ||
| 46 | 2026-01-23 15:07:26.811529398 | 7011 | 買埋 | 4610.0 | 100 | 100.0 | |
| 47 | 2026-01-23 15:20:19.103327513 | 7011 | 売建 | 4613.0 | 100 | ||
| 48 | 2026-01-23 15:24:50.971493006 | 7011 | 買埋 | 4609.0 | 100 | 400.0 | |
| 合計損益 | -6300.0 | ||||||
昨日、リアルタイムで Excel ファイルから読み込む処理を改良したので、今日はバックアップ用の Windows PC で取引時間を通しで動作確認をしていました。
本番環境で動かしていたリアルタイムの取引シミュレーションの方は、売買タイミングがうまく合わす残念な結果になってしまいましたが、評価バージョンの方はタイミングが異なるせいなのか、結果が少々違っていました(下図)。負荷試験も兼ねて、銘柄数を 3 つに増やしています。
来週から、この評価バージョンを本番環境で動かしてみる予定です。
累積損益の時系列トレンド
今日の累積損益の時系列トレンドです。
テクニカル指標の時系列トレンド
環境内で管理している、売買シグナルのソースとなるテクニカル指標と含み損益のトレンドをプロットしました。
縦の赤線は、取引明細の時間から入れたもので、売買をしたタイミングになります。
売買ロジックへのインプット
売買ロジックは 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 としたシグナル。
悩ましい…
毎日、複数銘柄のティックデータを収集していますが、キオクシアホールディングス (285A) もその一つです。パラメータの最適化ができていないのですが、仮決めのパラメータでも取引シミュレーションで良い成績を残す日があります。毎日、ある程度安定して収益を得られれば良いのですが、そうもいかないことが悩ましいです。
もっとスマートな取引アルゴリズムを開発したいのですが、強化学習モデルはまだまだハードルが高いです。昨年、強化学習モデルでそこそこのパフォーマンスすら出せなくて、一旦は諦めたのですが、アプローチを変えてすこしずつ取り組んでいます。
参考サイト
- マーケットスピード 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 件のコメント:
コメントを投稿