MT5 EA研究・市場調査

EAの過剰最適化とは?カーブフィッティングをOOS・Forward・パラメータ感度で確認する方法

EAの過剰最適化とロバスト性検証を解説する記事のアイキャッチ画像。OOS、Forward、パラメータ感度をResearch Matrix背景で表現しています。
EAファンクラブ

EA(Expert Advisor)のバックテストや最適化では、入力Parameterを変更することで、過去データ上の損益、Profit Factor、Drawdown、取引回数などを比較できます。

しかし、過去データで最も良い結果になった設定が、そのまま未知の期間や実時間でも安定するとは限りません。

ParameterやFilterを過去データへ細かく合わせ込みすぎると、そのHistoryでは非常に良好でも、別期間では結果が大きく崩れることがあります。この問題は、過剰最適化、Overfitting、Curve Fitting、Parameter Fittingなどの言葉で説明されます。

この記事では、MT5 EAの過剰最適化を確認するために、In-Sample、Out-of-Sample、MT5 Forward Test、Parameter Sensitivity、Walk Forward、Robustnessという考え方を順番に整理します。

掲載内容は「勝てるParameter」を提示するものではありません。EAのバックテスト結果や最適化結果を、どのような条件で検証したのかを確認するための技術情報です。

  • Optimizationの最高利益だけでParameterを選ばない
  • In-SampleとOut-of-Sampleを分ける
  • MT5 Forward Testの結果を別期間確認として使う
  • 最良Parameterの周辺も確認する
  • 一点だけ突出した結果と安定領域を分けて見る
  • 1回のForwardだけでRobustnessを断定しない
  • Market Regime変化とOverfittingを混同しない

EAの過剰最適化とは

EAの過剰最適化とは、Parameterや条件を特定の過去データへ合わせ込みすぎた結果、その期間では良好でも、未知の期間や少し異なる条件では性能が大きく変化する状態を指します。

例えば、移動平均期間、RSI Threshold、SL、TP、Trading Hours、Spread Filterなど多数の条件を何度も変更すると、過去の値動きに偶然よく適合する組み合わせを見つけることができます。

しかし、「過去データで良かった」という事実だけでは、その条件が将来にも一般化するかは分かりません。

状態意味
Optimization結果が良い指定したHistoryとParameter条件で良好だった
別期間でも近い特徴特定期間だけへの依存が弱い可能性を確認できる
近傍Parameterでも安定一点の値だけに強く依存していないか確認できる
OOSで大幅悪化OverfittingやMarket Regime差などを確認する材料になる

最適化そのものが悪いわけではない

Optimizationそのものが問題なのではありません。

MetaTrader 5のStrategy Testerでは、Input ParameterのStart、Step、Stopを指定して複数の組み合わせをテストできます。Parameter候補を比較するための有用な機能です。

問題になるのは、Optimizationを「過去データで最も良い数字を探す作業」だけにしてしまうことです。

使い方確認目的
Parameter候補を比較する条件変更が結果へどう影響するかを見る
近傍値を比較する特定値への依存度を見る
別期間で再確認するHistory依存を確認する
複数指標を見るProfitだけでなくDD・Trade Count等も確認する

MT5 Strategy Testerの基本操作やOptimization設定は、MT5ストラテジーテスター・最適化完全ガイドで確認してください。

Curve Fitting・Overfitting・Parameter Fittingの違い

EA検証では、Curve Fitting、Overfitting、Parameter Fittingという表現が使われます。厳密な使用方法は文脈によって異なりますが、実務上は「既知の過去データへ条件を合わせ込みすぎていないか」という共通の問題を考えるために使われます。

用語この記事での扱い
Overfitting既知データへ適合しすぎ、未知データへの一般化が弱くなる状態
Curve Fitting過去のEquity CurveやPrice Patternへ細かく条件を合わせる状態を表す言葉
Parameter Fitting特定History区間へParameterが強く適合している状態
Robustness期間・Parameter・条件が少し変わっても極端に崩れないかを見る考え方

重要なのは名称よりも、過去データで見つけたRuleやParameterが、まだ見ていない条件でも同じ特徴を保つかを確認することです。

過剰最適化が起きやすくなる条件

Parameterが多いほど必ず過剰最適化になるわけではありませんが、探索の自由度が増えるほど、偶然良い結果になる組み合わせを見つけやすくなります。

条件確認したい問題
調整Parameterが多い組み合わせ数が増え、Historyへの適合余地が大きくなる
Stepが細かすぎる非常に狭い最良点を探しやすくなる
検証期間が短い特定Market Regimeだけを見ている可能性がある
Trade Countが少ない少数の取引結果へ数値が強く影響される
結果を見ながらFilterを追加既知の負けを除外するRuleが増えやすい
同じ期間で何度も再調整Validation Dataまで設計判断に取り込む可能性がある

「負けた取引を除外できる条件」を後から次々追加すると、過去Historyの説明力は高くなっても、未知Dataへの再現性が高くなるとは限りません。

「最高利益の1設定」を選ぶだけでは不十分

Optimization結果をProfit順に並べ、一番上のParameter Setだけを選ぶ方法では、Parameter依存性を確認できません。

例えば最良値だけ非常に高く、その前後の値では結果が急激に悪化する場合、その一点へ結果が強く依存している可能性があります。

見るもの確認する理由
Best Result最高点そのものを確認する
Neighboring Parameters周辺値でも近い特徴があるかを見る
Trade Count少数取引だけで最高値になっていないか
DrawdownProfit増加とRisk増加を分ける
OOS Result未知期間でも特徴が残るかを見る

Parameter Sensitivityとは

Parameter Sensitivityは、Parameterを少し変更した時に、EAの結果がどの程度変化するかを見る考え方です。

例えば、あるIndicator Periodが20の時だけ結果が突出し、19や21で急激に悪化する場合、そのParameterへのSensitivityが高い状態として確認できます。

Parameter例としてのPF見方
191.42周辺でも近い結果
201.45最良値
211.41周辺でも近い結果

上の数値は概念説明のための例であり、EAFCの合格基準ではありません。

次のように一点だけ突出する場合は、理由を詳しく確認します。

Parameter例としてのPF見方
190.92大きく低下
202.80一点だけ突出
210.88大きく低下

「Parameter=20だから優秀」と結論づけるのではなく、なぜ20だけ違うのか、StepやSample、取引回数、Market Regimeに依存していないかを確認します。

近傍Parameterで安定性を確認する

Robustnessを確認する時は、最高点だけではなく、その周囲に比較的安定した領域があるかを見ます。

Parameterを少し変更しただけでProfit、PF、DD、Trade Countが大きく変化する場合、設定値の精度へ強く依存している可能性があります。

一方、ある範囲で結果が緩やかに変化する場合は、一点だけの偶然よりも広い条件で同じ特徴が存在するかを確認しやすくなります。

MT5 Optimization結果の2D・3Dを見る意味

MetaTrader 5のStrategy Testerでは、Optimization結果を2D・3Dで可視化できます。

これを使うと、単純なResult一覧だけでなく、2つのParameterとOptimization Criterionの関係を視覚的に確認できます。

表示確認目的
Result List各Passの数値を確認する
2DParameterと結果の関係を見る
3D複数Parameterによる結果分布を見る
安定領域高評価値が一点ではなく周辺にも存在するかを見る

可視化はRobustnessを自動判定するものではありませんが、「鋭い一点のPeakなのか」「比較的広いPlateauなのか」を確認する材料になります。

In-SampleとOut-of-Sampleを分ける

過剰最適化を確認する基本的な考え方が、In-Sample(IS)とOut-of-Sample(OOS)の分離です。

区分役割
In-SampleRuleやParameter候補を検討するために使用したData
Out-of-SampleRuleやParameter決定に使用していないData
目的既知Dataで決めた条件が未知Dataでも同じ特徴を持つか確認する

ISで最高結果を探し、OOSでその候補を再確認することで、同じHistoryだけを何度も見続ける場合よりも、未知条件への再現性を確認しやすくなります。

OOSを何度も見て調整するとOOSではなくなる

OOSで結果を確認した後、その結果を見ながらEAのRuleやParameterを変更し、同じOOS期間で何度も再検証すると注意が必要です。

そのOOSの値動きを知ったうえで設計判断へ使っているため、実質的にはそのDataも開発判断へ取り込まれていきます。

流れ扱い
ISで調整設計・Optimizationに利用
初回OOS確認未知期間として確認
OOS結果を見てRule変更OOS情報が設計判断へ入る
同じOOSで再調整を反復本当の未知Dataとして扱いにくくなる

簡単に言えば、「答えを見た後に問題を作り直すと、その問題はもう初見テストではない」ということです。

MT5 Forward Testとの関係

MetaTrader 5には、Optimization期間とForward期間を自動的に分けるForward Testがあります。

Forwardには1/2、1/3、1/4、Customがあり、指定期間の後半部分がForward Testへ使われます。Optimizationは前半期間で行い、選択された上位Runを後半の非最適化期間で再テストします。

この機能は、特定History区間へのParameter fittingを確認するための重要な手段です。

MT5 Forwardと一般的なフォワード実績の違いは、EAフォワードテスト完全ガイドで詳しく整理しています。

Forwardが悪化した時に確認すること

ISでは良好だったのにForwardで悪化した場合、すぐにOverfittingと断定せず、結果のどの部分が変わったかを確認します。

確認項目見る変化
Trade CountEntry頻度そのものが大きく変化していないか
Profit Factor利益と損失の関係がどう変わったか
Drawdown資産低下が大きくなっていないか
Win / Loss Distribution一部Tradeへ結果が偏っていないか
Holding Time保有時間が変化していないか
Long / Short方向別の取引特性が変化していないか

Forward期間のMarket RegimeがISと異なる場合もあるため、結果差の原因をOverfittingだけに限定しません。

1回のForwardだけでRobustnessは決まらない

一度のIS / OOS分割で結果が良好だったことは有用な情報ですが、それだけであらゆる期間へのRobustnessが確認できたことにはなりません。

分割位置によって、ISとOOSに含まれるTrend、Range、High Volatility、Low Volatilityなどの比率は変わります。

1回のForwardで分かること別途確認したいこと
特定のIS/OOS分割での結果分割位置を変えた場合
選んだParameterの別期間結果他のMarket Regime
一定期間の再現性時間が進んだ場合のParameter安定性
一つの検証窓複数Windowでの継続性

Walk Forward Analysisとは

Walk Forward Analysisは、ISでOptimizationし、その直後のOOSで確認する工程を、時間を前へずらしながら複数回繰り返す考え方です。

StepOptimizationOOS Test
1期間Aその直後の期間B
2次のWindowその直後の期間C
3さらに次のWindowその直後の期間D
継続時間を前へ移動未知期間を順番に確認

MQL5公式コミュニティの記事でも、1回のOptimization+Forwardだけではなく、Optimization WindowとForward Stepを順番に前へ移動するCustom Walk Forward手法が解説されています。

Rolling WindowとAnchored Windowの考え方

Walk Forwardには、過去Window全体を移動させるRolling型と、開始位置を固定したままOptimization期間を拡張するAnchored型があります。

方式考え方
Rolling一定長のOptimization Windowを時間とともに前へ移動する
Anchored開始点を固定し、新しいDataを追加しながらWindowを拡張する

どちらが常に優れているという意味ではありません。Strategyの性質、検証目的、更新方式によって扱いが異なります。

ParameterがWindowごとに大きく変わる場合

Walk Forwardで各WindowのBest Parameterを確認すると、期間ごとに選ばれる値が大きく変わる場合があります。

これはすぐに失敗を意味するものではありませんが、「EAが安定したParameter領域を持つのか」「Market Regimeごとに最適値が大きく変わるのか」を確認する材料になります。

状態確認すること
近いParameterが繰り返し選ばれる同じ領域に安定性があるか
Windowごとに大幅変化Market Regime依存が強くないか
Best値だけ毎回突出Parameter Sensitivityを確認する
OOSで毎回崩れるRule・Parameter・Sample設計を再確認する

Market Regime変化とOverfittingを混同しない

OOSやForwardで結果が悪化した場合、その原因が必ずOverfittingとは限りません。

ISがTrend中心で、OOSがRange中心だった場合など、Market Regimeそのものが大きく異なる可能性があります。

確認候補見る内容
Overfitting特定HistoryやParameter一点への依存
Regime ShiftTrend / Range / Volatilityなど相場構造の変化
Sample DifferenceTrade Countや期間構成の違い
Strategy Characteristic特定環境で強弱が出る設計か

EAの成績悪化をMarket Regime、Execution、Version、Settingsから確認する場合は、EAの成績が悪化する理由を確認してください。

BacktestとLive Execution差をOverfittingと混同しない

Backtestでは良いのにLiveで悪化した場合も、原因をOverfittingだけに限定しません。

Spread、Commission、Slippage、Execution Delay、Server Time、Broker Specificationなどが違えば、同じEA・setでも結果が変化する場合があります。

BacktestとLive環境差は、MT5でバックテストとリアル運用の違いを確認することで詳しく整理しています。

ナンピン・Grid EAでの過剰最適化確認

ナンピン・Grid EAでは、最終損益だけを見ると、Parameter変更によって内部のRisk構造が変化していることを見落とす場合があります。

確認項目見る内容
Entry Distance特定値だけでDDが急減していないか
Maximum PositionsPosition上限変更で結果を作っていないか
Lot ProgressionLot増加でProfitとRiskが同時拡大していないか
Floating LossBalanceだけでは見えないRiskを確認する
Equity DrawdownParameter周辺で資金負荷が急変しないか

Scalping EAでの過剰最適化確認

Scalping EAでは、Entry Thresholdや短いIndicator Periodだけでなく、Spread・Commission・Slippageの影響も大きくなる場合があります。

確認対象注意点
細かいEntry条件数ポイントの差だけへ適合していないか
SpreadOptimization時のCost条件を確認する
CommissionNet Resultへ反映されているか
SlippageLive環境で期待値を変えないか
Trade Count大量のTradeが特定時間帯へ偏っていないか

GOLD / XAUUSDでの過剰最適化確認

GOLD / XAUUSDでは、期間によるVolatility差が大きくなることがあるため、固定距離Parameterや時間帯Filterを過去の特定局面へ合わせすぎていないか確認します。

確認項目理由
Volatility期間によって値幅が大きく異なる場合がある
Spread時間帯・Broker条件によって変化する
Fixed DistanceSL・TP・Grid幅等が特定値幅へ適合していないか
Trading Hours特定時間帯だけのHistoryへ依存していないか
Symbol SpecificationBroker差とOverfittingを混同しないため

GOLD EA全体のStrategy、Execution、Riskについては、ゴールドEA徹底研究|GOLD/XAUUSDの戦略・検証・リスクも確認してください。

Robustness確認チェック表

No.確認項目確認
1Optimizationに使用した期間を記録した□
2OOS / Forward期間を分けた□
3EA Versionを固定した□
4使用したsetファイルを保存した□
5ParameterのStart / Step / Stopを記録した□
6最高Profitだけで選んでいない□
7Trade Countを確認した□
8PF・DD・Equityも確認した□
9近傍Parameterを確認した□
10一点だけ突出していないか確認した□
11OOSを見て同じ期間へ再調整し続けていない□
12MT5 Forward結果を確認した□
13Market Regime差を確認した□
14Backtest / Live環境差を分けた□
15必要に応じ複数Windowでも確認した□

このチェック表は合否判定の点数表ではありません。どの条件で結果が作られたのかを確認するための整理用です。

よくある質問

過剰最適化と最適化は同じですか?

同じではありません。OptimizationはParameter候補を比較する機能です。過去Dataへ条件を合わせ込みすぎて、未知Dataへの一般化が弱くなる状態を過剰最適化として確認します。

バックテストが良すぎると過剰最適化ですか?

結果が良いことだけでは判断できません。OOS、Forward、Parameter近傍、Trade Count、DDなどを確認し、特定条件への依存が強くないかを見ます。

OOSとは何ですか?

Out-of-Sampleの略で、RuleやParameterを決定するために使用していないDataで結果を確認する考え方です。

MT5 ForwardとOOSは同じですか?

MT5 ForwardはOOS的な検証を行う具体的な機能の一つです。OOSという概念自体は、MT5 Forwardだけに限定されません。

Parameter Sensitivityが高いと使えないEAですか?

それだけでは結論づけられません。ただし、少し値を変えただけで結果が極端に変化する場合は、なぜその一点だけ違うのかを確認する材料になります。

Walk Forwardは必ず必要ですか?

すべてのEAに同じ検証工程が必須とは限りません。Strategy、Parameter数、更新方法、検証目的に応じて、単一OOSで十分か、複数Windowまで必要かを考えます。

OOSが悪ければOverfitting確定ですか?

確定ではありません。Market Regime、Trade Count、Execution条件などの違いも確認します。OOS悪化はOverfittingを疑う材料の一つです。

最適化の合格PFやOOS比率はありますか?

EAFCでは全EA共通の合格値を設定しません。Trade Frequency、Holding Time、Symbol、Risk Structure、検証期間などが異なるため、単一数値ではなく複数条件を組み合わせて確認します。

関連ページ

確認したい内容関連ページ
Forward Testと公開実績を確認するEAフォワードテスト完全ガイド
Monte Carlo / Resamplingで取引履歴の分布を確認するEAのモンテカルロ検証で分かること・分からないこと
EAの成績悪化原因を確認するEAの成績が悪化する理由
MT5 Strategy Testerを使うMT5ストラテジーテスター・最適化完全ガイド
検証条件とOptimizationを記録するMQL5バックテスト実務ノート
Backtest Reportを読むEAのバックテストレポートとは
BacktestとReal環境差を見るMT5でバックテストとリアル運用の違いを確認すること
setファイルで設定を再現するsetファイルとは
Drawdownを確認するドローダウンとは
Profit Factorを確認するPFとは
GOLD EAの検証を確認するゴールドEA徹底研究

参考にした公式情報

MT5のOptimization、Forward Test、Optimization結果の可視化、Overfitting、Out-of-Sample、Walk Forwardについては、MetaTrader 5およびMQL5の公式資料を参照しています。

まとめ

EAの過剰最適化を確認する時は、Optimizationで最も利益が大きかったParameterだけを見るのではなく、その結果がどの条件から作られたのかを確認します。

まずIn-SampleとOut-of-Sampleを分け、MT5 Forwardで未知期間の結果を確認します。さらに、最良Parameterの周辺でもPF、DD、Trade Countなどが極端に崩れないかを確認すると、Parameter Sensitivityを把握しやすくなります。

より長い時間軸で確認する場合は、ISとOOSを順番に前へ移動するWalk Forwardという考え方もあります。ただし、Walk Forwardを行ったから自動的にRobustnessが保証されるわけではありません。

OOSやForwardで悪化した場合も、Overfittingだけでなく、Market Regime、Execution、Broker仕様、EA Version、setファイルなどの差を確認します。Robustnessは単一の数字ではなく、期間・Parameter・Risk・Executionを組み合わせて確認することが重要です。

お問い合わせはEAFC公式LINEへ

EAFCサイト内の記事、商品、導入前確認、設定確認、ログ確認、開発依頼前のご相談など、各種お問い合わせはEAFC公式LINEより受け付けています。

※投資助言、売買指示、利益保証、推奨ロット、推奨銘柄の案内は行っておりません。

口座番号、認証情報、Webhook URL、GAS URL、APIキーなどの機密情報は送信しないでください。

ABOUT ME
記事URLをコピーしました