バックテストの過剰最適化:優れたバックテストでも失敗する理由 | Traseq ブログリサーチ手法バックテストの過剰最適化:優れたバックテストでも失敗する理由
カーブフィッティングがバックテストをイン・サンプルで優秀に見せながらライブで失敗させる仕組み、注意すべき兆候、そしてバージョンの追跡可能性が過剰最適化を可視化する方法。
Traseq··1 分で読めます バックテストは、きれいな資産曲線、高い勝率、強いリターンを示しながら、ほとんど有用なことを何も教えてくれない場合があります。その原因が過剰最適化です。戦略を、ある期間の履歴に含まれるランダムなノイズに合うまで調整すると、結果はそのデータ上では優秀に見え、条件が変わった瞬間に崩れます。良い戦略と運の良い戦略を見分けることは、最も重要なリサーチスキルであり、バックテストが存在する理由そのものです。
Traseq はライブトレードや取引所での執行プラットフォームではなく、リサーチ向けのワークスペースです。注文を出したり、取引所アカウントに接続したり、パフォーマンスを保証したりはしません。本記事の狙いは保証の逆です。良すぎる結果を疑えるようになることが目的です。
過剰最適化(カーブフィッティング、または over-optimization)は、戦略が市場の根底にある振る舞いではなく、特定の過去データそのものを記述してしまう状態です。あらゆる価格系列には2つのものが含まれます。シグナル(利用できるかもしれない再現性のある構造)と、ノイズ(繰り返さないランダムな揺れ)です。調整するノブが多く、単一のバックテストを最大化するほど、ルールは結局ノイズを説明するようになります。
ひとつのアイデアを検証可能なバージョンに変える。
ノーコードの暗号資産現物戦略から始め、バージョンを固定し、バックテストを実行し、比較のために結果を追跡可能に保ちます。
厄介なのは、過剰最適化が バックテストの数値を改善してしまう ことです。フィルターを追加する、しきい値を少しずらす、悪い月を除外する——こうした操作はほぼ必ずイン・サンプルの数値を引き上げます。だからこそ、優れたバックテストは良い戦略の証拠にはなりません。それは単に、履歴に十分なだけフィットさせた証拠かもしれないのです。
頑健な戦略はその逆です。イン・サンプルの完璧さを多少手放す代わりに、一度も見ていないデータでも崩れない振る舞いを得ます。
過剰最適化はリターンを見つめても気づけません。結果が どのように 生み出され、どれほど脆いかを見て初めて気づけます。次の兆候に注意してください。
| 兆候 | なぜ過剰最適化を示すのか |
|---|
| パラメータが多すぎる | ルックバック、しきい値、ストップ、フィルターは、いずれもノイズに合わせる自由度です。調整された数値が8個もあれば、ほぼ何にでも当てはめられます。 |
| 不自然なほど滑らかな資産曲線 | 本物の戦略には連敗があります。ノイズの多い市場でほとんどドローダウンのない曲線は、特定の過去の損失を避けるようルールが形作られた印です。 |
| 日付や手数料を変えると崩れる結果 | 開始日を数週間ずらしたり、現実的な手数料・スリッページを加えたりするだけで勝ち組が負け組になるなら、そのエッジは元々頑健ではありません。 |
| トレード数が極端に少ない | 数件のトレードでは、実力と運を区別できません。9件で築かれた「優れた」結果はほとんどノイズです。 |
| 1つの数値を追って何度も微調整した履歴 | ルールを何十回も編集し、バックテストのリターンを上げたものだけ残したなら、最適化したのは市場ではなくワークスペースです。 |
なぜ少ないサンプルが過剰最適化を招くのか
少ないトレード数は、最もよくある、そして最も過小評価された罠です。Traseq の Learn ハブのインタラクティブデモは、3つの教科書的なテンプレートを、2024-11-03 から 2024-12-31 の実際の BTC/USDT 1h 足で動かします。RSI Mean Reversion テンプレートはこの期間を +1.74% で終えましたが、それに要したのはわずか 9件 のトレードでした。
9件は信頼に足りません。そのうち1〜2件を入れ替えたり、期間を1週間ずらしたりするだけで、リターンは簡単にマイナスへ転じ得ます。これほどサンプルが少ないと、RSI のしきい値を、この特定の期間でたまたま勝ちトレードを捉え負けトレードを避けるまで調整して結果を「改善」できてしまいます——そしてルールが通用するかについては何も学べません。バックテストが生み出すトレードが少ないほど、単一の結果は偶然に支配され、ノイズに合わせるのが容易になります。
飾りのない、未調整の結果がどう見えるかを知るのは役立ちます。同じ荒れた2か月の期間で、3つのデモテンプレートを最適化せずそのまま動かしました。
| テンプレート | リターン | 勝率 | トレード数 | プロフィットファクター |
|---|
| SMA(200) Trend Filter | -6.89% | 22.7% | 22 | 0.36 |
| RSI Mean Reversion | +1.74% | 44.4% | 9 | 1.12 |
| Donchian Breakout | -10.27% | 34.5% | 29 | 0.66 |
この期間はラリーのあとの横ばいから下落の揉み合いで、結果にもそれが表れています。トレンド/ブレイクアウトの2つは差し引きで損失となり、平均回帰はかろうじて損益分岐に届いただけでした。これはデモの失敗ではなく、正直な姿です。危険なのは、線が上を向くまでフィルターを足してどれでも「直せて」しまうことです。その編集された結果は優秀に見え、何の意味も持ちません。規律とは、ルールをシンプルに保ち、正直な数値を受け入れ、バックテストを判決ではなく問いとして扱うことです。
過剰最適化をなくすことはできませんが、自分を欺くのをずっと難しくはできます。
- パラメータを減らす。 アイデアを表現する最小のルールから始めます。ノブを加えるのは、バックテストが上がったからではなく、なぜ それが効くはずかを説明できるときだけにします。
- アウト・オブ・サンプルでテストする。 履歴のあるスライスで調整し、一切触れていないスライスでテストします。エッジが生き残れば、本物である可能性が高まります。詳しい手法は イン・サンプルとアウト・オブ・サンプルのテスト を参照してください。
- 頑健性チェックを行う。 時間軸(
1h、4h、1d)を横断し、異なる日付範囲や相場局面で再実行します。頑健な戦略は緩やかに劣化し、過剰最適化された戦略は崩壊します。
- パラメータ感度を確認する。 各しきい値を少し上下させます。わずかな変更で結果が壊れるなら、その戦略は特定のデータセットの刃の上で釣り合っているだけです。
- 現実的な手数料とスリッページを加える。 コストは最も安価な現実確認です。多くの「エッジ」は、支払っていない取引コストにすぎません。
- 十分なトレード数を求める。 小さなサンプルに基づく結論は疑ってかかります。より多くの条件にわたるより多くのトレードが、運を排除しやすくします。
関連する注意として、高い勝率は最も過剰最適化を向けやすい数値の1つですが、それでも損失を出すことがあります。高い勝率でも損失を出す理由 を参照してください。
過剰最適化は、バージョン間の隙間に潜みます——数値を追って加え、そして忘れた小さな編集です。Traseq はその隙間を閉じるために作られています。
- バージョンの追跡可能性。 すべてのバックテストは確定した戦略バージョンに結び付くため、v1、v2、v3 の間でどのノブを回したかを正確に確認できます。3つのフィルターを足して1か月を除外したあとにだけリターンが上がったなら、バージョン履歴がそれを示します。ワークフローは リサーチの追跡可能性と戦略のバージョン管理 を読んでください。
- 比較セット。 1枚の飾られたスクリーンショットを信じる代わりに、バージョンを並べてリターン・ドローダウン・条件・期間をまとめて比較します。1つの日付範囲や1つの時間軸でしか勝てない結果は、たちまち露呈します。バックテスト結果の比較方法 を参照してください。
- 再現可能な実行。 確定したバージョンは正確なルールと実行設定をロックするため、同じロジックを新しい日付範囲で再テストし、エッジが本物だったか作られたものだったかを確認できます。
編集の全体の連鎖を見られることこそが、「優れたバックテストがある」を「この戦略が良かったのか、単に運が良かったのかを見分けられる」へと変えてくれます。
直感を養う最速の方法は、正直な結果が動く様子を見ることです。サインアップ不要の インタラクティブデモ を動かし、前提のわずかな変更が結果をどう動かすかを見てから、Core Concepts を読んで、すべての実行の背後にある執行モデルを理解してください。
バックテストの過剰最適化とは何ですか?
過剰最適化とは、戦略が再現性のある市場の振る舞いではなく、ある期間の履歴データのランダムなノイズに合わせて調整される状態です。バックテストはイン・サンプルでは優秀に見えますが、ルールが繰り返さない細部に合わせて形作られているため、新しいデータでは戦略が失敗します。
カーブフィッティングと過剰最適化はどう違いますか?
両者は同じ問題を指します。「カーブフィッティング」は特定の価格経路をなぞるようルールを形作ることを、「過剰最適化(over-optimization)」は単一のバックテストを最大化しようとパラメータを調整しすぎることを強調します。いずれも市場ではなく過去に合わせた戦略を生みます。
自分の戦略が過剰最適化かどうかをどう見分けますか?
目立つリターンではなく兆候を見ます。調整されたパラメータが多すぎる、不自然に滑らかな資産曲線、極端に少ないトレード数、そして日付範囲を変えたり現実的な手数料を加えたりすると崩れる結果です。わずかな変更で壊れるなら、おそらく過剰最適化です。
なぜ少ないトレード数が過剰最適化を引き起こすのですか?
トレードが数件しかないと、運が結果を支配するため、単一の数値は信頼できません。9件で正のリターンを出した戦略も、2件ほど入れ替えれば簡単にマイナスに転じ得ます。トレードが少ないと、しきい値をその1つの期間で勝ちトレードを捉えるまで調整するのも容易になります。
Traseq は過剰最適化の検出をどう助けますか?
Traseq はすべてのバックテストを確定した戦略バージョンに結び付けるため、各実行の背後にある正確なパラメータが記録され、比較セットでパフォーマンス・リスク・条件・期間にわたってバージョンを並べられます。ノブを足したり日付範囲をつまみ食いしたりしたからこそ結果が改善したのだ、ということが可視化されます。
ノーコードのバックテストツール:何を見るべきか(2026年版)