最適化の目的は、相場環境が変わっても妥当性を保てる設定を探すことです。最も美しい過去の損益曲線を作ることではありません。未使用データと現実的なコストで確認された、広く安定したパラメータ領域を重視します。
最適化前に合格基準を決める
純利益だけでなく、EAに求める動作を評価できる基準を選びます。最大ドローダウン、取引数、平均損益、Profit Factor、回復過程、Exposureをまとめて確認します。利益が大きくても、ドローダウンが許容外、または取引数が少なすぎる結果は堅牢とは言えません。
利益だけを最大化すると、過大なリスク、偶然に有利な期間、小さすぎるサンプルを選びやすくなります。
開発用と検証用のデータを分ける
履歴を時系列で分割します。前半で探索し、後半をOut-of-sample検証用として触らずに残します。その後、決定した設定を現在のデモデータでForward観察します。検証結果を何度も見ながら再調整すると、その期間も事実上の学習データになります。
妥当な範囲を試し、挙動を理解する。
選定に使っていない期間でルールを確認。
現在のシグナル、コスト、約定を確認。
MT4で行う実践的な最適化手順
役割が説明できるパラメータを選ぶ
エントリー、決済、リスクに論理的な影響を持つ変数だけを最適化します。すべてのInputsを同時に試すと、組み合わせと偶然の発見が急増します。
広く意味のある範囲を使う
最初は粗めのStepと現実的な上下限を使います。一つの値だけが機能するなら不安定です。近隣値でも似た挙動が得られるか確認します。
リスクとサンプル品質で絞る
過大なドローダウン、少なすぎる取引数、非現実的なロット、短期間に集中した利益を除外します。利益順位ではなく、残った安定領域を比較します。
設定を固定して検証する
未使用期間を開く前に設定を決定します。EAビルド、銘柄、時間足、スプレッド、初期証拠金、期間、すべてのInputsを記録します。
選択領域をストレステストする
| テスト | 確認すること | 健全な挙動 |
|---|---|---|
| 近隣Inputs | 小さな変更で崩れないか。 | 結果が急落せず段階的に変化する。 |
| 高いスプレッド | コストで優位性が消えないか。 | 現実的な余裕を加えても論理が残る。 |
| 期間の移動 | 一つの相場環境だけに依存しないか。 | 複数期間が結果に寄与する。 |
| 約定遅延 | 完全なFillが前提になっていないか。 | 中程度のスリッページで結論が逆転しない。 |
| 低リスク | 過大なExposureだけで良く見えないか。 | 保守的なロットでも取引論理が維持される。 |
最適化結果を棄却すべきサイン
- 最高値が弱い結果に囲まれた孤立したピークになっている。
- 一つの取引または短期間が利益の大半を占めている。
- Out-of-sampleでドローダウンが急増する。
- わずかなスプレッドやスリッページ増加で優位性が消える。
- 選択したロットが予定する口座リスクに合わない。
最適化は将来の利益を証明しません。弱い仮説を除外し、追加検証に値する設定を見つけるための工程です。
公式リファレンス
MetaTrader公式のExpert Advisor最適化ヘルプでは、異なるInputsでStrategy Testerを繰り返し実行する仕組みを説明しています。