バックテストの過剰最適化(カーブフィッティング)とは?検証結果を読むときの注意点

ブログランキング・にほんブログ村へ 人気ブログランキング
ランキングに参加しています!1日1回「ブログランキング」をクリックしていただけると嬉しいです。皆様の応援が更新の励みになります。
バックテストの過剰最適化(カーブフィッティング)とは?検証結果を読むときの注意点

バックテストの過剰最適化(カーブフィッティング)とは、過去のデータにぴったり合うようにルールやパラメーターを調整しすぎた結果、過去の成績だけが良く見え、将来の相場では同じ結果が出にくくなる状態のことです。検証結果を見るときは、プロフィットファクター(PF)や勝率の数字だけで判断せず、取引回数・検証期間・パラメーターを少し変えたときの結果の変化・最大ドローダウンを合わせて確認します。そのうえで、調整に使っていない期間やフォワードテストでの結果と見比べることが、数字を過信しないための第一歩です。

この記事の前提:本記事は、検証結果の読み方を理解するための教育的な情報です。特定の通貨ペア・EA・手法・売買タイミングを推奨するものではありません。記事中の検証結果の数値はすべて説明用の架空の例です。どのような検証結果も、将来の成果を保証するものではありません。


過剰最適化(カーブフィッティング)とは:過去データに合わせすぎた状態

過剰最適化とは、「過去のデータで成績が最も良くなる設定」を追い求めた結果、ルールが過去の値動きの細かなクセにまで合わせ込まれてしまった状態を指します。カーブフィッティング、オーバーフィッティングとも呼ばれます。

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

最適化とは、移動平均の期間や損切り幅などのパラメーターを変えながら何度も検証し、条件の組み合わせを比べる作業です。MT5のストラテジーテスターにも、入力パラメーターの組み合わせを総当たりで試す方法や、遺伝的アルゴリズムで効率よく探す方法が用意されています(MetaTrader 5 公式ヘルプ:最適化の種類)。

問題になるのは、最適化の結果を「過去に一番良かった数字」として受け取り、その数字が将来も再現されるかのように読んでしまうことです。最適化は条件を比べる手段であり、将来の成績を見つける手段ではありません。

身近な例えで考える

💡 過去問の答えを丸暗記するのに近い
過去問の答えだけを丸暗記すると、同じ問題が出れば満点を取れますが、少し形の違う問題には対応できません。過剰最適化されたルールも、検証に使った過去の値動きには高い成績を示しますが、形の違う将来の値動きでは同じ結果が出にくくなります。ただし、相場は試験と違って「出題範囲」が決まっておらず、同じ値動きが繰り返される保証もない点で、例え以上に不確実です。

過去に合わせすぎると将来の成績が崩れやすい理由

過剰最適化されたルールが将来に通用しにくいのは、過去の値動きに含まれる「たまたまの偶然」まで、再現性のあるパターンのように取り込んでしまうためです。

偶然の値動き(ノイズ)まで拾ってしまう

過去のチャートには、経済指標やニュース、その時期の需給など、二度と同じ形では起こらない要因による値動きが含まれています。パラメーターを細かく調整するほど、こうした一度きりの値動きにうまく乗れる設定が「最適」として選ばれやすくなります。その設定は、偶然が再び起こらない将来の相場では優位性を失う可能性があります。

相場環境は検証期間と同じとは限らない

トレンドが続きやすい時期、狭い値幅で行き来する時期、値動きが急に大きくなる時期など、相場環境は変化します。ある期間の環境に合わせ込んだルールは、環境が変わったときに成績が大きく変わることがあります。検証期間がどのような相場環境だったかを確認せずに成績だけを見ると、この違いに気付けません。

条件の数が多いほど「合わせ込み」が起こりやすい

一般に、ルールの条件やパラメーターの数が多いほど、また調整を繰り返した回数が多いほど、過去データに合わせ込める余地は大きくなります。取引回数が少ないのに条件が多いルールは、少ない取引にうまく当てはまる設定を探しているだけになっていないか、特に注意して見る必要があります。

架空の例で見る「検証期間は良く、検証外で悪化する」流れ

過剰最適化が起きたときの典型的な流れを、説明用の架空の数値で確認します。ある売買ルールのパラメーターを細かく調整し、調整に使った期間で最も成績が良い設定を選んだあと、調整に使っていない別の期間で同じ設定を検証した、という想定です。

項目(架空の例)調整に使った期間調整に使っていない期間
プロフィットファクター(PF)2.10.8
取引回数38回20回
最大ドローダウン8%19%

※上表はすべて説明用の架空の数値であり、実在する手法・EA・相場の検証結果ではありません。

この例では、調整に使った期間のPFは2.1と良好に見えますが、調整に使っていない期間では1を下回り、損失が利益を上回る結果になっています。最大ドローダウンも大きく広がっています。調整に使った期間の成績だけを見ていると、この変化には気付けません。

また、調整に使った期間の取引回数が38回と少ない点も読み取りのポイントです。取引回数が少ない結果は、数回の勝ち負けで成績が大きく動くため、良い数字が偶然による可能性を切り分けにくくなります。

検証結果で過剰最適化の兆候を確認する観点

過剰最適化かどうかを1つの数字で判定する方法はありません。複数の観点を組み合わせて、「成績が偶然や合わせ込みによるものではないか」を確認していきます。

取引回数と検証期間の長さを確認する

取引回数が少ない、または検証期間が短い結果は、たまたま相性の良い相場だけを切り取っている可能性があります。取引回数が多く、上昇・下落・もみ合いなど性質の異なる相場を含む期間で検証しているかを確認しましょう。

「何回以上あれば信頼できる」という一律の基準はありません。必要な取引回数は、ルールの条件の数、取引頻度、損益のばらつきなどによって変わります。取引回数や期間はあくまで目安として扱い、回数が多ければ将来も同じ成績になる、という意味ではない点に注意してください。

パラメーターを少し変えたときの結果の変化を見る

最適な設定の周辺でパラメーターを少しずつ変え、成績がどう変わるかを見る方法も有効です。次の表は、ある期間の値を変えたときのPFを、2つの架空のパターンで比べたものです。

パラメーター(架空)1819202122
パターンA:PF0.91.02.20.90.8
パターンB:PF1.21.31.31.31.2

※上表はすべて説明用の架空の数値です。

パターンAは、値が「20」のときだけ成績が突出し、少しずれると大きく崩れています。このように特定の設定でだけ良い結果は、過去データへの合わせ込みの可能性を疑うサインです。パターンBは最高値こそ低いものの、周辺の設定でも成績が大きく変わりません。ただし、パターンBのように安定して見える場合でも、将来の成績を保証するものではありません。

PF・勝率・最大ドローダウンは組み合わせて読む

成績表の数字は、それぞれ見ている側面が違います。1つの数字だけで良し悪しを判断しないことが大切です。

  • プロフィットファクター(PF):総利益を総損失で割った値です。1を上回れば検証期間では利益が損失を上回ったことを示しますが、取引回数が少ないと数回の結果で大きく変わります。計算方法や注意点はプロフィットファクターの計算方法と注意点の記事で確認できます。
  • 勝率:勝ちトレードの割合です。勝率が高くても、1回の負けが大きければ全体では損失になることがあるため、平均利益と平均損失の比率とセットで見ます。
  • 最大ドローダウン:資金が直近の高値からどれだけ減ったかの最大値です。検証期間で小さくても、将来それ以上のドローダウンが起こらないとは限りません。

勝率と損益比から1回あたりの期待値を確かめたい場合は、FX期待値計算機で成績表の数字を入れて読み直すと、勝率だけでは見えない部分を確認しやすくなります。

  • 確認チェック:検証期間の長さと、含まれる相場環境を確認したか
  • 確認チェック:取引回数が少なすぎず、数回の勝ち負けで成績が大きく変わる状態ではないか
  • 確認チェック:パラメーターを少し変えても成績が極端に崩れないか
  • 確認チェック:ルールの条件やパラメーターの数が、取引回数に比べて多すぎないか
  • 確認チェック:PFや勝率だけでなく、最大ドローダウンと損益比も確認したか
  • 確認チェック:調整に使っていない期間やフォワードテストでの結果を確認したか

調整に使っていない期間とフォワードテストで確認する

過剰最適化を確かめる基本は、パラメーターの調整に使った期間とは別の期間で、同じ設定を検証することです。調整に使った期間の成績だけでは、その成績が合わせ込みによるものかどうかを区別できないためです。

期間を分けて検証する考え方

たとえば、検証に使うデータを「パラメーターを調整する期間」と「調整後の設定を試すだけの期間」に分けます。後者の期間では、結果を見てからパラメーターを調整し直さないことが重要です。結果を見て調整し直すと、その期間も調整に使った期間になり、別期間で確かめる意味が薄れてしまいます。

MT5のフォワードテスト機能

MT5のストラテジーテスターには、指定した期間の一部をフォワードテスト用に分ける機能があります。公式ヘルプでは、フォワードテストは異なる期間でエキスパートアドバイザーを繰り返し実行するもので、履歴データの特定の領域へのパラメーターフィッティングを避けるための機能と説明されています。フォワード期間は期間全体の1/2・1/3・1/4、または開始日を指定する方法から選べ、期間の後半(新しい側)がフォワードテストに使われます(MetaTrader 5 公式ヘルプ:ストラテジーテスト)。設定項目や画面表示は、利用するバージョンや提供元によって異なる場合があるため、実際の画面と公式ヘルプを合わせて確認してください。

デモ口座での記録と組み合わせる

過去データでの検証に加えて、検証後の期間にデモ口座で同じルールを試し、結果を記録して比べる方法もあります。過去検証とデモでの記録をどうつなげるかは、デモトレードで取引ルールを試す練習法の記事も参考にしてください。デモ口座では実際の取引と約定やスプレッド、心理的な負担が異なる場合がある点にも注意が必要です。

検証結果を読むときの注意点と限界

ここまでの観点を確認しても、過剰最適化の可能性を完全になくすことはできません。確認作業は「数字を過信しないため」のものであり、「安全な手法を見つけるため」のものではない、という位置付けで使うことが大切です。

バックテスト自体の前提と限界

バックテストは、過去の価格データと設定した条件にもとづく計算結果です。実際の取引で生じるスプレッドの変化、約定の遅れやずれ(スリッページ)、取引コストなどが、検証条件と異なる場合があります。検証に使ったデータの期間、スプレッドなどの条件、取引コストの扱いを確認し、成績表にこれらが書かれていない場合は、その結果をどこまで参考にできるか慎重に判断しましょう。

他人が公開している成績表を見るとき

第三者が示す検証結果は、どの期間・条件で検証したのか、パラメーターをどれだけ調整したのか、調整に使っていない期間での結果があるのかを、読み手が確認できないことがあります。検証期間や条件、ドローダウンが示されていない結果は、数字の良さだけで判断しないことが大切です。

⚠️ 検証結果は将来の成果を保証しません
バックテストやフォワードテストの結果は、特定の期間・条件のもとで計算された過去の結果です。過剰最適化の兆候を確認しても、将来の相場で同じ成績になること、損失が出ないこと、検証期間を上回るドローダウンが起こらないことは保証されません。FXは元本を上回る損失が生じる可能性もある取引です。検証結果は判断材料の1つとして扱い、実際の取引では許容できる損失額の範囲で資金管理を行ってください。

よくある質問(FAQ)

カーブフィッティングと最適化は同じ意味ですか?

同じ意味ではありません。最適化はパラメーターの組み合わせを変えながら検証して比べる作業そのものを指し、カーブフィッティング(過剰最適化)は、その作業を過去データに合わせすぎた結果、将来に通用しにくくなった状態を指します。

取引回数は何回あれば検証結果を信頼できますか?

何回以上なら信頼できる、という一律の基準はありません。必要な取引回数は、ルールの条件の数や取引頻度、損益のばらつきによって変わります。取引回数は目安の1つとして扱い、検証期間の長さ、相場環境の違い、調整に使っていない期間での結果と合わせて判断してください。

PFが高いほど過剰最適化を疑うべきですか?

PFが高いこと自体で過剰最適化と判断することはできません。ただし、取引回数が少ない、特定のパラメーターでだけ突出している、調整に使っていない期間で大きく悪化する、といった条件が重なる場合は、合わせ込みの可能性を疑って確認する価値があります。

フォワードテストで良い結果が出れば、過剰最適化の心配はなくなりますか?

なくなるわけではありません。フォワードテストは合わせ込みの有無を確かめる手段の1つですが、フォワード期間もあくまで過去の一時点の相場です。フォワード期間の結果を見てパラメーターを調整し直すと、その期間も合わせ込みの対象になる点にも注意が必要です。

まとめ

バックテストの過剰最適化(カーブフィッティング)は、過去データに合わせてルールやパラメーターを調整しすぎた結果、過去の成績だけが良く見え、将来の相場では同じ結果が出にくくなる状態です。検証結果は1つの数字で判断せず、複数の観点を組み合わせて読むことが大切です。

  • 意味:過去の偶然の値動きまで取り込んだ設定は、将来の相場で優位性を失う可能性がある
  • 確認の観点:取引回数・検証期間・相場環境の違い・パラメーターの感度・最大ドローダウンを合わせて確認する
  • 別期間での確認:調整に使っていない期間やフォワードテスト、デモでの記録と見比べる
  • 限界:どの確認をしても、検証結果は将来の成果を保証しない

手元の検証結果がある場合は、まず取引回数と検証期間、最大ドローダウンを書き出し、PFや期待値を計算し直したうえで、調整に使っていない期間の結果と比べてみてください。

ブログランキング・にほんブログ村へ 人気ブログランキング
ランキングに参加しています!1日1回「ブログランキング」をクリックしていただけると嬉しいです。皆様の応援が更新の励みになります。
コメントは利用できません。

カテゴリー

ページ上部へ戻る