バックテスト基礎
「過剰最適化」を疑うための具体的なチェックリスト
公開 2026.06.15最終確認 2026.06.15
EAのバックテスト結果が良すぎる場合、過剰最適化(カーブフィッティング)の罠に落ちている可能性が高い。未来の相場では機能しない「過去の答え合わせEA」を見抜くためのチェック項目を整理する。
バックテストのグラフが、美しい右肩上がりを描いている。
PFは2.5。最大ドローダウンはわずか5%。月単位で見ても全戦全勝でマイナスの月がない。
「ついに聖杯(完璧なEA)が完成した」
初心者の頃、私はこのグラフを見て小躍りし、すぐにリアル口座に資金を入れた。
結果は言うまでもない。稼働初日から連敗し、美しいグラフは一度も再現されることなく、口座はマイナスになった。
なぜ、バックテストとリアルでこれほど成績が違うのか。
それは私が「未来でも勝てるEA」を作ったのではなく、「過去のデータに完璧に一致させただけのEA」を作ってしまったからだ。
これを「過剰最適化(カーブフィッティング)」と呼ぶ。
EA開発者が一生かけて戦い続ける、最も恐ろしい罠だ。
バックテストが良すぎることへの恐怖
EA開発に慣れてくると、バックテストの成績が「良すぎる」ことに恐怖を感じるようになる。
相場にはノイズがある。理不尽な急騰や急落がある。
それなのに全勝できるということは、「その理不尽な動きを回避するための条件(フィルター)」が、後出しジャンケンでガチガチに組み込まれている証拠だからだ。
過去の理不尽な動きを回避できたとしても、明日起きる「新しい理不尽な動き」は回避できない。条件がガチガチすぎるEAは、少しでも過去と違う動きをすると、途端に機能しなくなる。
だから、過剰最適化を疑う「目」を持たなければならない。
過剰最適化を見抜く7つのチェックリスト
私が新しいEAを評価するとき、必ず以下の項目をチェックしている。
1. PF(プロフィットファクター)が2.0を超えていないか
スキャルピング等の一部例外を除き、PFが2.0を超えるEAは過剰最適化を疑う。1.3〜1.5程度が、未知の相場にも耐えうる「自然な優位性」のラインであることが多い。
2. パラメータの数は5つ以下か
「RSIの期間」「MAの期間」「ボリバンの偏差」「ADXの閾値」「トレーリングストップの幅」……。最適化できる数字(パラメータ)が多いほど、カーブフィッティングは容易になる。パラメータは極力減らすのが鉄則だ。
3. 取引回数は十分にあるか
「フィルターを足しすぎて、月間取引回数が2〜3回になっている」のは過剰最適化の典型。統計が機能する最低でも200回、できれば500回以上の取引履歴があるか。
4. 全月プラス(マイナスの月がない)ではないか
数年間のバックテストで「マイナスの月が一度もない」のは不自然だ。相場環境が変われば必ず負ける月は発生する。適度に負けている月がある方が、逆にリアルだ。
5. アウトオブサンプル(未学習データ)でのテストをしたか
たとえば2018年〜2022年の5年間でパラメータを最適化した場合、その最適化されたパラメータのまま「2023年〜2024年の2年間(EAが知らないデータ)」でテストする。ここでPFが大きく劣化する(1.0を割るなど)なら、それはカーブフィッティングだ。
6. パラメータ感度(ロバスト性)は高いか
損切り幅を30pipsから35pipsにズラしただけで、PFが1.5から0.8に急落するなら、それは「たまたま30pipsが過去のデータに合っていただけ」だ。パラメータを前後10%ほどズラしても、成績が大きく崩れない(ロバスト性が高い)ことを確認する。
7. 他の通貨ペアでも通用するか
ユーロドル専用のEAだとしても、ポンドドルや豪ドル米ドルで回した時に「爆損」しないか(微益やトントンになるか)確認する。ロジックの普遍性を確かめるためだ。
この記事のメモ
「最適化」はEAの性能を引き出すために必要だ。
しかし「過剰」になった瞬間、そのEAは実用性を失う。
カーブフィッティングされたEAを買ってしまったり、自分で作ってしまったりするのは、別に頭が悪いからではない。
「損をしたくない」「綺麗な右肩上がりのグラフを見たい」という人間の心理が、無意識にそうさせてしまうのだ。
だからこそ、客観的なチェックリストで自分にブレーキをかける必要がある。
「このEA、成績良すぎるな。何かやってしまったか?」
そう疑えるようになったら、EA運用者として一つ上のステージに上がった証拠だと思う。
FAQ
Q: アウトオブサンプルテストの期間の割合はどうすればいいですか?
よくあるのは「最適化期間70%:未学習期間30%」などの分割です。たとえば7年間のデータがあるなら、最初の5年で最適化し、残りの2年でテストします。
Q: 最適化機能(オプティマイゼーション)自体を使わない方がいいですか?
使っても構いませんが、「一番成績が良かったパラメータ」を選ぶのは危険です。「その周辺のパラメータでも安定して成績が良いゾーン」の中から選ぶのが基本です。
免責
本記事は個人の検証メモであり、投資助言ではありません。過剰最適化の判断基準は開発者によって異なります。