カーブフィッティングとは?過剰最適化された手法の見抜き方
カーブフィッティング(過剰最適化、オーバーフィッティングとも呼ばれます)とは、テストに使った過去データに、そのデータのノイズまで含めてぴったり合うよう、手法のパラメーターを調整することです。できあがった手法は過去を正確に描き出しますが、何も予測できません。テストでは素晴らしく見えたシステムが、実運用を始めたその月に損を出す原因として、いちばんよくあるものです。
仕組み
調整できる入力が1つ増えるたびに、自由度が1つ増えます。値の組み合わせを総当たりで探すとき、テストしているのは1つの手法ではありません。組み合わせの数だけ実験をしているのです。
実験の回数 = v1 × v2 × ... × vk
パラメーター4つ × それぞれ15通り = 50,625回のバックテスト
50,625回の中の最良の結果が選ばれるのは、一部は優位性のおかげ、
一部はたまたま当たったノイズのおかげ
決まった過去データに対して実験を重ねるほど、勝者がその順位を運に負っていることは確実になっていきます。テスターはそれを報告しません。勝者を、まるで唯一の候補だったかのように報告します。
見抜くためのサインは4つあります。おおむね信頼できる順に挙げます。
- パラメーターの崖:設定を1目盛りどちらかに動かしただけで、成績が崩れます。本物の優位性はなだらかに劣化しますが、フィッティングされた優位性は一気に崩れ落ちます。期間47でしか機能しない移動平均線は、その典型例です。
- サンプルに対してパラメーターが多すぎる:入力が6つあるルールを150件の取引で検証しても、データが足りず決めきれません。目安となる決まった比率はありませんが、パラメーターが多いほど危ないという点に異論はありません。
- 不自然になめらかなエクイティカーブ:本物のリターンはギザギザです。バックテストでほぼ一直線の右肩上がりになっているなら、たいていはパラメーターがフィッティングされているか、負けトレードを決済しないことで生き延びているシステムです。
- アウトオブサンプルでの崩壊:最適化に使った期間では成績が保たれ、その外に出ると消えてしまいます。これが決定的な検証ですが、決定的なのは、アウトオブサンプルのデータを初めて見るときだけです。
なぜ重要か
カーブフィッティングされたシステムは、特有の、しかも高くつく形で失敗します。最初からじわじわ負けるわけではありません。相場が最適化期間に似ているうちはそれなりに動き、相場環境が変わったところで壊れます。それも、たいていはロットを大きくしているときにです。トレーダーはそれを不運と受け止めますが、実際にはモデルが作られたとおりの動きをしただけです。
解決策は、もっと巧妙なテストではありません。実際のスプレッド、手数料、スリッページを含んだ実運用の記録です。それも、開発者が一度も見たことのない相場をくぐり抜けるだけの長さが必要です。
実データから見えること
ShowMyTradesで取引履歴のある公開口座(2026年8月時点)では、プロフィットファクターの中央値が1.28、最大ドローダウンの中央値が9.7%、口座あたりの決済済み取引の中央値が171件です。
この3つの数字が、比較の基準にすべき正直な分布です。口座の38.2%はドローダウンが20%を超えたことがあり、17.6%は50%を超えています。プロフィットファクター3.0超、最大ドローダウン4%をうたう手法があるなら、それは腕前を主張しているのではありません。1,540万件の同期済み取引から作られた分布の外側にいる、と主張しているのです。その主張が正しいこともあります。ただし証拠が必要で、その証拠は実運用の記録です。
決済済み取引の中央値171件という数字は、別に覚えておく価値があります。何かを検証するには小さすぎるサンプルである一方、ほとんどの実口座が実際に評価されるときのサンプルでもあるからです。
ShowMyTradesで確認できる場所
チャート表示の取引ごとの収益率チャートは、日付ではなく取引の番号を横軸にして描かれます。長い休止期間が成績をよく見せる効果を取り除き、口座がいまも機能しているのか、単に開いたままになっているだけなのかをはっきりさせます。月次リターン表には、赤字の月も「取引なし」の空白もすべて表示されます。成績の悪い月のあとでこっそり再最適化された手法は、たいていそこに目に見える空白を残します。
詳細統計では、プロフィットファクターを標準偏差、Zスコア(確率)と並べて読んでください。プロフィットファクターが高いのに取引ごとのリターンが不自然にそろっているなら、多様な相場をくぐり抜けてきたにしてはなめらかすぎる口座です。1つの期間に合わせて作られたパラメーターは、まさにそういう姿を生みがちです。カスタム分析パネルのマジックナンバーとコメントフィルターを使えば、複数の手法が動く口座から1つのEA(エキスパートアドバイザー)だけを取り出し、その統計だけを読めます。運用実績認証済みバッジ(現在65口座)は、データがレポートファイルではなく、ブローカーから取得されたものであることを裏付けます。
よくある誤解
- 「アウトオブサンプルでも通用した」:アウトオブサンプルの結果を見て何かを調整した時点で、そのデータはインサンプルになります。見られるのは1回だけです。
- 「過去データを長くすれば過剰最適化は防げる」:大事なのは暦の上の期間ではなく、自由に動かせるパラメーターの数に対する観測数の比率です。年数を足しながらフィルターも足していけば、かえって悪化することもあります。
- 「ウォークフォワード分析で解決できる」:問題を小さくはできますが、同じ問題を再現してしまうこともあります。同じ銘柄で期間ごとに再最適化を繰り返すのも、結局は1つの過去データの中を探索しているにすぎません。
- 「実運用なのだから、カーブフィッティングのはずがない」:つまずくたびに調整し直しているシステムは、本番の口座でフィッティングされているのと同じです。口座は本物でも、優位性はいまも後付けで作られ続けています。
この問いに決着をつけられる記録と、つけられない記録の違いについては、認証済みと未認証の運用実績の違いを読んでください。
関連用語
プロフィットファクター (Profit Factor)
プロフィットファクターは総利益を総損失で割った値です。1.0を下回る口座は、計算の仕組み上かならず損をしています。目安となる区分と、数千口座の中央値1.28を紹介します。
認証済みの運用実績 (Verified Track Record)
認証済みの運用実績とは、読み取り専用の連携でブローカーから直接、途切れなく取得した成績データのこと。公開する本人が編集できる部分はどこにもありません。
バックテスト (Backtesting)
バックテストは、過去の価格データで売買手法をシミュレーションすることです。何を証明でき、何を証明できないのか、そしてブローカーと同期した実運用の結果がほぼ必ず食い違う理由を解説します。