バックテスト基礎

OOSテストの考え方——過剰最適化を見抜く基本技術

バックテストのPFが1.8。微調整で2.0にした。「いいEAができた」——ちょっと待ってほしい。

そのPF2.0は過去データに合わせた結果で、未来で同じ数字が出る保証はない。OOS(Out of Sample)テストは、この偽のPFを見抜くための基本技術。

結論

OOSテストの手順:

  1. 期間を「最適化期間(IS)」と「検証期間(OOS)」に分ける
  2. IS期間でパラメータを最適化する
  3. OOS期間で、その結果を確認する
  4. OOSのPFがISのPFの70%以上を維持しているか確認する

分割例(5年データ):

OOSが大きく劣化しているなら、ISでの最適化は過剰フィットしている。

なぜEA運用で重要か

最適化は「過去への説明力を上げる作業」。EA運用で必要なのは「未来への予測力」。

OOSテストは、最適化の結果が説明力なのか予測力なのかを判別する、最も基本的な方法。

仕組み・条件

ウォークフォワードテスト

OOSをさらに進めた手法。データを複数のIS/OOS区間に分け、連続的にテストする。

|----IS1----|--OOS1--|
       |----IS2----|--OOS2--|
              |----IS3----|--OOS3--|

各OOS区間を連結すると、全期間のOOS結果が得られる。単一分割より信頼性が高い。

MT5での手順

MT5に自動実行機能はないため手動で行う。

  1. 期間をISに設定して最適化する
  2. 最適パラメータをメモする
  3. 期間をOOSに変更し、そのパラメータでテストする
  4. OOSのPFを記録する
  5. 区間をずらして繰り返す

判定基準

OOS PF / IS PF判定
70%以上合格。ロバスト性がある
50〜70%要注意。パラメータ感度を追加チェック
50%未満不合格。過剰最適化の可能性が高い
OOS PFが1.0未満不合格。ISでしか機能していない

バックテストやリアル運用で壊れるポイント

どう確認するか

  1. データを IS 70% / OOS 30% に分割する
  2. ISで最適化し、OOSで検証する
  3. OOS PF / IS PF が70%以上か確認する
  4. 可能ならウォークフォワード(3区間以上)を行う
  5. 分割位置を変えても結果が安定するか確認する

自分の検証スタンス

最適化したEAは必ずOOSを通す。OOSで崩れるEAは、最適化のPFがどれだけ高くても使わない。

ウォークフォワードまでできれば理想だが、手間がかかるため、最低でもIS/OOS一回分割は行う。

参照した公式情報

免責

本記事は個人の検証メモであり、投資助言ではありません。統計的検証は過去データに基づく手法であり、将来の成績を保証するものではありません。