RIP Backtest protocol v1.0 - Bollinger Band reversal (20, 2) on ES 60-min. Run 2026-10-07T16:50:29.991Z 2378027 1-min bars 2020-01-01 18:01 .. 2026-09-25 16:59; 39787 hourly bars; 500 random runs per variant === BB-LS-S: long + short, simple: exit at the middle band, no stop === DEV n= 953 net -12,827 $ (gross 16,488) PF 0.98 t -0.23 win 59% avg -13 $ maxDD -54,615 $ VAL n= 331 net 27,143 $ (gross 37,325) PF 1.15 t 0.92 win 65% avg 82 $ maxDD -18,012 $ HOLDOUT n= 367 net 33,211 $ (gross 44,500) PF 1.13 t 0.76 win 63% avg 90 $ maxDD -26,381 $ ALL n=1651 net 47,528 $ (gross 98,313) PF 1.05 t 0.62 win 61% avg 29 $ maxDD -58,201 $ longs n= 813 net 102,780 $ (gross 127,788) PF 1.21 t 1.79 win 68% avg 126 $ maxDD -31,227 $ shorts n= 838 net -55,252 $ (gross -29,475) PF 0.89 t -1.11 win 54% avg -66 $ maxDD -83,399 $ by year: 2020 n232 PF 1.19 24,814 | 2021 n241 PF 0.86 -16,063 | 2022 n238 PF 0.92 -18,608 | 2023 n242 PF 0.98 -2,969 | 2024 n264 PF 1.04 5,779 | 2025 n249 PF 1.19 30,853 | 2026 n185 PF 1.19 23,722 drawdown on closed trades -58,201 $; approx. drawdown INCLUDING open losses -58,920 $; worst single open loss -21,262 $ exits: {"signal":1425,"weekend":226}; avg bars held 13.2; costs/trade ~ 30.8 $; longest time under water 1547 days Random control: p=0.07603; 500 runs; trade count mean 1664 (real 1651); avg net $/trade random median 10.5, 5th -28.6, 95th 50.1; real 28.8 -> percentile 75.4 Bootstrap 95% CI mean $/trade: [-64.2, 114.8], P(mean<=0) = 27.7%; net without 10 best trades -13,265 $ [FAIL] 1 PF >= 1.2 in validation: VAL PF 1.15 [PASS] 2 >= 50 trades in each period: 953 / 331 / 367 [FAIL] 3 t >= 2.0 on development: DEV t -0.23 [FAIL] 4 above 95th pct of random runs: percentile 75.4 [FAIL] 5 positive without top-10 trades: -13,265 $ [PASS] 6 holdout net positive (flagged used): HOLDOUT net 33,211 $ PF 1.13 -> BB-LS-S: 4 gate(s) failed === BB-L-S: long only, simple: exit at the middle band, no stop === DEV n= 483 net 46,455 $ (gross 61,313) PF 1.16 t 1.12 win 66% avg 96 $ maxDD -28,487 $ VAL n= 163 net 32,274 $ (gross 37,288) PF 1.39 t 1.50 win 71% avg 198 $ maxDD -12,302 $ HOLDOUT n= 182 net 24,552 $ (gross 30,150) PF 1.19 t 0.70 win 68% avg 135 $ maxDD -22,796 $ ALL n= 828 net 103,281 $ (gross 128,750) PF 1.21 t 1.77 win 68% avg 125 $ maxDD -28,487 $ longs n= 828 net 103,281 $ (gross 128,750) PF 1.21 t 1.77 win 68% avg 125 $ maxDD -28,487 $ by year: 2020 n113 PF 1.36 26,174 | 2021 n119 PF 1.17 8,290 | 2022 n129 PF 0.89 -12,793 | 2023 n122 PF 1.52 24,785 | 2024 n126 PF 1.35 19,924 | 2025 n125 PF 1.18 17,130 | 2026 n94 PF 1.34 19,771 drawdown on closed trades -28,487 $; approx. drawdown INCLUDING open losses -31,329 $; worst single open loss -22,387 $ exits: {"signal":721,"weekend":107}; avg bars held 12.0; costs/trade ~ 30.8 $; longest time under water 699 days Random control: p=0.07984; 500 runs; trade count mean 845 (real 828); avg net $/trade random median 76.6, 5th 23.2, 95th 134.7; real 124.7 -> percentile 90.6 Bootstrap 95% CI mean $/trade: [-17.3, 257.8], P(mean<=0) = 4.4%; net without 10 best trades 49,051 $ [PASS] 1 PF >= 1.2 in validation: VAL PF 1.39 [PASS] 2 >= 50 trades in each period: 483 / 163 / 182 [FAIL] 3 t >= 2.0 on development: DEV t 1.12 [FAIL] 4 above 95th pct of random runs: percentile 90.6 [PASS] 5 positive without top-10 trades: 49,051 $ [PASS] 6 holdout net positive (flagged used): HOLDOUT net 24,552 $ PF 1.19 -> BB-L-S: 2 gate(s) failed === BB-LS-F: long + short, full: target at the middle band, stop 2 ATR, 24-bar limit === DEV n=1395 net -3,614 $ (gross 39,296) PF 1.00 t -0.07 win 48% avg -3 $ maxDD -37,965 $ VAL n= 474 net 11,286 $ (gross 25,866) PF 1.04 t 0.39 win 49% avg 24 $ maxDD -19,189 $ HOLDOUT n= 520 net 21,581 $ (gross 37,576) PF 1.05 t 0.47 win 51% avg 42 $ maxDD -44,338 $ ALL n=2389 net 29,252 $ (gross 102,738) PF 1.02 t 0.38 win 49% avg 12 $ maxDD -44,338 $ longs n=1215 net 81,041 $ (gross 118,414) PF 1.10 t 1.32 win 50% avg 67 $ maxDD -40,724 $ shorts n=1174 net -51,789 $ (gross -15,676) PF 0.92 t -1.11 win 48% avg -44 $ maxDD -71,575 $ by year: 2020 n319 PF 1.07 14,233 | 2021 n358 PF 0.87 -21,787 | 2022 n353 PF 1.01 3,118 | 2023 n365 PF 1.00 823 | 2024 n386 PF 0.99 -2,127 | 2025 n356 PF 1.02 6,497 | 2026 n252 PF 1.15 28,496 drawdown on closed trades -44,338 $; approx. drawdown INCLUDING open losses -45,938 $; worst single open loss -8,112 $ exits: {"target":976,"stop":1062,"weekend":174,"time":177}; avg bars held 9.2; costs/trade ~ 30.8 $; longest time under water 1750 days Random control: p=0.09830; 500 runs; trade count mean 2413 (real 2389); avg net $/trade random median -28.2, 5th -60.1, 95th 2.0; real 12.2 -> percentile 98.4 Bootstrap 95% CI mean $/trade: [-49.4, 75.1], P(mean<=0) = 35.9%; net without 10 best trades -54,186 $ [FAIL] 1 PF >= 1.2 in validation: VAL PF 1.04 [PASS] 2 >= 50 trades in each period: 1395 / 474 / 520 [FAIL] 3 t >= 2.0 on development: DEV t -0.07 [PASS] 4 above 95th pct of random runs: percentile 98.4 [FAIL] 5 positive without top-10 trades: -54,186 $ [PASS] 6 holdout net positive (flagged used): HOLDOUT net 21,581 $ PF 1.05 -> BB-LS-F: 3 gate(s) failed === BB-L-F: long only, full: target at the middle band, stop 2 ATR, 24-bar limit === DEV n= 753 net 43,926 $ (gross 67,088) PF 1.09 t 1.01 win 50% avg 58 $ maxDD -34,430 $ VAL n= 248 net 16,811 $ (gross 24,439) PF 1.12 t 0.72 win 50% avg 68 $ maxDD -17,166 $ HOLDOUT n= 287 net 26,495 $ (gross 35,323) PF 1.11 t 0.69 win 52% avg 92 $ maxDD -43,119 $ ALL n=1288 net 87,231 $ (gross 126,850) PF 1.10 t 1.40 win 51% avg 68 $ maxDD -43,119 $ longs n=1288 net 87,231 $ (gross 126,850) PF 1.10 t 1.40 win 51% avg 68 $ maxDD -43,119 $ by year: 2020 n166 PF 1.29 31,568 | 2021 n190 PF 1.04 3,144 | 2022 n218 PF 0.94 -11,177 | 2023 n179 PF 1.26 20,391 | 2024 n196 PF 1.11 11,913 | 2025 n196 PF 1.14 22,472 | 2026 n143 PF 1.08 8,920 drawdown on closed trades -43,119 $; approx. drawdown INCLUDING open losses -43,594 $; worst single open loss -6,625 $ exits: {"target":543,"stop":582,"weekend":94,"time":69}; avg bars held 8.3; costs/trade ~ 30.8 $; longest time under water 908 days Random control: p=0.10738; 500 runs; trade count mean 1291 (real 1288); avg net $/trade random median 4.5, 5th -41.5, 95th 53.1; real 67.7 -> percentile 98.8 Bootstrap 95% CI mean $/trade: [-26.3, 162.0], P(mean<=0) = 8.3%; net without 10 best trades 4,940 $ [FAIL] 1 PF >= 1.2 in validation: VAL PF 1.12 [PASS] 2 >= 50 trades in each period: 753 / 248 / 287 [FAIL] 3 t >= 2.0 on development: DEV t 1.01 [PASS] 4 above 95th pct of random runs: percentile 98.8 [PASS] 5 positive without top-10 trades: 4,940 $ [PASS] 6 holdout net positive (flagged used): HOLDOUT net 26,495 $ PF 1.11 -> BB-L-F: 2 gate(s) failed