Phase C v2: Practical Win-Rate Reversal Risk Backtest Results

Run date: 2026-04-13 Period: 2016-01-01 to 2025-06-30 (OOS from 2024-01-01) Universe: v5.1 optimized filter Patterns: bullish_engulfing, outside_reversal, 2b_reversal, 3bar_flush_reclaim Matrix: 4 patterns x 5 SL x 5 TP = 100 configs Max hold: 120 calendar days

Design Changes vs v1

Aspectv1v2
Stop-loss6 variants incl. intraday & fixed 1%5 variants, all close-based, no ultra-tight
Exit/TP7 variants incl. 5R, 10R wide5 variants, max 3R fixed + runner/trail
Max hold180-200 days120 days
Scoringexpectancy x sqrt(N)balanced: exp x sqrt(N) x (1 + wr_bonus)
GoalRaw expectancyPractical win rate (40-60%) with positive expectancy

Test Matrix Summary

  • Total configs tested: 100
  • Configs with trades: 100
  • Total trades across all configs: 59600
  • Avg trades per config: 596.0
  • Configs with n>=30: 100
  • Avg win rate across configs: 28.9%
  • Configs with WR in 40-60% band: 0

Best Configs for Target Win-Rate Band (40-60%)

This is the primary result section. These configs balance practical tradeability with positive expectancy.

No configs achieved win rate in the 40-60% band.

Closest to 50% win rate:

ConfigWRExp(R)PFN
outside_reversal_SL-A_TP-A38.1%0.2151.22362
outside_reversal_SL-B_TP-A37.9%0.0461.05362
3bar_flush_reclaim_SL-E_TP-A37.8%-0.0280.98714
outside_reversal_SL-B_TP-C37.6%0.1241.14362
bullish_engulfing_SL-E_TP-A37.5%0.0791.05517
outside_reversal_SL-C_TP-A37.3%0.1321.15362
outside_reversal_SL-D_TP-A37.3%0.0731.08362
outside_reversal_SL-A_TP-C37.0%0.5881.60362
outside_reversal_SL-C_TP-C37.0%0.3671.43362
3bar_flush_reclaim_SL-C_TP-C37.0%0.1481.18714

Top 20 Configs (by Balanced Score)

RankConfigPatternSLTPNExp(R)WRPFSharpeMaxDD(R)BarsBal.Score
1bullish_engulfing_SL-E_TP-Ebullish_engulfingSL-ETP-E5170.9458.3%1.390.23-268.481421.48
23bar_flush_reclaim_SL-E_TP-E3bar_flush_reclaimSL-ETP-E7140.8007.7%1.320.19-435.021421.38
3bullish_engulfing_SL-E_TP-Dbullish_engulfingSL-ETP-D5170.80718.2%1.380.40-128.43818.34
4bullish_engulfing_SL-A_TP-Cbullish_engulfingSL-ATP-C5170.49436.2%1.520.41-52.041416.86
5outside_reversal_SL-A_TP-Coutside_reversalSL-ATP-C3620.58837.0%1.600.31-64.241416.77
6bullish_engulfing_SL-A_TP-Dbullish_engulfingSL-ATP-D5170.68729.2%1.700.38-57.791315.63
7outside_reversal_SL-E_TP-Eoutside_reversalSL-ETP-E3620.7698.8%1.320.21-171.311314.64
8bullish_engulfing_SL-D_TP-Cbullish_engulfingSL-DTP-C5170.42935.0%1.450.18-92.512114.62
9bullish_engulfing_SL-C_TP-Dbullish_engulfingSL-CTP-D5170.63731.1%1.780.30-52.081514.49
10bullish_engulfing_SL-E_TP-Cbullish_engulfingSL-ETP-C5170.38835.6%1.230.34-74.09613.24
11outside_reversal_SL-A_TP-Doutside_reversalSL-ATP-D3620.69328.2%1.650.26-80.441313.19
12bullish_engulfing_SL-C_TP-Ebullish_engulfingSL-CTP-E5170.54116.8%1.540.21-106.562812.31
13bullish_engulfing_SL-D_TP-Dbullish_engulfingSL-DTP-D5170.53330.6%1.600.22-96.901512.11
14bullish_engulfing_SL-B_TP-Dbullish_engulfingSL-BTP-D5170.53030.6%1.600.39-51.641512.04
15bullish_engulfing_SL-B_TP-Cbullish_engulfingSL-BTP-C5170.31935.2%1.350.32-45.711510.89
16bullish_engulfing_SL-A_TP-Abullish_engulfingSL-ATP-A5170.31136.9%1.330.45-50.871010.60
17outside_reversal_SL-C_TP-Coutside_reversalSL-CTP-C3620.36737.0%1.430.24-45.331810.49
18outside_reversal_SL-C_TP-Doutside_reversalSL-CTP-D3620.52131.8%1.650.22-52.06169.92
19bullish_engulfing_SL-D_TP-Abullish_engulfingSL-DTP-A5170.29035.2%1.310.18-89.12189.88
20bullish_engulfing_SL-B_TP-Ebullish_engulfingSL-BTP-E5170.41516.1%1.380.17-132.10269.43

Best Config Per Pattern (by Balanced Score)

bullish_engulfing

  • Best config: bullish_engulfing_SL-E_TP-E
  • SL: SL-E (fixed_2pct)
  • TP: TP-E (structure_break)
  • Trades: 517 (IS: 357, OOS: 160)
  • Expectancy: 0.945R (IS: 1.138, OOS: 0.513)
  • Win rate: 8.3%
  • Profit factor: 1.39
  • Sharpe: 0.23
  • Max DD: -268.48R

outside_reversal

  • Best config: outside_reversal_SL-A_TP-C
  • SL: SL-A (pattern_low_close_break)
  • TP: TP-C (partial_runner)
  • Trades: 362 (IS: 247, OOS: 115)
  • Expectancy: 0.588R (IS: 0.756, OOS: 0.227)
  • Win rate: 37.0%
  • Profit factor: 1.60
  • Sharpe: 0.31
  • Max DD: -64.24R

2b_reversal

  • Best config: 2b_reversal_SL-D_TP-A
  • SL: SL-D (swing_low_close_break)
  • TP: TP-A (2R_fixed)
  • Trades: 791 (IS: 570, OOS: 221)
  • Expectancy: 0.138R (IS: 0.078, OOS: 0.294)
  • Win rate: 34.8%
  • Profit factor: 1.16
  • Sharpe: 0.17
  • Max DD: -46.47R

3bar_flush_reclaim

  • Best config: 3bar_flush_reclaim_SL-E_TP-E
  • SL: SL-E (fixed_2pct)
  • TP: TP-E (structure_break)
  • Trades: 714 (IS: 502, OOS: 212)
  • Expectancy: 0.800R (IS: 1.072, OOS: 0.156)
  • Win rate: 7.7%
  • Profit factor: 1.32
  • Sharpe: 0.19
  • Max DD: -435.02R

Stop-Loss Variant Comparison

SLNameAvg Exp(R)Avg WRAvg PFAvg MaxDD(R)Total Trades
SL-Apattern_low_close_break0.25229.1%1.25-77.4111920
SL-Bpattern_low_minus_1pct0.16329.7%1.17-66.4611920
SL-Cpattern_low_minus_2pct0.21530.1%1.25-59.4811920
SL-Dswing_low_close_break0.17629.8%1.19-73.7011920
SL-Efixed_2pct0.15226.0%1.07-196.6611920

Exit Variant Comparison

TPNameAvg Exp(R)Avg WRAvg PFAvg MaxDD(R)Total Trades
TP-A2R_fixed0.10436.2%1.12-73.0311920
TP-B3R_fixed0.13330.5%1.14-70.5811920
TP-Cpartial_runner0.19335.5%1.21-74.3111920
TP-Dtrailing_only0.25328.0%1.26-93.0311920
TP-Estructure_break0.27414.5%1.21-162.7811920

Win Rate Distribution Across Configs

WR Band# ConfigsAvg Exp(R)Avg PF
0%-10%40.5261.22
10%-20%200.2111.18
20%-30%130.1991.20
30%-40%630.1631.18

Comparison to v1 (Prior Experiment)

v1 Findings (for reference)

  • Best config: 3bar_flush_reclaim_SL-3_TP-6 (Exp: 3.013R, PF: 4.11, WR: ~2-3%)
  • Runner-up: bullish_engulfing_SL-3_TP-6 (Exp: 3.453R, PF: 4.58)
  • Dominant SL: SL-3 (fixed_1pct) - ultra-tight, very low win rate
  • Dominant TP: TP-6 (structure_break) - long hold, rare but large wins
  • Problem: 2-3% win rate is psychologically and practically very difficult to trade

v2 Changes

  • Removed SL-3 (fixed 1%) which dominated v1 but produced impractical win rates
  • All stops close-based (avoids intraday whipsaw noise)
  • Removed 5R and 10R exit targets (reduced overlong holding)
  • Reduced max hold from 180 to 120 days
  • Added balanced scoring that rewards 35-65% win rate band

v2 Results vs v1

  • v2 best (balanced): bullish_engulfing_SL-E_TP-E (Exp: 0.945R, WR: 8.3%, PF: 1.39)
  • v2 average win rate: 28.9% (vs v1’s avg dominated by ~2-3%)
  • v2 configs in 40-60% band: 0

IS/OOS Consistency

  • IS/OOS expectancy correlation: -0.05 (n=100 configs)
  • Avg IS exp: 0.225R
  • Avg OOS exp: 0.116R

Caveats

  1. Backtest uses next-bar open entry - real fills may differ (slippage, gaps)
  2. Close-based stops avoid intraday noise but can gap through in fast moves
  3. Biotech universe is inherently volatile - even ‘practical’ configs will have streaks
  4. R-multiple metrics assume 1% risk sizing; actual P&L depends on position sizing
  5. No transaction costs or slippage modeled
  6. Cooldown of 90 days between signals for same symbol