バックテスト結果に騙されないために
カーブフィッティング(過剰最適化)の
仕組みと見分け方
「バックテストは完璧なのに、リアルトレードで全く勝てない」――これは カーブフィッティング(過剰最適化)が原因である場合がほとんどです。 本記事では、初心者が最も陥りやすいこの落とし穴の仕組みと、 フォワードテスト・アウトオブサンプル検証などを使った中立的な評価方法を解説します。
📋 目次
1. カーブフィッティングとは何か
カーブフィッティング(curve fitting)とは、統計・機械学習の用語で 「特定のデータに対して過度に当てはまるよう調整された状態」を指します。 EAの文脈では、「バックテストに使った過去データだけに完璧にはまるよう パラメータを調整してしまった状態」です。
✅ 汎化できているEA
- ・シンプルな売買ロジック
- ・様々な相場環境でまあまあの成績
- ・OOS期間でも崩れない
- ・バックテストとフォワードが近い
❌ カーブフィッティングEA
- ・バックテストだけ異常に優秀
- ・リアルになると途端に崩壊
- ・ドローダウンがほぼゼロ
- ・OOS期間で成績が激変
「過剰最適化」「オーバーフィッティング」とも呼ばれます。 機械学習の世界でも同じ問題があり、汎化(未知データへの対応力)こそが評価の要です。
2. なぜ「過去完璧なEA」が未来に通用しないのか
相場は過去と全く同じ動きを繰り返しません。 カーブフィッティングされたEAは、パラメータが過去の値動きの 「例外的な瞬間」まで記憶してしまっているため、 少しでも違う値動きが来ると対応できなくなります。
具体的なイメージ
問題は、バックテスト報告書を見ただけでは、これが「本当に強いEA」なのか 「カーブフィッティングされたEA」なのかが見た目だけでは区別できない点です。
3. カーブフィッティングを見分ける5つのポイント
資産曲線が「右肩上がり一直線」すぎる
実際の相場には必ず荒れる時期・低迷期があります。ドローダウン(資産の落ち幅)がほとんどなく、きれいすぎる右肩上がりは過最適化のサインです。現実の優良EAでも、数%〜十数%のドローダウン期間は存在します。
勝率が90%以上ある
異常に高い勝率は、ナンピン・マーチンゲール系か、あるいは過最適化によって「負けトレードを排除するパラメータ」が設定されている可能性があります。FXで勝率90%超を出し続けることは理論上非常に困難です。
バックテスト期間が短い(3年以下)
短期間のデータしか使っていないEAは、その期間の"特定の相場パターン"にしか適応していない可能性があります。最低でも5年以上、できれば10年(金融危機・コロナ相場・高インフレ期など複数の市場環境)を含むことが望ましいとされます。
バックテストとフォワードで成績が大きく乖離している
バックテストのPFが2.0でも、フォワードテスト(実際に動かした期間)がPF 0.9を下回っているなら要注意です。バックテストとフォワードの乖離が大きいほど、カーブフィッティングの疑いが高まります。
OOS(アウトオブサンプル)期間の成績が公開されていない
OOS期間とは、パラメータ最適化に使っていない「テスト外期間」のことです。OOS成績が開示されていないEAは、過最適化の確認ができません。誠実な開発者はOOS結果も公開します。
4. アウトオブサンプル(OOS)検証とは
OOS(Out-of-Sample)検証は、カーブフィッティングを検出する最も重要な手法の一つです。 統計・機械学習でいう「テストデータ」の概念と同じです。
OOS検証の考え方
IS期間(In-Sample)
パラメータ最適化に使ったデータ期間(例: 2015〜2021年)
OOS期間(Out-of-Sample)
パラメータ最適化に使っていないデータ期間(例: 2022〜2024年)
OOS期間でも成績が大きく落ちないEAは「汎化されている」と評価できます。 逆にOOS期間で成績が急落するEAはカーブフィッティングの可能性が高いです。
ウォークフォワード検証(WFO)は、IS→OOSのセットを時系列でずらしながら 複数回繰り返すことで、より信頼性の高い評価を行う手法です。 詳しくは バックテストの見方・騙されない読み方 で解説しています。
🔍 OOS成績を確認する際の目安(参考)
- ・OOSのPF(プロフィットファクター)が IS比で 70〜80% 以上維持されているか
- ・OOSのドローダウンが ISと大きく乖離していないか
- ・OOS期間のトレード数が統計的に有意な件数(最低50件以上が目安)あるか
※ 上記の数値は一般的な参考水準であり、絶対的な基準ではありません。
5. フォワードテストで最終確認する
フォワードテスト(forward test)とは、 実際の相場をリアルタイムで動かして検証することです。 バックテスト・OOS検証は過去データを使いますが、 フォワードテストはリアルの「未来」を使うため、最も客観的な検証手段です。
バックテスト
最適化に使った過去データ。成績が良くて当たり前
OOS検証
最適化に使っていない過去データ。より客観的
フォワードテスト
リアルタイムの相場。最も客観的な最終評価
フォワードテストのポイント
- ▶ 最低3〜6ヶ月以上の期間を確認する(短すぎると運の要素が大きい)
- ▶ できればMyfxbook等の第三者認証つき成績を確認する
- ▶ バックテスト結果と比較して、PF・DDの差が小さいほど信頼性が高い
- ▶ 「フォワードテスト成績なし・バックテストのみ」のEAは慎重に評価する
EA販売者がフォワードテスト結果を公開していない場合、 「実際に動かしたら成績が悪化した」可能性も考えられます。 詳細は EA詐欺の見抜き方 も参考にしてください。
6. パラメータ数の目安
カーブフィッティングのリスクはパラメータ数と深く関係しています。 パラメータが多いほど、過去データへの「当てはまり」は良くなりますが、 汎化力(未知データへの対応力)が下がる傾向があります。
| パラメータ数 | リスク評価 | コメント |
|---|---|---|
| 1〜5個 | 低 | シンプルで汎化しやすい。長所を確認しやすい |
| 6〜15個 | 中 | 適切に設計されていれば問題ないことも多い |
| 16〜30個 | 高め | OOS・フォワード検証が特に重要 |
| 31個以上 | 要注意 | 過最適化リスクが高い。独立した検証必須 |
ただしパラメータ数だけが基準ではありません。少ないパラメータでも 設計の意図が不明瞭なEAや、テスト期間が短いEAには同様のリスクがあります。 上記はあくまで参考の目安です。
7. EA評価チェックリスト
EAを評価する際は、以下の観点を組み合わせて判断することが重要です。 チェックを入れて、どれほど確認できているか整理してみてください。
💡 重要な考え方
「バックテストが良い」は必要条件ですが、十分条件ではありません。 バックテストが良くてOOS・フォワードも安定しているEAが、 中立的な評価に耐えうる最低ラインと考えられます。 ただし、過去の成績は将来の結果を保証するものではありません。
バックテストを自分で動かして検証する
MT5対応口座を開設すれば、EAのバックテスト・フォワードテストを自分で実施できます。 他人のデータを鵜呑みにせず、自分で数値を確認する習慣をつけましょう。
※当サイトはアフィリエイト広告を利用しています