EAを評価するとき、バックテストだけで判断するのはアウトです。バックテストは最適化に使った過去データで成績を測るため、ほぼ必ず良く見えるからです。
信頼できる評価は、最適化に使っていない期間で成績を確かめるフォワードテストを組み合わせて初めて成り立ちます。具体的には(1)アウトオブサンプル、(2)ウォークフォワード、(3)モンテカルロ、(4)リアルフォワードの4つをバックテストに重ねます。
あわせて、フォワードテストの期間や取引回数の目安、バックテストとの乖離の見方、販売ページでの見分け方もまとめました。
カーブフィッティング(過剰最適化)とは?
カーブフィッティングとは、EAのパラメータを過去の相場に合わせすぎた結果、過去のデータでしか利益を出せなくなった状態です。テストの種類を知る前に、この落とし穴を押さえておきます。
EAを作る過程では「最適化」という作業を行います。例えばボリンジャーバンドの2σで逆張りするEAなら、期間にどの値を使うか迷います。そこで過去相場で最も利益が出る期間をコンピュータで計算して選び出します。この作業を最適化と呼びます。
最適化を何個ものインジケーターで何回も行うと、EAは最適化されすぎた状態になり、過去の相場でしか利益を出せなくなります。この状態がカーブフィッティングです。
下のようにきれいすぎる右肩上がりの線は、カーブフィッティングを疑ってください。

バックテストとフォワードテストの違いと評価方法5種
バックテストは、過去の相場データでEAを動かして成績を測るテストです。フォワードテストは、最適化に使っていない期間やリアルタイムの相場で成績を確かめるテストです。
評価方法は下の5種類に分けられます。②③は過去データを「最適化用」と「検証用」に分けて未知のデータを作る方法、④は取引の順番を入れ替えて運の影響を測る方法、⑤は実際の相場で動かす方法です。
EAの評価方法5種類
①ヒストリカルバックテスト(通常のバックテスト)
ヒストリカルデータをもとに最適化をかける、最も一般的なバックテストです。
最もよく使われる検証法ですが、簡単なため最も誤解されやすい方法でもあります。インジケーターを組み合わせて最適化し、最適なパラメータを導き出す作業のほとんどがカーブフィッティングになるという問題があります。過剰でなくても、ある程度は必ず最適化されています。
EAの宣伝を見るとバックテストの良し悪しばかりで、肝心なフォワードの話が少ないと感じます。はっきり言って、バックテストだけでシステムを評価するのは誤りです。
期間を分割して年ごとの成績を確かめる
全期間の合計成績が良くても、特定の1〜2年だけで大きく稼いでいるEAは危険です。バックテストを1年ごとに区切り、年別の損益・PF・最大DDを並べてみてください。
見るのは、マイナスの年が続いていないか、利益が一部の年に偏っていないかの2点です。MT4ならストラテジーテスターの期間指定を1年ずつ変えて回すだけで確認できます。
例として、5年間の合計が+620pipsのEAを年別に分けると、次のようになったとします(説明用の架空の数値)。
合計だけ見れば優秀ですが、利益は2022年の1年分だけで、残り4年を足すと0pipsです。2022年のような相場がまた来ない限り、このEAは稼げません。
ただし、全期間で最適化したEAは年別に分けても最適化の影響が残ります。期間分割でわかるのは成績のばらつきまでで、最適化していない期間での検証は次の②③が担います。
②アウトオブサンプルテスト
最適化に使っていない期間でもEAが通用するかを確かめるのが、アウトオブサンプルテストです。ほとんどの人はヒストリカルデータの全期間を使ってバックテストしますが、全期間で最適化と評価を兼ねるやり方はおすすめできません。アウトオブサンプルテストは、ヒストリカルデータを「最適化の期間」と「最適化後のテストの期間」の2つに分割する方法です。

上の例では、まず2003〜2006年で最適化を行い、最適化後のEAを2007〜2010年でバックテストしてパフォーマンスを確認します。この方法で良い成績になれば、全期間で最適化した場合に比べてリアルトレードがうまくいく可能性が高まります。
- ヒストリカルデータを7:3または8:2に分ける
- 前半(古い期間)だけでパラメータを最適化する
- パラメータを固定し、後半(直近の期間)で1回だけバックテストする
- 後半でも損益グラフが右肩上がりで、PFと最大DDが前半と大きく変わらなければ合格
アウトオブサンプルテストを採用しているオススメのEAは次のとおりです。こういったEAは珍しく、ちゃんとわかって作っているなと感心します。
RECOBA Triple Swing M5 INTER_EURJPY_M5 MILAN_EURJPY_M5ただし、アウトオブサンプルテストには「最適化したパラメータの値を永遠に変えられない」という問題があります。相場が変わったときにパラメータを更新すると、また最適化のやり直しになるからです。パラメータを定期的に更新しながら検証できるのが、次のウォークフォワードテストです。
③ウォークフォワードテスト
ウォークフォワードテストとは、簡単に言うとアウトオブサンプルテストをたくさん行って、そのテスト結果をつなぎ合わせたものです。

黒枠が最適化期間、赤枠がテスト期間です。期間をずらしながら「最適化→テスト」を繰り返し、最終的に赤枠のテスト結果だけをつなぎ合わせて1つのバックテスト結果を作ります。
ウォークフォワードの期間設定例
よく使われるのは、最適化期間(イン期間)3年・テスト期間(アウト期間)1年で、1年ずつずらす設定です。
10年分(2016〜2025年)のデータで考えます。まず2016〜2018年で最適化して2019年でテストし、次に2017〜2019年で最適化して2020年でテストします。
これを7回繰り返し、2019〜2025年の7年分のテスト結果をつなぎ合わせます。
ウォークフォワードの進み方
最適化3年+テスト1年を1年ずつずらす(20XX年)
今回の期間(7回目)
つなぎ合わせたテスト結果
7回繰り返し、2019〜2025年の7年分のテスト結果をつなぎ合わせる。
テスト期間の成績が最適化期間にどれだけ近いかは、ウォークフォワード効率(WFE)で数値にできます。テスト期間の年換算利益を、最適化期間の年換算利益で割った値です。
最適化期間3年で1,500pips(年500pips)、テスト期間1年で300pipsなら、WFEは300÷500=60%です。ウォークフォワード分析を1992年に発表したロバート・パルドの考え方では、50〜60%以上がひとつの目安とされます。
- わかること:定期的にパラメータを再最適化する運用で、相場の変化に追従できるか
- 合格の目安:つなぎ合わせたテスト結果が右肩上がりで、各テスト期間の成績がばらつきすぎていない
- 本番での運用:テストと同じ間隔(例:1年ごと)でパラメータを再最適化する
アウトオブサンプルテスト・ウォークフォワードテストを採用しているオススメのEAは次のとおりです。面倒なテストなので、ここまで実施して作成しているEAはそれだけ真面目に作っている証拠です。
CROCUS_EURJPY CROCUS_USDJPY Sentinel④モンテカルロシミュレーション
モンテカルロシミュレーションは、バックテストやフォワードで得た取引結果の順番をランダムに入れ替え、何百〜何千通りもの資産曲線を作る方法です。
勝率も1回あたりの損益も同じ取引の集まりなのに、負けがどこに固まるかで最大ドローダウンは大きく変わります。バックテストに表示される最大DDは、そのうちの1通りにすぎません。
見るべきは、たとえば1,000回試したうち悪いほうから5%目(95パーセンタイル)の最大DDです。この値に資金が耐えられるかを確かめてからロットを決めます。
注意点として、ナンピンやマーチンゲールのように前の取引結果で次のロットや建値が変わるEAは、順番を入れ替えると取引が成り立ちません。こうしたEAはこの方法では正しく評価できません。
200回の取引で試算した最大DDの幅
試算に使ったのは、勝ち120回(各+20pips)・負け80回(各−25pips)の取引200回です。合計は+400pips、PFは1.2になります。
この200回の順番だけを1,000通り並べ替え、それぞれの最大DDを計算しました(Pythonで乱数を固定して試算)。
中身がまったく同じ取引でも、並び次第で最大DDは4倍以上変わります。バックテストに最大DD115pipsと出ていても、運の良い並びだっただけかもしれません。
ロットは、95パーセンタイルの365pipsを被っても資金が残る大きさに決めます。
⑤リアルフォワードテスト(リアルタイムテスト)
過去のチャートはデータの精度に問題があるとして、バックテストを実施しない人もいます。そうした人が使うのがリアルタイムテストです。
バックテストをまったく行わず、リアルトレードだけでデータを集めてテストする方法です。しかし、データを集める速度がリアルタイムの進む時間と等しいので膨大な時間がかかります。あまり現実的ではなく、本物の最強のトレーダーのテスト方法です。
EAを買う側にとって現実的なのは、バックテストを確認したうえで、デモ口座か少額のリアル口座でしばらく動かすリアルフォワードです。スプレッドの広がりやスリッページなど、バックテストでは再現しにくい要素まで含めた成績がわかります。
MT4でフォワードテストを行う手順
- 本番で使う予定の業者でデモ口座(または少額のリアル口座)を開く
- VPSなど24時間動く環境のMT4にEAを設定し、ロットは本番より小さくする
- 決済済みの取引を定期的に記録する(MT4の「口座履歴」タブを右クリックするとレポートを保存できる)
- 取引回数が目安に達したら、同じ期間のバックテストと成績を比べる
フォワードテストの合格基準(期間・取引回数・乖離)
フォワードテストは、いつまで続ければ合格かを先に決めておかないと、たまたま勝った数週間で判断してしまいます。目安は期間ではなく取引回数で決めます。
期間より取引回数で判断する
取引回数が30回に満たないうちは、勝率やPFが運でいくらでも振れます。最低30回、できれば100回以上を目安にしてください。
1日に何回も取引するスキャルピングEAなら数週間で届きますが、月に数回しか取引しないスイングEAでは100回に届くまで数年かかります。取引頻度から必要な期間を逆算しておきます。
30回では足りない理由は、勝率の誤差幅を計算するとわかります。バックテストの勝率が60%のEAで、フォワードの勝率がどこまで下がっても誤差といえるかを試算しました。
計算式は、95%の範囲を表す「1.96×√(勝率×(1−勝率)÷取引回数)」です。
30回では、勝率が43%まで落ちても「まだ誤差」としか言えません。100回で、ようやく±10%弱まで絞れます。
フォワード45回で勝率51%だった場合、誤差の範囲は45.7〜74.3%なので、この時点では不合格と決めつけられません。45%を割り込んでいれば、誤差では説明しにくい乖離です。
バックテストとの乖離を指標ごとに比べる
フォワードの成績は、同じ期間のバックテストと指標ごとに並べて比べます。
乖離が出る主な原因
- スプレッド・スリッページ:バックテストは固定スプレッドで回すことが多く、指標発表時の広がりや滑りが反映されない
- 過剰最適化:過去の相場に合わせすぎたパラメータが、新しい相場で通用しない
- 相場環境の変化:トレンド相場向けのEAがレンジ相場に入った、など
- 業者・サーバーの違い:レート配信や約定の仕組みが業者ごとに異なる
販売ページでEAのテスト方法はどう見分ける?
EAを購入する側は、販売ページの説明からどのテストをしているかを読み取れます。
EAのバックテスト・フォワードテストでよくある質問
Q1. バックテストとフォワードテストの違いは?
バックテストは最適化に使った過去データで成績を測るテスト、フォワードテストは最適化に使っていない期間やリアルタイムの相場で成績を確かめるテストです。バックテストだけでは過剰最適化を見抜けないため、両方で評価します。
Q2. フォワードテストの期間はどれくらい必要?
期間ではなく取引回数で決めます。最低30回、できれば100回以上が目安です。勝率60%のEAなら、30回では勝率の誤差幅が±17.5%あり、100回でようやく±9.6%まで絞れます。
Q3. バックテストは意味がないの?
意味はあります。ロジックが想定どおり動くか、最低限の成績があるかを確かめる最初のふるいです。ただし最適化した期間の成績はほぼ必ず良く見えるため、合否はフォワード系のテストで判断します。
Q4. フォワードテストはデモ口座でもよい?
最初はデモ口座で構いません。ただし業者によってはデモとリアルで約定の条件が異なるため、デモで合格したら少額のリアル口座でも確かめると安心です。
Q5. バックテストとフォワードテストの成績が違うのはなぜ?
主な原因は、スプレッドの広がりとスリッページ、過剰最適化、相場環境の変化、業者ごとのレート配信や約定の違いです。勝率・PF・平均損益・最大DDを指標ごとに比べると、どこで差が出たかがわかります。
Q6. ウォークフォワードテストはMT4でできる?
MT4のストラテジーテスターにはウォークフォワードの機能がないため、期間を変えながら最適化とテストを手作業で繰り返します。MT5のストラテジーテスターには、期間の一部をフォワード用に分ける設定があります。
まとめ
- バックテストだけでEAを評価するのは誤り。最適化した期間で評価するため、ほぼ必ず良く見える
- アウトオブサンプルテストは、最適化していない期間で通用するかを確認する。7:3で分割し、テストは1回だけ
- ウォークフォワードテストは、パラメータの再最適化で相場の変化に追従できるかを確認する
- モンテカルロシミュレーションで、負けが固まったときの最大DDを確かめてからロットを決める
- リアルフォワードは期間ではなく取引回数で判断する。最低30回、できれば100回以上
- ここまで考えて作られたEAはごく少数。販売ページの記載からテスト方法を読み取って選ぶ
ここまでの話は以下の書籍を参考にしています。
※本記事は情報提供を目的としたもので、特定のEA・金融商品の売買を推奨するものではありません。FX(外国為替証拠金取引)は元本が保証されておらず、レバレッジにより預けた証拠金を上回る損失が発生する可能性があります。記事内の成績・数値は過去の実績であり、将来の利益を保証するものではありません。投資の最終判断はご自身の責任でお願いします。



