2026-03-27

今日のバックテスト (2026-03-27)

楽天証券の口座でデイトレの自動売買に挑戦しようと、Windows / Excel 上で動作する マーケットスピード II RSS を利用した Python アプリ (Kabuto) を開発しています。エントリを手動、エグジッドを自動+手動のセミオートでのトレードを始めてみたものの、ルールを守れない自分の性格に呆れ果ててしまいました。そこで、そこそこ自動売買ができるようにして、シミュレータでバックテストを重ねて改良を進めています。

今日の日経平均株価

現在値 53,373.07 -230.58 -0.43% 15:45
前日終値 53,603.65 03/26 高値 53,714.90 14:17
始値 53,239.59 09:00 安値 52,516.92 09:50

※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。

【関連ニュース】

デイトレ用自作アプリ

以下は株価・取引に関連する情報の流れを示しています。

株価データ・取引の流れ(Windows 11)

楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード II RSS を介して Python アプリから取引をする構成を取っています。

取引アプリの概要を以下にまとめました。

今日のテスト ─ Start Backtesting

ターゲット銘柄と評価条件 (doe-003)
対象銘柄 ソフトバンクグループ (9984)
ティック 2 秒間隔
注文数量 100 株
制  約 ナンピン禁止
モ デ ル MA1 - VWAP のクロス・シグナルによる単純売買
パラメータ
PERIOD_WARMUP 150
BAND_VWAP DOE
PERIOD_MA_1 30
PERIOD_RSI 150
PERIOD_MOM 300
DD_PROFIT DOE
DD_RATIO DOE
LOSSCUT_1 -10
N_MINUS_MAX 300
備  考 午後 1 時以降のエントリを無効化。

短周期の移動平均線 MA1 と 出来高加重平均取引 VWAP のクロス・シグナルを売買するタイミングにするという基本方針でアプリ Kabuto を開発しています。

パラメータを調節するため、水準を振った DOE(実験計画)に従って、過去のティックデータでバックテストを実施しています。

doe-003
BAND_VWAP と DD_PROFIT, DD_RATIO の依存性調査

VWAP バンドを実装したので、ひきつづき本日分のバックテストを追加してまとめています。

VWAP バンドについて、あれこれ考えてみると、想定が足りなかったと思うところがありますが、すぐに変更をせずに、まずはバックテストの結果を詳しく分析してから次の改善に繋げていこうと思います。

実験計画 (doe-003)
パラメータ 水  準 備  考
BAND_VWAP 3 5 7 単位は 円/株
DD_PROFIT 10 20 30 40 50 60 70 単位は 円/株、含み益が設定値より大きくなったらトレーリング開始
DD_RATIO 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 最大含み益に設定値を乗じた値より含み益が小さくなれば利確

本日分のテストで累積収益が最も良かった条件のレビューチャートを掲載します。

累積収益における本日のベスト条件
  BAND_VWAP DD_PROFIT DD_RATIO CumSum Median IQR Max Min
159 7 40 0.7 105,100.0 1,500.0 1,500.0 23,600.0 -5,600.0
ベスト条件のレビュー結果: ソフトバンクグループ (9984)

最後のゴールデン・クロスで買建が続かなかった理由がすぐには判らなかったので、追ってシミュレータで調べます。VWAP バンドが想定通り機能していないのかもしれません。

【追記 2026-03-27】ミス(バグ)が見つかったので、修正してバックテストをやり直しています。

累積収益トレンド

2 月以降の累積収益のトレンドをプロットしました。色が付いている線は、累積収益トップ 5 の条件です。VWAP バンドの導入で累積収益は増えています。

2/2 以降の累積収益トレンド: ソフトバンクグループ (9984)

日毎の収益トレンド

2 月以降の 1 日毎の収益のトレンドをプロットしました。色が付いている線は、累積収益トップ 5 の条件です。

2/2 以降の日毎収益トレンド: ソフトバンクグループ (9984)

データ分布

過去データ、全条件における日毎の収益の分布を確認しました。分布形状から、正規分布はしていないとみなして分析を進めます。

過去データ、全条件における日毎の収益の分布: ソフトバンクグループ (9984)

パラメータ依存性

日々の収益を実験条件毎に整理して、各実験パラメータ毎に依存性をざっくりを調べてみました。パラメータ水準を振って実験するのですから、本来は最初に確認すべき基本的なチャートでしたが、集計が面倒そうだと思い込み、遅くなってしまいました。

BAND_VWAP

BAND_VWAP 依存性: ソフトバンクグループ (9984)

DD_PROFIT

DD_PROFIT 依存性: ソフトバンクグループ (9984)

DD_RATIO

DD_RATIO 依存性: ソフトバンクグループ (9984)

ボックスプロットが示すメジアン値は、BAND_VWAP のみ、幾分差異が認められるものの、どれもざっくり 0 付近です。パラメータの依存は外れ値の多さや外れ具合を評価した方が良いのかもしれません。そうであれば、DD_RATIO の 0.1 - 0.3 は実験水準から落とせそうです。

メジアンが 0 付近ということは、収益がマイナスになるケースが半数近くあることになります。これらをじっくり調べる必要があります。

対象銘柄の日足チャート

ティックデータを収集している銘柄については、日足チャートと高値安値の差分のトレンドをモニターしています。そのうち、本日のバックテスト対象銘柄の日足チャートをまとめています。

ソフトバンクグループ (9984)

※ 上の日足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。

参考サイト

  1. マーケットスピード II RSS | 楽天証券のトレーディングツール
  2. マーケットスピード II RSS 関数マニュアル
  3. 注文 | マーケットスピード II RSS オンラインヘルプ | 楽天証券のトレーディングツール
  4. PythonでGUIを設計 | Qtの公式Pythonバインディング
  5. Python in Excel alternative: Open. Self-hosted. No limits.
  6. Book - xlwings Documentation
にほんブログ村 株ブログ 株日記へ
PVアクセスランキング にほんブログ村

0 件のコメント:

コメントを投稿