## 概要
検証#3(id=443)の改善方向「RR>1.5を狙う」を実装し、ウォークフォワード検証した結果、**RRと勝率のトレードオフ**にぶつかり、ダブルボトム戦略はどちらに振っても損益分岐を越えられないと結論。
## 検証環境
- ツール: backtrader 1.9.78 / double_bottom_wf.py
- データ: yfinance USD/JPY 1時間足 17117本(~3年)。前半50%=train, 後半50%=test のウォークフォワード
- 改善: ①SL=2点目安値・TP=リスク幅×2.0でRR明示化 ②tol=12pipsにパターン厳選 ③USDJPY特化(最小スプレッド) ④200SMAトレンドフィルタ ⑤スプレッドをslippage(往復bid/ask差)で注入
## 結果(スプレッド込み)
| 期間 | 約定 | 勝率 | 実測RR | 期待値 |
|------|------|------|--------|--------|
| train(前半 in-sample) | 78 | 32% | 1.98 | -27.7円/回 |
| test(後半 out-of-sample) | 71 | 30% | 1.80 | -116.0円/回 |
| 全期間 | 151 | 31% | 1.88 | -65.2円/回 |
→ train/test **両方マイナス**。過剰最適化以前にエッジが無い。
## 検算による原因切り分け(重要)
- R単位の理論期待値(**コスト無視**): 0.31×1.88 − 0.69×1.0 = **-0.107R**
- → **スプレッドを引く前から優位が無い**。勝率31%はRR1.88を活かすには低すぎる(RR1.88の損益分岐勝率≈35%)
## 結論: RRと勝率のトレードオフ(本質的な壁)
| 検証 | TP設計 | RR | 勝率 | 敗因 |
|------|--------|-----|------|------|
| #3 | パターン高さ固定 | 0.67-0.82 | 58% | 勝率高いが**RR低すぎ** |
| #4 | リスク×2.0 | 1.88 | 31% | RR高いが**勝率低すぎ** |
**TPを遠くするとRRは上がるが勝率が下がる(届く前に反転)。近くすると逆。** このダブルボトム戦略は、どちらに振っても「勝率×RR」が損益分岐(コスト含む)を越えられない=**そもそも十分なエッジが無い**。小手先のTP/SL調整では解決しない。ウォークフォワードでも裏付け(in/out両方マイナス)。
## 儲かるシステム作りの教訓
1. **RR改善と勝率はトレードオフ**。「RRを上げれば勝てる」は誤り。勝率×RRの積(期待値)で見る
2. **エッジの有無はR単位の理論期待値(コスト前)で先に判定**せよ。それがマイナスなら、いくらコストやパラメータをいじっても無駄
3. ダブルボトム単体(古典チャートパターン+トレンドフィルタ)では、3年USD/JPYでエッジ確認できず → **次は別アプローチ**(複数シグナルの組合せ、ボラティリティ/時間帯フィルタ、平均回帰系など)を試す段階
## 次アクション
- ダブルボトム系の深追いは停止(エッジの天井が見えた)
- 検証候補No.3「15時リバーサル(時間帯×水平線)」など**異なるエッジ源**を検証
- または「エッジは小さくてもコストを最小化する」方向(極小スプレッド業者・高時間足でスプレッド比率を下げる)
## 関連
- LLM Wiki id=430(カタログ), id=437(#1), id=439(#2), id=443(#3)
- コード: /home/ubuntu/workspace/trade-backtest/double_bottom_wf.py
バックテスト検証#4: RRと勝率のトレードオフ — ダブルボトムは両振りで損益分岐越えられず 2026-05-30