バックテストでは素晴らしいパフォーマンスを発揮していたEAが、実際の取引では思ったような成果を出せないことがあります。
これがEAを購入する際に悩まされる問題のひとつ、過剰最適化(カーブフィッティング)です。
この記事では、カーブフィッティングが起きる仕組み、8つの回避方法、購入前に見抜くための確認方法を、目安となる数値を交えて解説します。
カーブフィッティングとは?
過剰最適化(カーブフィッティング、オーバーフィッティング)とは、最適化のしすぎにより、バックテストをした過去相場にだけ通用するEAになってしまうことです。
カーブフィッティングが起きる仕組み
下の画像はカーブフィッティングしたEAの例です。取引回数5000回付近までのデータで最適化しています。最適化に使った5000回までは右肩上がりですが、最適化していない5000回以降は成績が崩れています。

カーブフィッティングの回避方法
カーブフィッティングを完全になくすことはできませんが、次の8つを意識すると起きにくくなります。EAを購入する人も、販売ページの説明を読み解く材料として使えます。
カーブフィッティングの8つの回避方法と目安
バックテストと最適化の期間を長くする
目安は最低5年、できれば10年以上です。ただし長さそのものより、性質の違う相場がすべて含まれているかが重要です。
- トレンド相場:一方向に動き続ける期間
- レンジ相場:値幅の狭い期間
- 高ボラティリティ相場:急落・急騰が続く期間(2020年コロナショック、2022年の急激な円安、2024年7〜8月の急激な円高など)
レンジ相場ばかりの2年間で最適化したEAは、レンジ相場にだけ強いEAになります。トレンド相場に変わった途端に負け続けるのは、よくある失敗です。
取引回数を多くする
10年で10回トレードして全勝するEAがあっても、10回程度なら偶然全勝することもあります。取引回数が多いほど偶然の影響が薄まり、勝率やプロフィットファクターを信用できるようになります。
スキャルピングEAなら数千回は簡単に稼げますが、日足ベースのスイングEAは10年でも数百回にしかならないことがあります。取引回数の少ないEAほど、テストパターンの追加やアウトオブサンプルテストが重要になります。
パラメータを減らす
パラメータを増やして最適化を繰り返すと、バックテスト上は成績の良いEAを作れます。しかしそれは過去相場に合わせ込む自由度が増えているだけで、本番で勝てる保証はありません。インジケータ1つでも「時間足」「期間」「しきい値」とパラメータは増え、フィルターを足せばすぐ10個を超えます。
最適化するパラメータは合計3〜5個に絞る
- 定番値を優先する:移動平均20・RSI14など広く使われている値から始め、最適化で「23」のような中途半端な値が選ばれても、定番値と成績が大差なければ定番値を採用する
- 販売EAはパラメータ数を見る:外部パラメータが異常に多いEAは、合わせ込む余地が大きい
テストパターンを増やす
最適化に使ったデータとは条件を変えてバックテストし、利益の出る傾向が残っているかを確認します。
すべてで最適化時と同じ成績が出る必要はありません。条件を少し変えただけでプラスからマイナスに反転するなら、そのEAは最適化した条件にだけ合わせ込まれています。
極値のパラメータを選ばない
下の画像はMT4のストラテジーテスターの最適化結果グラフです。1番目のパラメータの値だけ、前後より飛び抜けて成績が良くなっています。

飛び抜けた値は、過去相場の偶然の動きにたまたま合っただけの可能性が高く、これを選ぶと過剰最適化になります。
- 最適化後にストラテジーテスターの「最適化グラフ」タブを開く
- 成績1位の値をそのまま採用しない
- 前後の値と比べて突出していないかを必ず見る
最適化結果の点はなだらかになることを確認
下の最適化結果は、ばらつきが少なく点が少しずつ変化しています。パラメータを少し変えても成績が大きく変わらない、安定したEAです。逆に点がばらついていると、少し変えただけでまったく違う成績になります。

簡単な確認方法:採用値の前後±10〜20%でもテストする
パラメータだけでなく、テスト期間の感度も確認します。バックテストの開始日・終了日を数か月ずらしても成績が大きく変わらなければ合格です。開始日を1か月ずらしただけで成績が半減するなら、特定の期間に合わせ込まれています。
採用値の前後±20%でもテストする
パターン:なだらかな山
※移動平均の期間を20で採用する記事の例を、架空の最適化結果で示したものです。縦軸は成績(上ほど良い)。
根拠あるロジックにする
極端な例ですが、「雨が降った日はドル円が上がりやすい」という法則を見つけ、雨の日にドル円を買うお天気フィルターEAを作ったとします(考え方を表した疑似コードで、実際に動くMQL4ではありません)。
if(tenki == "雨"){
// ドル円の買い
}
このEAは本番では通用しないでしょう。天気と相場に関連があるとは考えにくいからです。根拠の薄いフィルターでバックテストの成績が良くなっても、それはカーブフィッティングです。過去10年のデータを細かく探せば、偶然成績が良くなる条件はいくらでも見つかります。
- 根拠あり:「なぜ勝てるのか」を相場の性質から一言で説明できる
- 根拠なし:説明できないが、バックテストの成績だけは良い(天気フィルターなど、相場の性質と関係のない条件)
自作EAなら、ストラテジーテスターのビジュアルモードでバックテストを再生し、エントリーと決済がロジック通りの場面で起きているかを目視で確認しましょう。数字上は勝っていても、想定外の場面で取引しているなら、その利益は偶然です。
アウトオブサンプルテストをする
アウトオブサンプルテストとは、ヒストリカルデータを「最適化に使う期間」と「最適化のあとにテストする期間」の2つに分割する方法です。
アウトオブサンプルテストのイメージ(10年分なら7年:3年)
- MT4のストラテジーテスターで期間を古い7〜8年に指定して最適化する
- パラメータが決まったら、期間を直近2〜3年に切り替える
- 通常のバックテストを1回だけ実行し、下の表で判定する
MT5のストラテジーテスターには「フォワード」設定があり、最適化時にこの分割を自動で行ってくれます。
指定期間の後ろ1/2・1/3・1/4をテスト期間にするか、「カスタム」でテスト開始日を手動指定できます。MT4にはこの機能がないため、期間指定を手動で切り替えます。
テスト期間の成績を見てからパラメータを調整し直すと、テスト期間まで最適化に使ったことになり意味がなくなります。テストは1回きりと決めて実行しましょう。
発展形のウォークフォワードテストや、テストの種類ごとの違いは以下の記事で紹介しています。
併せて読む
EAのバックテストとフォワードテスト|正しい評価方法5種と合格基準EAはバックテストだけで評価すると本番で崩れがちです。アウトオブサンプル・ウォークフォワード・モンテカルロ・リアルフォワードの5つの検証法と、フォワード期間や取引回数など合格の目安を計算例つきで解説します。
カーブフィッティングの確認方法
十分に対策してもカーブフィッティングを完全に避けられるとは限りません。過去データをどう分割しても「過去」でしかないため、最終的には実際の相場でEAを動かすフォワードテストが必要です。
フォワードテストで確認するポイント
期間は最低半年、できれば1年以上が目安です。取引回数の少ないEAほど長い期間が必要です。フォワードの成績を、バックテストの同じ長さの期間と比べます。
フォワードの成績がバックテストより多少落ちるのは普通です。スプレッドやスリッページ、約定の遅れなど、バックテストでは再現しきれない不利な条件が本番にはあるからです。問題なのは「落ちる」ことではなく「傾向そのものが変わる」ことです。フォワードで問題なさそうだと確認できてから、ロットを徐々に上げていきましょう。
カーブフィッティング以外で綺麗なバックテストになる原因
バックテストとフォワードが乖離する原因はカーブフィッティングだけではありません。次の原因はカーブフィッティングとは別物ですが、同じように「綺麗なバックテスト」を生むので、合わせて見分けられるようにしておきましょう。
EAを購入するときの見抜き方
フォワードテストが十分に実施されていないEAは、カーブフィッティングの可能性を排除できません。ゴゴジャンなどのEA販売サービスではフォワード実績が公開されているので、次の点を確認しましょう。実績がデモ口座かリアル口座かも合わせて見ておくと安心です。
- 見るのはバックテストではなくフォワードの損益グラフ
- 販売開始から半年、できれば1年以上の実績があるか
- 販売開始直後だけ良く、その後横ばい・右肩下がりになっていないか(販売前のバックテスト期間にカーブフィッティングしていた典型例)
- 最適化に使った期間とフォワード期間が分けて示されているか(区別なく1本のグラフで見せているなら、どこまでが最適化済みかわからない)
- フォワード実績のEAバージョン・設定・口座条件が、販売中のものと同じか(バージョンアップ後に実績がリセットされていないか、集計期間が明示されているか)
- フォワードテストのないEAは候補から外す
フォワード実績で厳選したゴゴジャンEAは、以下の記事で紹介しています。
カーブフィッティングされたEAは世の中に多く出回っています。バックテストの綺麗な右肩上がりだけで判断しないようにしましょう。
まとめ
過剰最適化(カーブフィッティング)は、最適化によってパラメータが過去相場の偶然の動きにまで合わせ込まれることで起こります。EAを自作する人は、最適化のたびに次のチェックリストを確認してみてください。
- バックテスト期間は5〜10年以上で、トレンド・レンジ・急変相場を含んでいるか
- 取引回数は300回以上(できれば1000回以上)あるか
- 最適化するパラメータは3〜5個に絞っているか
- 他の通貨ペア・時間足・広いスプレッドでも傾向が崩れないか
- 採用したパラメータは飛び抜けた極値ではなく、なだらかな山の上にあるか
- なぜ勝てるのかを相場の性質から説明できるか
- 最適化していない直近2〜3年でアウトオブサンプルテストをしたか
EAを購入する人は、バックテストではなくフォワード実績を見て、販売開始から半年〜1年以上の成績が安定しているものを選びましょう。
※本記事は情報提供を目的としたもので、特定のEA・金融商品の売買を推奨するものではありません。FX(外国為替証拠金取引)は元本が保証されておらず、レバレッジにより預けた証拠金を上回る損失が発生する可能性があります。記事内の成績・数値は過去の実績であり、将来の利益を保証するものではありません。投資の最終判断はご自身の責任でお願いします。





