2026-03-26

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

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

今日の日経平均株価

現在値 53,603.65 -145.97 -0.27% 15:45
前日終値 53,749.62 03/25 高値 54,175.80 09:24
始値 53,855.13 09:00 安値 53,176.77 14:32

※ 右の 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 線近辺まで株価 (MA1) が近づいてから急反転するケースが結構多いように感じてます。特に「クロスしそうでクロスしない」というケースが勿体ないなと思っています。

生成 AI に尋ねたところ、

VWAP はその日の「公正価格」扱いになるので、出来高が集中しやすく、指値・アルゴ注文が溜まりやすい。そのため「タッチ → 跳ね返る」、「ブレイク → 加速」という両方の動きが起きやすい。

とのことでした。以下の記事で ChatGPT の回答を紹介しています。

そうであれば「クロスしそうでクロスしない」というケースに対して、完璧でなくとも何らかの対策をしたくなります。

そこで、VWAP 線に沿って狭い幅の上下バンド線を追加して、エントリの補助線として利用することを試してみました。

  • 上のバンド線はゴールデン・クロス専用、下のバンド線はデッド・クロス専用です。
  • もちろん VWAP 線の機能は従来どおりです。
    • つまり、建玉がなければゴールデン・クロス、デッド・クロスでそれぞれ買建、売建。建玉があればクロス・シグナルで返済。
    • また、一回のクロス・シグナルで、建玉の返済と売買を続けては執行しません。

VWAP のバンド線の概念図を(苦心の末)Google Gemini に作成してもらいました。MA1 が VWAP 近くまできてクロスせずに反転してしまうケースへの対策です。実績がないのでこれだけでは浅はかで想定が甘いかもしれません。

VWAP バンド線の概念図

昨日の(クロス・シグナル無しという)悔しい結果を目にして、急遽、準備していた VWAP のバンド線を実装、妥当なバンド幅の見当を付けるため一晩かけて DOE によるバックテストを実施しました[189 条件 × 35 日 + 当日分]。

実験計画 (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 最大含み益に設定値を乗じた値より含み益が小さくなれば利確

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

3/26 のベストの条件とパフォーマンス
  BAND_VWAP DD_PROFIT DD_RATIO CumSum Median IQR Max Min
159 7 40 0.7 100,900.0 1,200.0 1,200.0 23,600.0 -5,600.0
ベスト条件のレビュー結果: ソフトバンクグループ (9984)

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

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

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

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

累積収益がトップの条件が、日毎でも常にトップになっているわけではなく、マイナスの日は概ねワーストのように見えます。また、依然としてほとんどの条件において収益が 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 件のコメント:

コメントを投稿