EA開発で一番やってはいけないこと、それが「カーブフィッティング」です。
バックテストをしていると、どうしても「もっと良い結果を出したい」と思ってしまうものです。
パラメータを調整して、PFが上がり、ドローダウンが減り、勝率が改善される。
ですが、その“綺麗な結果”こそが罠です。
今回は、EA開発を実際に3本(GENESIS・凜・AXIS)作ってきた中で、何度も直面したカーブフィッティングの危険性と、回避するための考え方を解説します。
カーブフィッティングとは何か
カーブフィッティングとは、過去のデータに過剰に最適化してしまうことです。
簡単に言えば、
・過去には完璧に勝てる
・でも未来では通用しない
という状態です。
EAのバックテストは、過去チャートに対してロジックを当てて検証します。
この時にパラメータを何度も調整すると、「過去の特定の相場だけに最適化された設定」が出来上がります。
つまり、
「未来に通用するロジック」ではなく
「過去に合わせただけのロジック」
になってしまいます。
バックテストについてはこちらで詳しく触れています。
なぜカーブフィッティングが起こるのか
原因はシンプルです。
“良い数値を追いすぎること”
・PFを上げたい
・DDを下げたい
・勝率を高くしたい
この意識自体は正しいのですが、過剰になると危険です。
実際、GENESISの初期開発では、PF1.6近い結果が出たことがあります。
しかしフォワードに回すと、あっさり崩れました。
理由は明確で、「過去に合わせすぎていた」からです。
実体験:3つのEA開発で見えた「罠」
GENESISの場合
最初はブレイク条件を細かく調整し、PFをひたすら上げていました。
結果としてバックテストは非常に美しい右肩上がり。
ですが実運用では、エントリーが減り、トレードの再現性も低下。
「勝てる条件が限定されすぎていた」状態でした。
最終的には条件をシンプルに戻し、PFよりも安定性を優先しています。
凜の場合
アノマリー要素を強く入れすぎた結果、特定の期間だけ異常に成績が良くなる状態になりました。
一見すると優秀ですが、期間をずらすと一気に崩壊。
典型的なカーブフィッティングです。
ここから「特定条件に依存しすぎない設計」に大きく舵を切りました。
AXISの場合
ロット可変ロジックで最適化を進めた際、バックテストでは異常に滑らかな資産曲線が出ました。
しかしこれは、ロット調整が“過去の値動きに適応しすぎていた”結果。
最終的に固定ロット+シンプルな構造に戻し、再現性を優先した設計に変更しています。
カーブフィッティングの典型的な特徴
以下に当てはまる場合、ほぼカーブフィッティングです。
・PFが異常に高い(1.5以上)
・取引回数が極端に少ない
・特定期間だけ爆発的に利益が出ている
・パラメータが細かすぎる
・期間をずらすと崩れる
これらはすべて、「過去への最適化」のサインです。
回避するための考え方
重要なのは、「良い結果」ではなく「再現性」です。
具体的には以下を徹底します。
①シンプルなロジックにする
複雑にするほど過去に最適化されやすくなります。
②期間を分けて検証する
インサンプルとアウトサンプルを分けて確認することで、過剰最適化を見抜けます。
③取引回数を確保する
母数が少ないと、偶然の勝ちを拾ってしまいます。
④PFよりDDを見る
PFは簡単に“作れる数値”です。
DDは誤魔化しが効きません。
PFの見方についてはこちら。
最大DDについてはこちらで詳しく解説しています。
⑤フォワードテストで確認する
最終判断は必ずフォワードです。
ここで崩れるEAは、本質的に使えません。
EA-Labの結論
EA開発において最も重要なのは、「長く生き残るロジックを作ること」です。
GENESIS・凜・AXISの開発を通して、共通して辿り着いた答えはシンプルでした。
・シンプルであること
・再現性があること
・過去ではなく未来を見ていること
カーブフィッティングを避けることは、単なるテクニックではなく「思想」です。
ここを外したEAは、どれだけ綺麗なバックテストでも必ず崩れます。
逆にここを徹底すれば、PF1.2前後でも長期で勝てるEAになります。
まとめ
・カーブフィッティングは“過去に最適化されただけのEA”
・綺麗なバックテストほど危険
・重要なのは再現性と安定性
・シンプルなロジックこそ強い
EAで勝ち続けるためには、「良い結果を作る」のではなく「壊れないロジックを作る」ことがすべてです。
【関連記事】EAの評価に関する重要記事
EAを評価する際は、プロフィットファクター(PF)だけでなく、最大ドローダウン(DD)や取引回数など複数の指標を総合的に確認することが重要です。まずはこちらの記事をご覧ください。
