本文へスキップ
検証・バックテスト

ウォークフォワード分析のやり方|MT5の設定手順と過剰最適化の判定

ウォークフォワード分析の考え方と、MT5のフォワード期間設定を使った実行手順を番号付きで解説。WFE(ウォークフォワード効率)0.5という合格ラインの意味と、判定を誤る典型例も整理します。

執筆: Redington 公開: 最終更新:

PR当ページにはプロモーション(アフィリエイト広告)が含まれます。順位・評価は公開の評価基準に基づき編集部が独立して決定しています。EAの成績はすべて過去の検証結果であり、将来の利益を保証するものではありません。海外FX業者は金融庁未登録です。

この記事の目次
  1. 結論:最適化するなら必須、しないなら不要
  2. なぜ通常の最適化では足りないのか
  3. 用語の整理
  4. MT5でのフォワード期間設定
  5. 実行手順
  6. 判定基準
    1. WFE(ウォークフォワード効率)
    2. その他の確認項目
  7. ローリングの組み方(具体例)
    1. この表から読み取ること
  8. 判定を誤る典型例
  9. EAを買う側がこれをどう使うか
  10. よくある失敗
  11. まとめ

最適化でパラメータを調整すると、バックテストの資産曲線はいくらでもきれいになります。問題は、それが「相場の性質を捉えた結果」なのか「そのデータのノイズに合わせ込んだ結果」なのかを区別できないことです。ウォークフォワード分析は、この区別をつけるための標準的な手続きです。この記事では考え方と手順、そして判定基準を整理します。

結論:最適化するなら必須、しないなら不要

✅ 結論

ウォークフォワード分析は「期間を最適化用と検証用に分け、それをずらしながら繰り返す」手続きです。各検証区間の成績を連結したものが、実運用に最も近い推定値になります。判定の目安はWFE(OOSの成績 ÷ ISの成績)が0.5以上。パラメータを一切いじらないEAなら不要ですが、自分で最適化するなら省略できません。

なぜ通常の最適化では足りないのか

最適化は「過去データで最も成績が良かったパラメータを探す」作業です。しかし、データにはシグナル(相場の性質)とノイズ(偶然の値動き)の両方が含まれます。パラメータ探索は、この2つを区別しません。 ノイズに合わせ込んだほうが過去の成績が良くなるなら、そちらを選びます。

MQL5の公式記事でも「Optimization never leads to good(最適化が良い結果をもたらすことは決してない)」「最適化は非常に慎重に行うべきで、明示的な時間制限を加えなくても、その結果は.setファイルの一部になってしまう」と警告されています(出典: MQL5 Articles 10212 、2026年9月24日確認)。

ウォークフォワード分析は、**「最適化に使っていない期間で成績が保たれるか」**を機械的に確認することで、ノイズへの合わせ込みを検出します。

用語の整理

用語

意味

IS(In-Sample)

最適化に使う期間。この期間の成績は「当然良くなる」ので評価対象ではない

OOS(Out-of-Sample)

最適化に使わない検証期間。ここでの成績だけが判断材料になる

アンカード方式

IS の開始点を固定し、期間を伸ばしていく方式

ローリング方式

IS の長さを一定に保ち、窓全体をスライドさせる方式

WFE

ウォークフォワード効率。OOSの成績 ÷ ISの成績

MT5でのフォワード期間設定

MT5の最適化設定には「フォワード」という項目があり、以下から選べます。

設定

内容

No

フォワードテストなし

1/2

全期間の後半1/2をフォワード期間にする

1/3

後半1/3

1/4

後半1/4

Custom

フォワード開始日を手動指定

出典: MT5 Help - Strategy Optimization (2026年9月24日確認)

標準はIS : OOS = 2 : 1(フォワード1/3)または3 : 1(1/4)です。

ℹ️ 補足

MT5のこの機能は「1回の分割」です。厳密なローリング方式のウォークフォワード分析を行うには、期間をずらしながら手動で繰り返すか、外部ツールを使う必要があります。まずは1回の分割で足切りをし、そこを通過したEAだけローリングに進む、という順序が現実的です。

実行手順

  1. 検証する全期間を決める。 複数のボラティリティ環境を跨ぐ長さが必要です。最低でも2018年以降、2020年3月・2022年・2024年8月を含む期間が望ましいです。期間の決め方は バックテストの期間は何年必要か を参照してください。
  2. 最適化するパラメータを絞る。 ここが最重要です。パラメータ数が多いほど、ノイズへの合わせ込みが容易になります。目安はトレード数 ≧ パラメータ数 × 100。 パラメータ5個なら最低500トレードが必要です。
  3. MT5のテスターで「最適化」を有効にする。 「Slow complete algorithm(低速な完全アルゴリズム)」か「Fast genetic based algorithm(高速な遺伝的アルゴリズム)」を選びます。総当たりは数万パスになりやすく、それ自体が過剰最適化の温床です。
  4. 「フォワード」を 1/3 または 1/4 に設定する。 全期間の後半が自動的にOOSになります。
  5. 最適化基準を選ぶ。 Balance max、Profit Factor max、Recovery Factor max、Complex Criterion max などから選べます。Balance max(最終残高最大)だけを使うと、ドローダウンを無視した尖ったパラメータが選ばれやすくなります。
  6. 最適化を実行する。
  7. 最適化結果の一覧を「フォワード結果」でソートする。 IS(最適化期間)の成績が良い順ではなく、OOSの成績で見ます。
  8. ISとOOSの両方で安定しているパラメータを選ぶ。 ISで1位だがOOSで下位、というパラメータはカーブフィッティングです。
  9. プラトー分析を行う。 選んだパラメータの周辺±20%でも成績が大きく崩れないかを確認します。尖った山の頂点ではなく、なだらかな高原の中央を選びます。
  10. 期間をずらして手順3〜9を繰り返す。 例:2018〜2019で最適化→2020で検証、2019〜2020で最適化→2021で検証、とローリングさせます。
  11. 各OOS区間の成績を連結する。 これが実運用に最も近い推定値です。

全体の操作手順は MT4/MT5バックテストのやり方 にまとめています。

判定基準

WFE(ウォークフォワード効率)

WFE = OOSの成績 ÷ ISの成績

分子・分母には年率リターン、あるいはシャープレシオを使います。MQL5の記事では「1.0に近い値はパラメータセットがフォワードデータへ性能をそのまま移転できたことを意味する。0に近い値は、イン・サンプルの性能が大部分人工物だったことを意味する」と説明され、頑健性の最低ラインとしてWFE ≥ 0.50が挙げられています(出典: MQL5 Articles 23250 、2026年9月24日確認)。

WFE

読み方

1.0以上

OOSのほうが良い。偶然の可能性もあるため、期間を変えて再確認する

0.7〜1.0

良好。パラメータが期間依存になっていない

0.5〜0.7

許容範囲の下限

0.5未満

頑健性が不十分。パラメータ数を減らすか、ロジック自体を見直す

0以下(OOSがマイナス)

カーブフィッティング確定

その他の確認項目

  1. OOSのプロフィットファクターがISの70%以上を保っているか。 OOSでPFが1.0を割るならカーブフィッティングです。
  2. OOSでの最大ドローダウンがISの範囲に収まっているか。 OOSでDDが倍増するなら、想定リスクが過小です。
  3. 各OOS区間がすべてプラスか。 特定の1区間だけで稼いでいるなら再現性はありません。

ローリングの組み方(具体例)

ISを2年、OOSを1年としたローリング方式の例です。検証期間が2018年〜2025年の8年分あるとします。

回

IS(最適化期間)

OOS(検証期間)

1

2018-01 〜 2019-12

2020-01 〜 2020-12

2

2019-01 〜 2020-12

2021-01 〜 2021-12

3

2020-01 〜 2021-12

2022-01 〜 2022-12

4

2021-01 〜 2022-12

2023-01 〜 2023-12

5

2022-01 〜 2023-12

2024-01 〜 2024-12

6

2023-01 〜 2024-12

2025-01 〜 2025-12

各回でISだけを使って最適化し、そのパラメータでOOS期間を1回だけ回します。最後に6つのOOS区間の損益を時系列に連結すると、「毎年パラメータを更新しながら運用したらどうなったか」に近い推定が得られます。

この表から読み取ること

  1. 6区間すべてがプラスか。 1〜2区間だけで稼いでいるなら再現性がありません。
  2. 各回で選ばれたパラメータが大きく変わっていないか。 毎回まったく違う値が最適になるなら、そのパラメータは相場の性質ではなくノイズを追っています。
  3. 連結後の最大ドローダウンはいくらか。 これが実運用で想定すべき値です。IS期間の最大ドローダウンではありません。
  4. OOS区間の合計トレード数は十分か。 6区間合計で100回に満たないなら、結論を出すには足りません。

💡 ポイント

ISの長さは「そのEAが十分なトレード数を確保できる長さ」で決めます。月20トレードのEAなら2年で約480トレード、月2トレードのEAなら2年で48トレードしかありません。後者ではISが短すぎるため、IS期間を4〜5年に伸ばす必要があります。トレード数の目安はバックテストの期間は何年必要かで解説しています。

判定を誤る典型例

🚨 危険

OOSの結果を見てパラメータを変えたら、そのOOSはもうOOSではありません。 これが最も多い自己欺瞞です。「フォワードで悪かったので範囲を調整した」時点で、OOS期間も実質的に最適化に使っています。やり直すなら、まだ一度も見ていない新しい期間を切る必要があります。

もう一つの典型は試行回数の隠蔽です。学術研究でも「報告の核心的欠陥は試行総数を書かないこと」と指摘されています。何百通りも試してたまたまOOSを通った1つを提示すれば、それは検証ではなく選別です。

⚠️ 注意

「5年分のデータしかないなら、独立したモデル構成は45個を超えて試してはならない。さもなければ、真のシャープレシオがゼロでも、イン・サンプルの年率シャープが1になる戦略をほぼ確実に生成してしまう」という指摘があります(Bailey ほか「Pseudo-Mathematics and Financial Charlatanism」に基づく、検索インデックス経由での確認。原文逐語の裏取りはできていないため、数値は目安として扱ってください)。試行回数を記録する習慣をつけることが、最も実務的な対策です。

EAを買う側がこれをどう使うか

自分で最適化しない人にとっても、ウォークフォワードの考え方は判断材料になります。

  • 販売者に「最適化でいくつのパラメータ組み合わせを試しましたか」と聞く。答えられないなら、その成績は統計的に解釈できません。
  • 「バックテスト期間の後半1/3だけの成績」を見せてもらう。全期間の資産曲線より、この区間のほうが情報量があります。
  • バージョンが頻繁に更新されているEAは、再最適化を繰り返している可能性があります。更新のたびにパラメータが変わるなら、それは相場変化への適応ではなく、直近データへの追従かもしれません。

EAの選び方は EAの選び方 、危険なEAの見分け方は 危険なEAのチェックリスト にまとめています。

よくある失敗

  • ISの成績が良いパラメータを選んでしまう。 最適化結果の一覧は、標準ではIS成績順に並びます。見るべきはOOSです。
  • パラメータを10個以上同時に最適化する。 必要トレード数が膨大になり、現実的に満たせません。
  • OOS期間が短すぎる。 3か月のOOSで20トレードでは、統計的な判断ができません。
  • プラトー分析を省略する。 尖ったピークのパラメータは、わずかな相場変化で崩れます。
  • 通貨ペアごとに別々のパラメータを使う。 各ペアに最適化した結果を並べるのは、汎化ではなく個別フィッティングです。

より詳しい判定基準は カーブフィッティングとは に9項目でまとめています。

まとめ

ウォークフォワード分析は、最適化が生み出す幻を検出するための手続きです。期間をISとOOSに分け、OOSでのみ評価し、それをずらしながら繰り返す。WFEが0.5を下回るなら、そのパラメータは採用しないという判断になります。

そしてこの手続きを経ても、バックテストはバックテストです。スリッページも約定拒否も再現されません。次は バックテストとリアルが乖離する7つの原因 と フォワードテストの設計 で、実運用への橋渡しを確認してください。成績指標の判定は EA成績指標チェッカー も使えます。

よくある質問

Q.ウォークフォワード分析とは何ですか?
期間を「最適化用(IS)」と「検証用(OOS)」に分け、それをローリングさせながら繰り返す検証方法です。たとえば2018〜2019で最適化して2020で検証、2019〜2020で最適化して2021で検証、と順にずらします。各OOS区間の成績を連結したものが、実運用に最も近い推定値になります。
Q.MT5でウォークフォワード分析はできますか?
MT5の最適化設定には「フォワード」という項目があり、全期間の後半1/2・1/3・1/4、またはカスタム指定の日付以降を自動でフォワード期間にできます。ただしこれは1回の分割であり、厳密なローリング方式のウォークフォワードは期間をずらしながら手動で繰り返すか、外部ツールを使う必要があります。
Q.WFE(ウォークフォワード効率)はどれくらいあればいいですか?
OOSの成績をISの成績で割った値で、0.5以上が一つの目安とされています。1.0に近ければパラメータの性能がフォワードデータへそのまま移転できたことを意味し、0に近ければイン・サンプルの性能が大部分人工物だったことを意味します(出典: MQL5 Articles 23250、2026年9月24日確認)。
Q.OOSの結果が悪かったのでパラメータを変えました。問題ありますか?
問題があります。OOSの結果を見てパラメータを変えた時点で、そのOOSはもうアウトオブサンプルではありません。実質的にOOS期間まで最適化に使ったことになります。やり直すなら、まだ一度も見ていない新しい期間を切る必要があります。

関連記事