楽天証券の口座でデイトレの自動売買に挑戦しようと、Windows / Excel 上で動作する マーケットスピード II RSS を利用した Python アプリ (Kabuto) を開発しています。エントリを手動、エグジッドを自動+手動のセミオートでのトレードを始めてみたものの、ルールを守れない自分の性格に呆れ果ててしまいました。そこで、そこそこ自動売買ができるようにして、シミュレータでバックテストを重ねて改良を進めています。
今日の日経平均株価
| 現在値 | 52,252.28 | +736.79 | +1.43% | 15:45 | |
|---|---|---|---|---|---|
| 前日終値 | 51,515.49 | 03/23 | 高値 | 52,701.99 | 09:08 |
| 始値 | 52,380.60 | 09:00 | 安値 | 51,645.15 | 11:12 |
※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。
【関連ニュース】
- トランプ氏が攻撃延期、戦争終結へ協議中と主張-イランは否定 - Bloomberg [2026-03-23]
- 【欧州市況】株上昇、トランプ氏発言で値動き大きく-国債は上昇 - Bloomberg [2026-03-24]
- 【米国市況】原油は急落、株反発-イラン攻撃延期で緊張緩和に期待 - Bloomberg [2026-03-24]
- AI関連のデフォルト不安に着目、JPモルガンが新CDSバスケットを提供 - Bloomberg [2026-03-24]
- 全国コアCPI、2月は+1.6%に減速 22年3月以来の2%割れ | ロイター [2026-03-24]
- KKR系プライベートクレジットがジャンク級に-資産の質悪化で格下げ - Bloomberg [2026-03-24]
- ホルムズ海峡通らない原油タンカー、日本に28日に到着予定-代替ルート - Bloomberg [2026-03-24]
- プライベートクレジットの「宝石」、デルのファミリーオフィスが追求 - Bloomberg [2026-03-24]
- 日銀総裁、食品消費税2年間ゼロの「予想物価上昇率への影響小さい」 - Bloomberg [2026-03-24]
- 食料品の消費税ゼロ、中長期的な予想物価への影響小さい=日銀総裁 | ロイター [2026-03-24]
- ブロードコム、供給制約を指摘 「TSMCの生産能力がボトルネック」 | ロイター [2026-03-24]
- アリババ、次世代半導体発表 AIエージェント対応強化 | ロイター [2026-03-24]
- 2月百貨店売上1.6%増で2カ月連続プラス、インバウンド2桁減が継続=百貨店協会 | ロイター [2026-03-24]
- 日経平均は反発、過度な中東懸念が緩和 残る不透明感 | ロイター [2026-03-24]
- 【日本市況】株式反発、米が攻撃延期-債券高、原油上昇し円弱含み - Bloomberg [2026-03-24]
デイトレ用自作アプリ
以下は株価・取引に関連する情報の流れを示しています。
楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード II RSS を介して Python アプリから取引をする構成を取っています。
取引アプリの概要を以下にまとめました。
- 私の株日記: 自動売買への道 (2026-03-22)
- 先週までのアプリ開発状況をまとめています。
- 私の株日記: マーケットスピードⅡ RSS
- 注文機能に関わる VBA 関数と、Python とのやりとりについてまとめています。
今日のテスト ─ Start Backtesting
| 対象銘柄 | ソフトバンクグループ (9984) | |
|---|---|---|
| ティック | 2 秒間隔 | |
| 注文数量 | 100 株 | |
| 制 約 | ナンピン禁止 | |
| モ デ ル | MA1 - VWAP のクロス・シグナルによる単純売買 | |
| パラメータ | ||
| PERIOD_WARMUP | 150 | |
| BAND_VWAP | 3 | |
| PERIOD_MA_1 | 30 | |
| PERIOD_RSI | 150 | |
| PERIOD_MOM | 300 | |
| DD_PROFIT | DOE | |
| DD_RATIO | DOE | |
| LOSSCUT_1 | -10 | |
| N_MINUS_MAX | 300 | |
短周期の移動平均線 MA1 と 出来高加重平均取引 VWAP のクロス・シグナルを売買するタイミングにするという基本方針でアプリ Kabuto を開発しています。
パラメータを調節するため、過去のティックデータでバックテストを実施しています。
- doe-001
- DD_PROFIT と DD_RATIO の依存性調査
実験で MA1 の周期を変えることはできますが、それより、まず利確に関わるトレーリング・ストップのパラメータについて調べたかったので、DD_PROFIT と DD_RATIO の条件振りから実験を始めました。過去のティックデータは、ティックデータの 2 秒サンプリングに確実に移行している 2 月以降を対象としました。
シミュレーションをして累積収益の結果を見ると、何だこの程度の収益なのか、とがっかりする収益でした。
詳細な解析ができていませんが、ざっくりと確認した限り、収益が上がらない主な原因は下記の 2 点だと推定されます。
- 一度もクロスせずにエントリできなかった。
- 寄り付き後に VWAP 線から株価が一方的に離れて行くのではなく、何度も VWAP 線近くまで株価が戻ってくるので、工夫できる余地はありそう。
- ただ、今日 (3/24) のようなケースでは VWAP 線近くには戻ってきませんでした。最初のウォームアップ後、乗り遅れてでもエントリできるような判定基準も欲しい。
- もし、今日、手動でエントリしていたら…、イラン攻撃延期のニュースから、今日は高く寄った後もまだ上がるだろうという予断を持っていたので、追いかけて売建することは躊躇したと思います。だからこそ判定基準に基づいて(感情に左右されずに)エントリできるようにしたいです。
- 特に後場で VWAP の周りで揉み合いになる場面で無駄な損失を重ねる。
- とりあえず現在の単純な仕組みでは、後場(あるいは 1 時過ぎ以降)ではエントリをしない方が良いのかもしれない。
2 月以降の累積収益のトレンドをプロットしました。色が付いている線は、累積収益トップ 5 の条件です。
2 月以降の 1 日毎の収益のトレンドをプロットしました。色が付いている線は、累積収益トップ 5 の条件です。
今回のトレーリング・ストップのパラメータを振っているだけなので、クロス・シグナルのタイミングが変わるわけではありません。そのため、程度の差はあれ、日毎の収益傾向は似通っています。
少し長いですが DOE 条件の結果すべてを示しました。
| DD_PROFIT | DD_RATIO | cumsum | median | max | min | |
|---|---|---|---|---|---|---|
| 0 | 10 | 0.1 | 11,000.0 | 150.0 | 4,400.0 | -5,200.0 |
| 1 | 10 | 0.2 | 12,800.0 | 450.0 | 6,400.0 | -6,100.0 |
| 2 | 10 | 0.3 | 25,000.0 | 500.0 | 6,500.0 | -7,200.0 |
| 3 | 10 | 0.4 | 26,200.0 | 300.0 | 8,800.0 | -7,900.0 |
| 4 | 10 | 0.5 | 25,700.0 | 400.0 | 9,800.0 | -8,500.0 |
| 5 | 10 | 0.6 | 30,800.0 | 450.0 | 15,000.0 | -9,300.0 |
| 6 | 10 | 0.7 | 28,700.0 | 0.0 | 15,900.0 | -10,300.0 |
| 7 | 10 | 0.8 | 21,500.0 | 0.0 | 15,900.0 | -11,300.0 |
| 8 | 10 | 0.9 | 2,700.0 | 0.0 | 15,900.0 | -12,500.0 |
| 9 | 20 | 0.1 | 8,200.0 | 0.0 | 7,200.0 | -8,700.0 |
| 10 | 20 | 0.2 | 14,300.0 | 0.0 | 6,400.0 | -9,500.0 |
| 11 | 20 | 0.3 | 26,900.0 | 200.0 | 7,600.0 | -10,400.0 |
| 12 | 20 | 0.4 | 27,500.0 | 1,000.0 | 8,800.0 | -11,200.0 |
| 13 | 20 | 0.5 | 17,300.0 | 900.0 | 9,300.0 | -12,000.0 |
| 14 | 20 | 0.6 | 11,600.0 | 250.0 | 15,000.0 | -12,100.0 |
| 15 | 20 | 0.7 | 41,300.0 | 0.0 | 17,600.0 | -13,300.0 |
| 16 | 20 | 0.8 | 45,800.0 | 100.0 | 16,900.0 | -13,700.0 |
| 17 | 20 | 0.9 | 25,700.0 | 0.0 | 16,800.0 | -14,500.0 |
| 18 | 30 | 0.1 | 20,300.0 | 1,000.0 | 8,600.0 | -12,100.0 |
| 19 | 30 | 0.2 | 31,400.0 | 1,450.0 | 10,000.0 | -12,200.0 |
| 20 | 30 | 0.3 | 29,900.0 | 1,400.0 | 8,600.0 | -12,800.0 |
| 21 | 30 | 0.4 | 21,500.0 | 1,000.0 | 8,700.0 | -13,100.0 |
| 22 | 30 | 0.5 | 7,800.0 | 600.0 | 9,300.0 | -13,600.0 |
| 23 | 30 | 0.6 | -1,000.0 | 150.0 | 15,000.0 | -14,500.0 |
| 24 | 30 | 0.7 | 34,900.0 | 400.0 | 17,600.0 | -14,500.0 |
| 25 | 30 | 0.8 | 41,100.0 | 700.0 | 16,900.0 | -14,900.0 |
| 26 | 30 | 0.9 | 23,400.0 | 0.0 | 16,800.0 | -15,500.0 |
| 27 | 40 | 0.1 | 40,600.0 | 2,150.0 | 11,000.0 | -12,100.0 |
| 28 | 40 | 0.2 | 42,500.0 | 2,500.0 | 10,000.0 | -12,200.0 |
| 29 | 40 | 0.3 | 35,300.0 | 2,350.0 | 8,600.0 | -12,800.0 |
| 30 | 40 | 0.4 | 29,200.0 | 2,250.0 | 10,300.0 | -13,100.0 |
| 31 | 40 | 0.5 | 12,000.0 | 1,650.0 | 9,300.0 | -13,600.0 |
| 32 | 40 | 0.6 | 600.0 | 450.0 | 15,000.0 | -14,500.0 |
| 33 | 40 | 0.7 | 34,300.0 | 1,000.0 | 17,600.0 | -14,500.0 |
| 34 | 40 | 0.8 | 45,900.0 | 950.0 | 16,900.0 | -14,900.0 |
| 35 | 40 | 0.9 | 30,100.0 | 50.0 | 16,800.0 | -15,500.0 |
| 36 | 50 | 0.1 | 26,500.0 | 400.0 | 10,600.0 | -15,000.0 |
| 37 | 50 | 0.2 | 31,600.0 | 0.0 | 12,300.0 | -15,000.0 |
| 38 | 50 | 0.3 | 28,800.0 | 0.0 | 12,700.0 | -15,000.0 |
| 39 | 50 | 0.4 | 25,400.0 | 0.0 | 14,600.0 | -15,000.0 |
| 40 | 50 | 0.5 | 18,200.0 | 0.0 | 18,700.0 | -15,000.0 |
| 41 | 50 | 0.6 | 7,400.0 | 0.0 | 18,700.0 | -15,000.0 |
| 42 | 50 | 0.7 | 35,300.0 | 0.0 | 18,700.0 | -15,000.0 |
| 43 | 50 | 0.8 | 47,000.0 | 0.0 | 18,700.0 | -15,000.0 |
| 44 | 50 | 0.9 | 35,300.0 | 0.0 | 18,700.0 | -15,000.0 |
| 45 | 60 | 0.1 | 16,000.0 | 0.0 | 11,200.0 | -15,000.0 |
| 46 | 60 | 0.2 | 24,700.0 | 0.0 | 12,300.0 | -15,000.0 |
| 47 | 60 | 0.3 | 21,100.0 | 0.0 | 12,700.0 | -15,000.0 |
| 48 | 60 | 0.4 | 18,300.0 | -200.0 | 14,600.0 | -15,000.0 |
| 49 | 60 | 0.5 | 14,700.0 | -400.0 | 18,700.0 | -15,000.0 |
| 50 | 60 | 0.6 | 4,500.0 | -400.0 | 18,700.0 | -15,000.0 |
| 51 | 60 | 0.7 | 33,400.0 | -300.0 | 18,700.0 | -15,000.0 |
| 52 | 60 | 0.8 | 33,700.0 | -400.0 | 18,700.0 | -15,000.0 |
| 53 | 60 | 0.9 | 32,200.0 | -400.0 | 18,700.0 | -15,000.0 |
| 54 | 70 | 0.1 | 19,500.0 | -400.0 | 13,700.0 | -15,000.0 |
| 55 | 70 | 0.2 | 21,700.0 | -400.0 | 14,000.0 | -15,000.0 |
| 56 | 70 | 0.3 | 13,800.0 | -400.0 | 12,700.0 | -15,000.0 |
| 57 | 70 | 0.4 | 11,300.0 | -400.0 | 14,600.0 | -15,000.0 |
| 58 | 70 | 0.5 | 9,500.0 | -400.0 | 18,700.0 | -15,000.0 |
| 59 | 70 | 0.6 | 900.0 | -400.0 | 18,700.0 | -15,000.0 |
| 60 | 70 | 0.7 | 18,900.0 | -300.0 | 18,700.0 | -15,000.0 |
| 61 | 70 | 0.8 | 17,300.0 | -400.0 | 18,700.0 | -15,000.0 |
| 62 | 70 | 0.9 | 17,100.0 | -400.0 | 18,700.0 | -15,000.0 |
対象銘柄の日足チャート
ティックデータを収集している銘柄については、日足チャートと高値安値の差分のトレンドをモニターしています。そのうち、本日のバックテスト対象銘柄の日足チャートをまとめています。
ソフトバンクグループ (9984)
※ 上の日足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。
参考サイト
- マーケットスピード II RSS | 楽天証券のトレーディングツール
- マーケットスピード II RSS 関数マニュアル
- 注文 | マーケットスピード II RSS オンラインヘルプ | 楽天証券のトレーディングツール
- PythonでGUIを設計 | Qtの公式Pythonバインディング
- Python in Excel alternative: Open. Self-hosted. No limits.
- Book - xlwings Documentation






0 件のコメント:
コメントを投稿