ForexBestRobots.com

テクニカルガイド · 堅牢性テスト

過剰最適化を避けてForex EAを最適化する方法

In-sample、Out-of-sample、Forwardテストを使い、過去だけに適合した不安定な設定を避けてForex EAを最適化します。

14 分で読めますForexBestRobots編集チームによるレビュー済み
Forex EA最適化で不安定なピークと安定したパラメータ領域を比較する図テクニカルガイド実践的でリスクを重視したガイド

ForexBestRobots.comのために制作したオリジナル図解です。

最適化の目的は、相場環境が変わっても妥当性を保てる設定を探すことです。最も美しい過去の損益曲線を作ることではありません。未使用データと現実的なコストで確認された、広く安定したパラメータ領域を重視します。

Forex EA最適化で不安定なピークと安定したパラメータ領域を比較する図
孤立した最高値より、周辺でも崩れない広い安定領域を優先します。

最適化前に合格基準を決める

純利益だけでなく、EAに求める動作を評価できる基準を選びます。最大ドローダウン、取引数、平均損益、Profit Factor、回復過程、Exposureをまとめて確認します。利益が大きくても、ドローダウンが許容外、または取引数が少なすぎる結果は堅牢とは言えません。

一つの指標が別の弱点を隠すことがあります

利益だけを最大化すると、過大なリスク、偶然に有利な期間、小さすぎるサンプルを選びやすくなります。

開発用と検証用のデータを分ける

履歴を時系列で分割します。前半で探索し、後半をOut-of-sample検証用として触らずに残します。その後、決定した設定を現在のデモデータでForward観察します。検証結果を何度も見ながら再調整すると、その期間も事実上の学習データになります。

01 · In-sample探索

妥当な範囲を試し、挙動を理解する。

02 · Out-of-sample検証

選定に使っていない期間でルールを確認。

03 · Forward観察

現在のシグナル、コスト、約定を確認。

MT4で行う実践的な最適化手順

1

役割が説明できるパラメータを選ぶ

エントリー、決済、リスクに論理的な影響を持つ変数だけを最適化します。すべてのInputsを同時に試すと、組み合わせと偶然の発見が急増します。

2

広く意味のある範囲を使う

最初は粗めのStepと現実的な上下限を使います。一つの値だけが機能するなら不安定です。近隣値でも似た挙動が得られるか確認します。

3

リスクとサンプル品質で絞る

過大なドローダウン、少なすぎる取引数、非現実的なロット、短期間に集中した利益を除外します。利益順位ではなく、残った安定領域を比較します。

4

設定を固定して検証する

未使用期間を開く前に設定を決定します。EAビルド、銘柄、時間足、スプレッド、初期証拠金、期間、すべてのInputsを記録します。

選択領域をストレステストする

テスト確認すること健全な挙動
近隣Inputs小さな変更で崩れないか。結果が急落せず段階的に変化する。
高いスプレッドコストで優位性が消えないか。現実的な余裕を加えても論理が残る。
期間の移動一つの相場環境だけに依存しないか。複数期間が結果に寄与する。
約定遅延完全なFillが前提になっていないか。中程度のスリッページで結論が逆転しない。
低リスク過大なExposureだけで良く見えないか。保守的なロットでも取引論理が維持される。

最適化結果を棄却すべきサイン

  • 最高値が弱い結果に囲まれた孤立したピークになっている。
  • 一つの取引または短期間が利益の大半を占めている。
  • Out-of-sampleでドローダウンが急増する。
  • わずかなスプレッドやスリッページ増加で優位性が消える。
  • 選択したロットが予定する口座リスクに合わない。

最適化は将来の利益を証明しません。弱い仮説を除外し、追加検証に値する設定を見つけるための工程です。

公式リファレンス

MetaTrader公式のExpert Advisor最適化ヘルプでは、異なるInputsでStrategy Testerを繰り返し実行する仕組みを説明しています。