勝率99.5%でも捨てた
投資の基礎
# 勝率99.5%でも捨てた
前回の記事では、
**「勝てるEA」は簡単に作れる。信用できるEAが難しい**
という話を書きました。
今回は、その中でも象徴的だった出来事を1つ取り上げます。
検証の途中で、
**勝率99.5%**
という設定が出ました。
数字だけ見れば、かなり魅力的です。
でも最終的に、私はその設定を採用しませんでした。
今回は、
**なぜそんな高勝率の設定を捨てたのか**
を、できるだけ具体的に書きます。
---
## 最初は、確かに「良さそう」に見えた
対象は3つの手法でした。
- AEF
- PVRF
- RMB
このうち、AEFとPVRFは最初から生存候補ゼロでした。
一方でRMBだけは、形式上の凍結基準を満たす設定が**4件**残りました。
ここでまず大事なのは、
**この「4件」は4つの別戦略ではない**
ということです。
4つとも、**RMBという1手法の中の4つのパラメータ設定**でした。
この時点では、形式上はこう見えます。
- AEF: 0件
- PVRF: 0件
- RMB: 4件
つまり、
**3手法のうち、RMBだけに4設定の候補が残った**
という構図です。
ぱっと見では、
「RMBは何か掴んでいるのではないか」
と思えます。
しかも、その中には勝率99.5%という設定が含まれていました。
普通なら、かなり心が動く数字です。
---
## ただ、最初の時点で違和感はあった
ここで誤解してほしくないのは、
**感覚だけで捨てたわけではない**
ということです。
実際の流れは3段階でした。
1. **気づき**
数字に違和感を持った
2. **分解**
その数字の内訳を数値で調べた
3. **照合**
過去に確認済みだった劣化パターンと一致するかを見た
つまり、「なんとなく怪しい」で終わらせたのではなく、
**違和感を入口にして、構造を分解し、既知の失敗パターンと照らし合わせた**
という順番です。
この順番がかなり重要でした。
---
## 調べると、4つとも同じ方向に崩れていた
4設定を詳しく見ると、共通していた特徴がありました。
---
### 1. 出口がグリッド端に張り付いていた
4設定はすべて、
**TPが最小、SLが最大**
という形に張り付いていました。
これは検証上かなり危険な形です。
利確は極端に近く、損切りは極端に遠い。
この形だと、
- 小さな利益は取りやすい
- 大きな損失はたまにしか出ない
ので、見た目の勝率が異様に高くなりやすい。
つまり、
**勝率が高いから優れている**
のではなく、
**そう見えやすい出口形状になっていた**
可能性が高いわけです。
---
### 2. 勝率99.5%の裏側は、負け/勝ち比15.7倍だった
勝率99.5%という数字だけを見ると、ほとんど負けない戦略に見えます。
でも実態は違いました。
この設定では、
**負け1回あたりの大きさが、勝ち1回の15.7倍**
ありました。
つまり構造としては、
- 普段は小さく勝つ
- ごくたまに大きく負ける
です。
勝率だけ見れば魅力的でも、
損益構造としては非常に偏っています。
ここで見えてくるのは、
**勝率の高さと、戦略の質は別問題**
だということです。
勝率99.5%は、強い予測力の証拠とは限りません。
単に、
**小さな勝ちを積み上げる代わりに、大きな負けを後ろへ押しやっているだけ**
かもしれない。
このケースは、まさにそう読める構造でした。
---
### 3. BEあり/なしで結果が変わらなかった
さらに決定的だったのが、BEの扱いです。
BEは建値移動、つまり含み益がある程度乗った後に損切り位置を建値へ移す設定です。
普通に考えると、BEあり/なしで結果は多少変わるはずです。
ところがこの4設定では、
**BEありでもBEなしでも結果が変わりませんでした。**
これは「なんとなく不自然」だったのではありません。
理由ははっきりしていました。
**SLが最大側に張り付いていて遠すぎたため、BEの発動条件に到達しなかった**
のです。
言い換えると、
- TP最小×SL最大という構造
- BEを入れても結果不変
は別々の異常ではありません。
**どちらも「出口を広げ切っただけ」という同じ原因の別症状**
でした。
ここが分かった時点で、この設定はかなり危ういと判断しました。
---
### 4. 4設定あるように見えて、実質かなり重複していた
さらに調べると、RMBのN=30とN=60で発生していたエントリーは、
**Jaccard重複率 0.976**
でした。
これはかなり高い数字です。
要するに、
**4設定が残っているように見えても、実際にはほぼ同じ場所で入っている**
ということです。
別々のアイデアが4本残ったわけではありません。
1手法の近い設定が、ほぼ同じシグナルを出していただけでした。
この時点で、
「4件残った」
「複数の勝ち筋がある」
という見え方は、かなり崩れます。
---
## 既知の劣化パターンと一致した
ここまでの分解で見えたのは、次の**5点**です。
1. **TP最小×SL最大**
2. **勝率99.5%**
3. **負け/勝ち比15.7倍**
4. **BEあり/なしで結果不変**
5. **N=30/60間でエントリー重複率0.976**
そして重要だったのは、
これらがその場で初めて見つかった異常ではなかったことです。
すでに別の検証で、
**「見かけ上は強く見えるが、実質的には劣化している」**
パターンを確認済みでした。
今回の4設定は、その既知パターンと一致していました。
つまり判断は、
「なんとなく怪しいから捨てた」
ではなく、
**過去に確認済みの失敗パターンに照合した結果、採用しなかった**
ということです。
その結果、
RMBの4設定はすべて実質的に棄却し、
**3手法合計の生存候補はゼロ**
と判断しました。
(出典: `hypothesis_backlog.md:2320-2331, 2366-2367`)
---
## 「高勝率だから捨てた」のではない
この話を一言でまとめると、
**勝率99.5%だから捨てたのではありません。**
むしろ逆です。
**なぜ99.5%になったのかを調べた結果、信用できなかったから捨てた**
のです。
もし本当に質の良い優位性なら、
- 出口が極端な端に張り付かない
- BE設定が意味を持つ
- 似た設定が完全に同じ結果になりすぎない
- 実質的に同じシグナルを4回数えているだけではない
といった形になるはずです。
ところが今回は、そこが全部逆でした。
だから採用しませんでした。
---
## この経験から、自動検出の仕組みを作った
この件は、単に「1回捨てて終わり」ではありませんでした。
同じ見かけの生存を繰り返し拾わないために、
後から
- グリッド端への張り付き
- 勝率と損益比の極端な非対称
- BE不変性
などを検出する仕組みを追加しました。
(出典: `hypothesis_backlog.md:2330, 2366-2367`)
つまりこの件は、
1つの戦略を捨てた話であると同時に、
**「どういう候補を機械的に疑うべきか」**
という監査ルールを作るきっかけにもなりました。
ここがかなり大きかったと思います。
---
## PF>1も同じだった
第1回でも触れましたが、似たことはPFでも起きました。
別の拡張グリッドでは、
PF>1.0を通過した1,728セルのうち、
**1,714セル、99.2%**
が、TPとSLの極端な非対称性による数学的なアーティファクトでした。
(出典: `hypothesis_backlog.md:6362-6373`)
つまり、
勝率だけではありません。
PFも、条件によっては「良く見えるように作れる」。
だから今は、
> PFはいくつだったか?
より先に、
> ランダムに入っても、同じ出口なら似たPFにならないか?
を見るようになりました。
---
## 良い数字を出すことと、信用できることは別
自動売買を作っていると、
どうしても良い数字が出た瞬間に気持ちが前へ行きます。
- 勝率が高い
- PFが高い
- 右肩上がりに見える
どれも魅力的です。
でも、その数字が
**どういう構造で出ているのか**
を見ないまま採用すると、
あとで痛い目を見ます。
今回の勝率99.5%は、まさにその典型でした。
数字としては派手です。
でも構造を見ると、
**予測力の強さではなく、出口の偏りが作った見かけの優秀さ**
でした。
だから捨てました。
---
## 今回の話で一番大事なこと
今回いちばん言いたいのは、
**良い数字を見たときほど、その数字を壊しにいくべきだ**
ということです。
自動売買の開発で難しいのは、
「良さそうな結果を出すこと」ではありません。
難しいのは、
**その結果が本当に信用できるかを、自分で否定しにいくこと**
です。
勝率99.5%という数字は強いです。
でも、強い数字ほど、強く疑う。
その姿勢がないと、バックテストは簡単にこちらを騙します。
---
## おわりに
前回の記事では、バックテスト全体の罠について書きました。
今回はその具体例として、
**勝率99.5%でも採用しなかった理由**
を書きました。
今後もこのシリーズでは、
- 良さそうに見えた仮説がどう壊れたか
- 論文由来の仮説が実市場でどう崩れるか
- 検証コードや評価方法の欠陥がどう結論を変えるか
といったことを、実例ベースで書いていくつもりです。
「勝てた話」より、
**なぜ捨てたか**
の方が、結果的に役に立つことも多いと思っています。
同じようにEAやバックテストをしている方にとって、何かヒントになれば嬉しいです。
※本記事は、特定のEA・金融商品・個別の売買判断を推奨するものではありません。実際に行った検証と、その検証方法について記録したものです。
※本記事はnoteで公開した記事を、一部調整して再掲載しています。