フォレックスのバックテスト&フォワードテストにおける過学習
過学習とは?
過学習とは、モデルが過去データの細部に非常に密に適合してしまい、再利用可能な本質的な振る舞いを表さなくなる状況です。新しい市場環境でも持続しうる一般的な関係を学習するのではなく、モデルがサンプル固有のパターンを学習してしまいます。
フォレックスのバックテストでは、過学習はしばしば、モデルを構築または調整するために使った歴史的期間での強いパフォーマンスとして現れます。しかし、同じモデルを後の(アウト・オブ・サンプル)データで評価すると、たとえばフォワードテスト中に、結果が悪化することがあります。この不一致こそが中核となる警告サインです。良いバックテスト結果だけでは、モデルが汎化できることは保証されません。
バックテストとフォワードテストで過学習が起きる仕組み
アルゴリズム戦略の典型的なワークフローには、次のような流れがあります。
- 入力の選択(たとえば、価格データから導出したインジケーターや特徴量)
- ルールまたはパラメータの選択(たとえば、しきい値、参照期間、フィルター)
- 歴史データでのパフォーマンス評価(バックテスト)
- 新しいデータでのパフォーマンス確認(フォワードテスト)
調整の過程が、将来データのためではなく、歴史データセットのためにモデルを最適化してしまうと、過学習が生まれます。これはいくつかのメカニズムによって起こりえます。
1) モデルの複雑さと柔軟性
より柔軟なモデルは、ノイズを含むより多くの構造を捉えられます。フォレックスでは、ノイズとは、再現性をもって繰り返されない価格の不規則な変動です。非常に柔軟な設定は、たとえその変動に安定した原因がなくても、過去の変動への適合をより良く見せてしまう可能性があります。
2) 自由度が多すぎる
「自由度」とは、モデリング過程で調整可能な選択肢の数を意味します。同じ歴史的期間に対して測定された結果を改善するために設定を繰り返し調整すると、偶然うまくいく組み合わせを実質的に探索してしまうことになります。
3) 同じ評価データの繰り返し再利用
バックテスト期間を何度も使ってパラメータを洗練させると、評価が汚染されるリスクがあります。歴史データが意思決定ループの一部になってしまうため、報告されるパフォーマンスが、その特定の期間について学習した結果を反映している可能性があります。
4) 最も有利な結果へ向かう選択圧
ワークフローに探索や最適化のステップ(たとえ手動でも)が含まれている場合、少なくとも一部のパラメータセットが歴史記録上で有望に見える確率が高まります。過学習とは、その「有望に見えた」結果が持続しない状況です。
限界とリスク:何がうまくいかないのか
バックテスト指標は誤解を招きうる
バックテストは、歴史サンプルに対するモデルの振る舞いを測定します。モデルがサンプル固有のノイズを学習している場合、バックテストでは収益性、強いリスク調整後指標、あるいは滑らかなエクイティ成長が示されるかもしれません。しかし、これらはサンプル依存の観察です。
フォワードテストは、リアルタイムでの不確実性を追加します。市場レジームは変化し、流動性やボラティリティ条件も変わり、モデルは歴史上のときとは異なる反応をする可能性があります。
汎化は保証されない
モデルがアウト・オブ・サンプルで良好に機能していても、その後に失敗することはありえます。過学習は汎化を低下させますが、市場はあらゆる戦略に影響する形で進化することもあります。将来の条件は不明であるため、過学習リスクは確実性ではなく確率の問題として扱うべきです。
最適化が「過学習を隠す」ことがある
モデルは、あるホールドアウト区間では許容できるように見えても、他の将来区間では失敗することがあります。これは、ホールドアウトが代表的でない場合、またはランダム性によってたまたま有利な期間が生じた場合に起こります。
評価アプローチの比較:バックテスト vs フォワードテスト
どちらのアプローチも有用ですが、答える質問が異なります。
バックテスト(イン・サンプルおよびニア・サンプル)
- 強み:既知の歴史データ上で戦略がどう振る舞うかを明らかにできます。
- 限界:ノイズに適合するモデルを評価してしまうことがあります。
- 重要なリスク:パフォーマンスが、再現可能な構造ではなく調整の意思決定を反映している可能性があります。
フォワードテスト(後の期間におけるアウト・オブ・サンプル)
- 強み:調整中にモデルが使わなかったデータ上での振る舞いを測定します。
- 限界:結果は依然としてサンプル依存です。単一のフォワードウィンドウが将来の変動性を代表するとは限りません。
- 重要なリスク:評価期間が短すぎる、または多様でない場合、本当の安定性の問題を見逃す可能性があります。
過学習の予防は「分離」に依存する
考え方として実用的なのは、評価データが調整の意思決定とどれだけ重なっているかが大きいほど、改善がサンプル固有の当てはめによるものだというリスクが高まる、という点です。
モデルが過学習しているかを評価する方法
1つの数値に頼るのではなく、一貫性チェックを使いましょう。過学習は汎化の不良に関するものなので、条件や時間をまたいだ安定性を探します。
よくある独立したチェックには次が含まれます。
- 複数の時系列分割: 1つ以上のアウト・オブ・サンプル期間で評価する。
- 設定への感度: 小さなパラメータ変更で結果が大きく変わるなら、それは脆さを示している可能性があります。
- 単一の市場レジームへの依存を減らす: あるタイプのボラティリティ環境でしか機能しない戦略は、過学習している可能性があります。
- 同じ期間での繰り返し調整を避ける: 調整と最終評価の間に、きれいな分離を保つ。
不確実性は残ります。強い評価であっても、その後の将来パフォーマンスが弱くなることはありえます。目的は不確実性を完全に排除することではなく、歴史的結果がノイズへの当てはめから生じた可能性を減らすことです。
なぜフォレックスで過学習が重要なのか
フォレックスは、時間の経過とともに変化するボラティリティ、変動するスプレッド、そして市場ダイナミクスの移り変わりによって特徴づけられます。これらの変化は、本当に安定した関係を見つける難しさを高めます。
過学習が存在すると、戦略は開発中は有効に見えても、市場が新しいレジームに入ると劣化することがあります。観測された歴史的な成功と、その後のパフォーマンスのギャップこそが、過学習が説明するまさにその内容です。
より深い文脈が必要なら、フォレックスのバックテスト&フォワードテストに関する関連する概要を読むことができ、さらに過学習の限界に焦点を当てた別資料もあります。
DOCUMENT END