コンテンツにスキップ

検証の方法

「効く気がする」を排除するための手続きです。検証は次の順序で行い、途中で条件を都合よく変えません。

進め方(7ステップ)

  1. 仮説化 テクニカルや戦略の記述を、売買方向、時間足、条件、発注タイミング、損切り、利確、無効化条件まで含む仮説にする。

  2. データ固定 USD/JPY の対象期間、時間足、タイムゾーン、スプレッド、欠損処理、夏時間の扱いを固定する。検証後に都合よく期間を選び直さない。

  3. ベースライン作成 ランダムエントリー、単純な buy-and-hold、時間帯別リターンなどと比較する。戦略単体の損益ではなく、代替ルールより有意に良いかを見る。

  4. インサンプル検証 まず固定パラメータで検証する。細かいグリッドサーチは最後に回す。

  5. アウトオブサンプル検証 期間分割、ウォークフォワード、年別成績、相場レジーム別成績を確認する。特定年だけの勝ちを edge と呼ばない。

  6. コスト控除 スプレッド、スリッページ、約定不能、指標時のスプレッド拡大を入れる。コスト控除前だけ勝つルールは棄却する。

  7. 判定 採用、保留、棄却、要再定義に分ける。棄却した仮説も削除せず、なぜ潰れたかを残す。

評価の単位:R と期待R

評価は R を基本にします。

  • R=R = 初期損切り幅
  • 期待R=平均利益R平均損失R\text{期待R} = \text{平均利益R} - \text{平均損失R}

勝率は方向精度の一部を示すだけです。勝率が高くても平均損失が大きければ、期待Rは残りません。

必ず記録する指標

勝率だけでは採用しません。最低限、次を記録します。

指標見る理由
取引回数サンプル不足の偶然勝ちを避ける
勝率セットアップの方向精度
平均利益R / 平均損失R損益比率
期待R1取引あたりの平均 edge
Profit Factor利益総額と損失総額の比率
最大ドローダウン継続可能性
最大連敗ロット管理と心理的耐性
年別成績特定年への依存
時間帯別成績東京、ロンドン、NY の性格差
コスト感応度スプレッド、スリッページで edge が消えるか
パラメータ感応度1点最適化ではなく近傍でも残るか

共通データ仕様

  • 通貨ペア: USD/JPY(クロス確認では他メジャー、JPYクロスも使用)
  • : M1、M5、M15、H1、H4、D1
  • タイムゾーン: JST
  • 価格: Bid/Ask があれば実スプレッド、なければ保守的な推定スプレッド
  • 約定: シグナル足の終値確定後、次足始値(先読み防止)
  • コスト: 通常スプレッド、指標時スプレッド、想定スリッページを別管理
  • 除外: データ欠損、異常レート、祝日薄商いは別タグ化

多重比較の補正

多数の期間、種類、条件を試すと、偶然だけで「勝つ」組み合わせが必ず現れます。これを edge と誤認しないため、複数仮説を同時に検定するときは FDR(False Discovery Rate)補正を行い、補正後に生き残るものだけを候補とします。

反証条件(棄却の基準)

次のどれかに該当すれば、仮説は一旦否認します。

  • コスト差し引き後の期待Rが 0 以下。
  • 勝率は高いが平均損失が大きく、期待Rが残らない。
  • 特定の短期間だけ利益が出て、ローリング成績が不安定。
  • パラメータを細かく最適化しないと成立しない。
  • スプレッド、スリッページを入れると優位性が消える。
  • サンプルが少なく、実務上の結論を出せない。

参考

  • Bailey, D. H. & López de Prado, M., “The Probability of Backtest Overfitting”, 2014
  • Fama, E., “Efficient Capital Markets: A Review of Theory and Empirical Work”, 1970
  • Lo, A. W., “The Adaptive Markets Hypothesis”, 2004