楽天証券の口座でデイトレの自動売買に挑戦しようと Windows / Excel 上で利用できる マーケットスピード II RSS を活用して Python であれこれ取り組んでいます。この「自動売買への道」のトピックでは、プログラミングの話題にも踏み込んで、日々の活動をまとめています。
今日の日経平均株価
| 現在値 | 53,583.57 | -352.60 | -0.65% | 15:30 | |
|---|---|---|---|---|---|
| 前日終値 | 53,936.17 | 01/16 | 高値 | 53,583.57 | 15:30 |
| 始値 | 53,390.05 | 09:00 | 安値 | 53,091.45 | 10:37 |
※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。
【関連ニュース】
- 【米国市況】トランプ氏発言で国債売り、FRB人事不透明に-円は堅調 - Bloomberg [2026-01-17]
- 米国株式市場=横ばい、週間では3指数とも下落 金融株が重し | ロイター [2026-01-17]
- トランプ氏、NATO加盟8カ国を関税で脅し-グリーンランド領有強硬手段 - Bloomberg [2026-01-18]
- 新AIツール登場でソフトウエア株急落-「保有する理由ない」と投資家 - Bloomberg [2026-01-19]
- 消費減税期待高まり食品関連株が軒並み上昇、財政懸念で債券は下落 - Bloomberg [2026-01-19]
- 日経平均は3日続落、利益確定継続 政局不透明感も重し | ロイター [2026-01-19]
デイトレ用自作アプリ
以下は株価・取引に関連する情報の流れを示しています。
楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード II RSS を介して取引をする構成を取っています。
リアルタイムの取引シミュレーション (7011)
| value | |
|---|---|
| PERIOD_WARMUP | 180.00 |
| PERIOD_MA_1 | 60.00 |
| PERIOD_MA_2 | 450.00 |
| PERIOD_SLOPE | 5.00 |
| THRESHOLD_SLOPE | 0.05 |
| PERIOD_RR | 30.00 |
| TURBULENCE | 35.00 |
| LOSSCUT_1 | -25.00 |
| THRESHOLD_PM_MIN | 20.00 |
| THRESHOLD_DDR_MIN | 0.10 |
| N_MINUS_MAX | 240.00 |
本日のパラメータを決めるために、実験計画 (DOE) にもとづいた取引シミュレーションを実施して、その結果を蓄積しています。毎回、詳細な解析・考察をしようとすると続かないので、興味がある情報だけをまとめています。
先週末にパラメータ N_MINUS_MAX を追加しました。これは、含み損益が連続でマイナスになる回数を保持するカウンタを追加し、このパラメータの値を超えたらロスカットするという機能です。
このパラメータについては暫定値を設定したのですが、パラメータの増加で DOE のやり直しが生じてバタバタしています。
以下は、本日のリアルタイム取引シミュレーション (Simulated Trade) による取引結果です。
| 注文番号 | 注文日時 | 銘柄コード | 売買 | 約定単価 | 約定数量 | 損益 | 備考 |
|---|---|---|---|---|---|---|---|
| 1 | 2026-01-19 09:03:18.157272100 | 7011 | 買建 | 4646.0 | 100 | ||
| 2 | 2026-01-19 09:04:22.434683084 | 7011 | 売埋 | 4669.0 | 100 | 2300.0 | |
| 3 | 2026-01-19 09:17:03.031918526 | 7011 | 売建 | 4722.0 | 100 | ||
| 4 | 2026-01-19 09:20:24.827427387 | 7011 | 買埋 | 4733.0 | 100 | -1100.0 | |
| 5 | 2026-01-19 09:20:25.829914808 | 7011 | 買建 | 4733.0 | 100 | ||
| 6 | 2026-01-19 09:20:50.927892685 | 7011 | 売埋 | 4730.0 | 100 | -300.0 | |
| 7 | 2026-01-19 09:20:56.957180262 | 7011 | 買建 | 4733.0 | 100 | ||
| 8 | 2026-01-19 09:27:09.437643290 | 7011 | 売埋 | 4727.0 | 100 | -600.0 | |
| 9 | 2026-01-19 09:27:10.453624249 | 7011 | 売建 | 4729.0 | 100 | ||
| 10 | 2026-01-19 09:34:51.333431959 | 7011 | 買埋 | 4730.0 | 100 | -100.0 | |
| 11 | 2026-01-19 09:34:52.339875698 | 7011 | 買建 | 4730.0 | 100 | ||
| 12 | 2026-01-19 09:37:52.522432327 | 7011 | 売埋 | 4723.0 | 100 | -700.0 | |
| 13 | 2026-01-19 09:37:53.538919926 | 7011 | 売建 | 4724.0 | 100 | ||
| 14 | 2026-01-19 09:39:04.958991051 | 7011 | 買埋 | 4738.0 | 100 | -1400.0 | |
| 15 | 2026-01-19 09:39:05.959220648 | 7011 | 買建 | 4738.0 | 100 | ||
| 16 | 2026-01-19 09:40:02.136487246 | 7011 | 売埋 | 4757.0 | 100 | 1900.0 | |
| 17 | 2026-01-19 09:46:13.911532402 | 7011 | 売建 | 4750.0 | 100 | ||
| 18 | 2026-01-19 09:48:39.637725592 | 7011 | 買埋 | 4758.0 | 100 | -800.0 | |
| 19 | 2026-01-19 09:51:11.452517033 | 7011 | 売建 | 4753.0 | 100 | ||
| 20 | 2026-01-19 09:53:14.053920031 | 7011 | 買埋 | 4762.0 | 100 | -900.0 | |
| 21 | 2026-01-19 09:55:44.918386221 | 7011 | 売建 | 4754.0 | 100 | ||
| 22 | 2026-01-19 09:59:12.837409258 | 7011 | 買埋 | 4761.0 | 100 | -700.0 | |
| 23 | 2026-01-19 09:59:13.827526093 | 7011 | 買建 | 4761.0 | 100 | ||
| 24 | 2026-01-19 10:02:34.760155439 | 7011 | 売埋 | 4783.0 | 100 | 2200.0 | |
| 25 | 2026-01-19 10:16:41.745836020 | 7011 | 買建 | 4786.0 | 100 | ||
| 26 | 2026-01-19 10:19:53.514409303 | 7011 | 売埋 | 4784.0 | 100 | -200.0 | |
| 27 | 2026-01-19 10:19:54.517772912 | 7011 | 売建 | 4784.0 | 100 | ||
| 28 | 2026-01-19 10:29:28.907285452 | 7011 | 買埋 | 4774.0 | 100 | 1000.0 | |
| 29 | 2026-01-19 10:29:29.910410166 | 7011 | 買建 | 4774.0 | 100 | ||
| 30 | 2026-01-19 10:31:42.703819513 | 7011 | 売埋 | 4770.0 | 100 | -400.0 | |
| 31 | 2026-01-19 10:31:43.709114313 | 7011 | 売建 | 4770.0 | 100 | ||
| 32 | 2026-01-19 10:33:51.234358549 | 7011 | 買埋 | 4774.0 | 100 | -400.0 | |
| 33 | 2026-01-19 10:33:52.249752522 | 7011 | 買建 | 4774.0 | 100 | ||
| 34 | 2026-01-19 10:37:25.056361914 | 7011 | 売埋 | 4769.0 | 100 | -500.0 | |
| 35 | 2026-01-19 10:37:26.059480906 | 7011 | 売建 | 4769.0 | 100 | ||
| 36 | 2026-01-19 10:47:17.545570135 | 7011 | 買埋 | 4772.0 | 100 | -300.0 | |
| 37 | 2026-01-19 10:47:18.548232079 | 7011 | 買建 | 4772.0 | 100 | ||
| 38 | 2026-01-19 10:54:06.438935280 | 7011 | 売埋 | 4771.0 | 100 | -100.0 | |
| 39 | 2026-01-19 10:54:07.456300735 | 7011 | 売建 | 4772.0 | 100 | ||
| 40 | 2026-01-19 11:01:10.434369564 | 7011 | 買埋 | 4772.0 | 100 | 0.0 | |
| 41 | 2026-01-19 11:01:11.437040806 | 7011 | 買建 | 4772.0 | 100 | ||
| 42 | 2026-01-19 11:17:51.804503202 | 7011 | 売埋 | 4786.0 | 100 | 1400.0 | |
| 43 | 2026-01-19 11:18:07.896215916 | 7011 | 買建 | 4786.0 | 100 | ||
| 44 | 2026-01-19 11:29:50.087161779 | 7011 | 売埋 | 4793.0 | 100 | 700.0 | |
| 45 | 2026-01-19 12:30:12.099140406 | 7011 | 買建 | 4809.0 | 100 | ||
| 46 | 2026-01-19 12:33:08.596887350 | 7011 | 売埋 | 4830.0 | 100 | 2100.0 | |
| 47 | 2026-01-19 12:50:13.505411625 | 7011 | 売建 | 4836.0 | 100 | ||
| 48 | 2026-01-19 12:55:09.077579737 | 7011 | 買埋 | 4850.0 | 100 | -1400.0 | |
| 49 | 2026-01-19 12:55:10.077736616 | 7011 | 買建 | 4850.0 | 100 | ||
| 50 | 2026-01-19 12:57:44.828808546 | 7011 | 売埋 | 4846.0 | 100 | -400.0 | |
| 51 | 2026-01-19 13:05:57.962499857 | 7011 | 売建 | 4852.0 | 100 | ||
| 52 | 2026-01-19 13:11:52.605727911 | 7011 | 買埋 | 4848.0 | 100 | 400.0 | |
| 53 | 2026-01-19 13:18:00.388759136 | 7011 | 売建 | 4843.0 | 100 | ||
| 54 | 2026-01-19 13:23:29.803816080 | 7011 | 買埋 | 4851.0 | 100 | -800.0 | |
| 55 | 2026-01-19 13:23:30.806491852 | 7011 | 買建 | 4851.0 | 100 | ||
| 56 | 2026-01-19 13:31:29.267422914 | 7011 | 売埋 | 4853.0 | 100 | 200.0 | |
| 57 | 2026-01-19 13:44:17.683706045 | 7011 | 買建 | 4846.0 | 100 | ||
| 58 | 2026-01-19 13:53:59.061597109 | 7011 | 売埋 | 4850.0 | 100 | 400.0 | |
| 59 | 2026-01-19 13:58:56.415534019 | 7011 | 売建 | 4847.0 | 100 | ||
| 60 | 2026-01-19 14:00:00.688704014 | 7011 | 買埋 | 4850.0 | 100 | -300.0 | |
| 61 | 2026-01-19 14:22:41.213833809 | 7011 | 売建 | 4864.0 | 100 | ||
| 62 | 2026-01-19 14:25:40.092090130 | 7011 | 買埋 | 4872.0 | 100 | -800.0 | |
| 63 | 2026-01-19 14:25:41.077488184 | 7011 | 買建 | 4872.0 | 100 | ||
| 64 | 2026-01-19 14:27:15.371663094 | 7011 | 売埋 | 4860.0 | 100 | -1200.0 | |
| 65 | 2026-01-19 14:27:16.387721062 | 7011 | 売建 | 4860.0 | 100 | ||
| 66 | 2026-01-19 14:28:56.974529266 | 7011 | 買埋 | 4869.0 | 100 | -900.0 | |
| 67 | 2026-01-19 14:28:57.993865252 | 7011 | 買建 | 4868.0 | 100 | ||
| 68 | 2026-01-19 14:30:07.172892094 | 7011 | 売埋 | 4866.0 | 100 | -200.0 | |
| 69 | 2026-01-19 14:32:42.765145540 | 7011 | 買建 | 4868.0 | 100 | ||
| 70 | 2026-01-19 14:35:45.686514854 | 7011 | 売埋 | 4865.0 | 100 | -300.0 | |
| 71 | 2026-01-19 14:37:36.126263618 | 7011 | 買建 | 4868.0 | 100 | ||
| 72 | 2026-01-19 14:49:32.547657728 | 7011 | 売埋 | 4881.0 | 100 | 1300.0 | |
| 73 | 2026-01-19 15:01:44.128800154 | 7011 | 買建 | 4879.0 | 100 | ||
| 74 | 2026-01-19 15:03:39.718181849 | 7011 | 売埋 | 4875.0 | 100 | -400.0 | |
| 75 | 2026-01-19 15:03:40.719295740 | 7011 | 売建 | 4875.0 | 100 | ||
| 76 | 2026-01-19 15:04:23.926921844 | 7011 | 買埋 | 4880.0 | 100 | -500.0 | |
| 77 | 2026-01-19 15:04:24.929325819 | 7011 | 買建 | 4880.0 | 100 | ||
| 78 | 2026-01-19 15:06:29.388696909 | 7011 | 売埋 | 4876.0 | 100 | -400.0 | |
| 79 | 2026-01-19 15:06:30.374192715 | 7011 | 売建 | 4876.0 | 100 | ||
| 80 | 2026-01-19 15:08:28.807165384 | 7011 | 買埋 | 4879.0 | 100 | -300.0 | |
| 81 | 2026-01-19 15:10:47.343324184 | 7011 | 売建 | 4875.0 | 100 | ||
| 82 | 2026-01-19 15:21:12.332217693 | 7011 | 買埋 | 4877.0 | 100 | -200.0 | |
| 83 | 2026-01-19 15:21:13.333197832 | 7011 | 買建 | 4877.0 | 100 | ||
| 84 | 2026-01-19 15:24:50.690809965 | 7011 | 売埋 | 4876.0 | 100 | -100.0 | |
| 合計損益 | -2800.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 件のコメント:
コメントを投稿