RIP Backtest protocol v1.0 - MACD crossover (12, 26, 9) on ES 60-min. Run 2026-10-07T17:24:54.048Z 2378027 1-min bars 2020-01-01 18:01 .. 2026-09-25 16:59; 39787 hourly bars; bullish crosses 1495, bearish crosses 1494; 500 random runs per variant === MC-LS-S: long + short, simple: follow the MACD state, no stop === DEV n=1903 net -28,636 $ (gross 29,900) PF 0.98 t -0.37 win 37% avg -15 $ maxDD -85,559 $ VAL n= 588 net 21,926 $ (gross 40,013) PF 1.07 t 0.55 win 38% avg 37 $ maxDD -28,110 $ HOLDOUT n= 758 net -89,141 $ (gross -65,825) PF 0.85 t -1.54 win 34% avg -118 $ maxDD -144,414 $ ALL n=3249 net -95,852 $ (gross 4,088) PF 0.95 t -0.91 win 37% avg -30 $ maxDD -175,956 $ longs n=1629 net 64,167 $ (gross 114,275) PF 1.06 t 0.85 win 40% avg 39 $ maxDD -60,837 $ shorts n=1620 net -160,019 $ (gross -110,187) PF 0.85 t -2.22 win 33% avg -99 $ maxDD -195,648 $ by year: 2020 n443 PF 1.08 25,111 | 2021 n485 PF 1.14 26,981 | 2022 n492 PF 0.86 -63,896 | 2023 n483 PF 0.93 -16,832 | 2024 n468 PF 1.09 21,804 | 2025 n518 PF 0.84 -62,234 | 2026 n360 PF 0.91 -26,786 drawdown on closed trades -175,956 $; approx. drawdown INCLUDING open losses -176,519 $; worst single open loss -10,075 $ exits: {"signal":2920,"weekend":329}; avg bars held 12.0; costs/trade ~ 30.8 $; longest time under water 1738 days Random control: p=0.07516; 500 runs; trade count mean 3229 (real 3249); avg net $/trade random median -27.9, 5th -85.0, 95th 25.6; real -29.5 -> percentile 48.4 Bootstrap 95% CI mean $/trade: [-92.3, 35.2], P(mean<=0) = 82.3%; net without 10 best trades -210,457 $ [FAIL] 1 PF >= 1.2 in validation: VAL PF 1.07 [PASS] 2 >= 50 trades in each period: 1903 / 588 / 758 [FAIL] 3 t >= 2.0 on development: DEV t -0.37 [FAIL] 4 above 95th pct of random runs: percentile 48.4 [FAIL] 5 positive without top-10 trades: -210,457 $ [FAIL] 6 holdout net positive (flagged used): HOLDOUT net -89,141 $ PF 0.85 -> MC-LS-S: 5 gate(s) failed === MC-L-S: long only, simple: follow the MACD state, no stop === DEV n= 957 net 33,225 $ (gross 62,663) PF 1.06 t 0.61 win 40% avg 35 $ maxDD -60,837 $ VAL n= 295 net 25,538 $ (gross 34,613) PF 1.16 t 0.90 win 42% avg 87 $ maxDD -26,362 $ HOLDOUT n= 377 net 5,403 $ (gross 17,000) PF 1.02 t 0.12 win 38% avg 14 $ maxDD -34,785 $ ALL n=1629 net 64,167 $ (gross 114,275) PF 1.06 t 0.85 win 40% avg 39 $ maxDD -60,837 $ longs n=1629 net 64,167 $ (gross 114,275) PF 1.06 t 0.85 win 40% avg 39 $ maxDD -60,837 $ by year: 2020 n222 PF 1.29 37,346 | 2021 n245 PF 1.42 38,439 | 2022 n244 PF 0.78 -50,968 | 2023 n246 PF 1.08 8,408 | 2024 n235 PF 1.27 30,134 | 2025 n258 PF 0.95 -10,549 | 2026 n179 PF 1.09 11,356 drawdown on closed trades -60,837 $; approx. drawdown INCLUDING open losses -60,912 $; worst single open loss -8,000 $ exits: {"signal":1464,"weekend":165}; avg bars held 11.7; costs/trade ~ 30.8 $; longest time under water 1732 days Random control: p=0.07516; 500 runs; trade count mean 1626 (real 1629); avg net $/trade random median 28.8, 5th -21.0, 95th 79.5; real 39.4 -> percentile 63.4 Bootstrap 95% CI mean $/trade: [-50.4, 135.8], P(mean<=0) = 20.2%; net without 10 best trades -41,988 $ [FAIL] 1 PF >= 1.2 in validation: VAL PF 1.16 [PASS] 2 >= 50 trades in each period: 957 / 295 / 377 [FAIL] 3 t >= 2.0 on development: DEV t 0.61 [FAIL] 4 above 95th pct of random runs: percentile 63.4 [FAIL] 5 positive without top-10 trades: -41,988 $ [PASS] 6 holdout net positive (flagged used): HOLDOUT net 5,403 $ PF 1.02 -> MC-L-S: 4 gate(s) failed === MC-LS-F: long + short, full: enter on the cross, stop 2 ATR, target 4 ATR, 48-bar limit === DEV n= 934 net -77,352 $ (gross -48,623) PF 0.90 t -1.33 win 35% avg -83 $ maxDD -114,181 $ VAL n= 300 net 12,785 $ (gross 22,013) PF 1.06 t 0.44 win 36% avg 43 $ maxDD -14,923 $ HOLDOUT n= 372 net 18,670 $ (gross 30,113) PF 1.05 t 0.38 win 35% avg 50 $ maxDD -87,593 $ ALL n=1606 net -45,897 $ (gross 3,503) PF 0.97 t -0.57 win 35% avg -29 $ maxDD -127,188 $ longs n= 806 net 56,412 $ (gross 81,204) PF 1.09 t 0.94 win 38% avg 70 $ maxDD -37,668 $ shorts n= 800 net -102,309 $ (gross -77,701) PF 0.85 t -1.88 win 33% avg -128 $ maxDD -144,684 $ by year: 2020 n224 PF 0.84 -34,398 | 2021 n230 PF 1.13 17,182 | 2022 n245 PF 0.81 -53,575 | 2023 n235 PF 0.95 -6,562 | 2024 n240 PF 1.12 17,473 | 2025 n254 PF 0.95 -11,659 | 2026 n178 PF 1.15 25,642 drawdown on closed trades -127,188 $; approx. drawdown INCLUDING open losses -127,613 $; worst single open loss -7,475 $ exits: {"target":414,"stop":961,"time":67,"weekend":164}; avg bars held 15.1; costs/trade ~ 30.8 $; longest time under water 2384 days Random control: p=0.11412; 500 runs; trade count mean 1611 (real 1606); avg net $/trade random median -43.7, 5th -118.5, 95th 39.3; real -28.6 -> percentile 62.0 Bootstrap 95% CI mean $/trade: [-131.0, 68.5], P(mean<=0) = 71.6%; net without 10 best trades -140,544 $ [FAIL] 1 PF >= 1.2 in validation: VAL PF 1.06 [PASS] 2 >= 50 trades in each period: 934 / 300 / 372 [FAIL] 3 t >= 2.0 on development: DEV t -1.33 [FAIL] 4 above 95th pct of random runs: percentile 62.0 [FAIL] 5 positive without top-10 trades: -140,544 $ [PASS] 6 holdout net positive (flagged used): HOLDOUT net 18,670 $ PF 1.05 -> MC-LS-F: 4 gate(s) failed === MC-L-F: long only, full: enter on the cross, stop 2 ATR, target 4 ATR, 48-bar limit === DEV n= 669 net -24,261 $ (gross -3,683) PF 0.96 t -0.48 win 37% avg -36 $ maxDD -57,121 $ VAL n= 217 net 20,071 $ (gross 26,746) PF 1.14 t 0.79 win 39% avg 92 $ maxDD -30,666 $ HOLDOUT n= 259 net 17,889 $ (gross 25,855) PF 1.07 t 0.44 win 36% avg 69 $ maxDD -39,205 $ ALL n=1145 net 13,698 $ (gross 48,918) PF 1.01 t 0.20 win 37% avg 12 $ maxDD -57,121 $ longs n=1145 net 13,698 $ (gross 48,918) PF 1.01 t 0.20 win 37% avg 12 $ maxDD -57,121 $ by year: 2020 n157 PF 0.90 -14,610 | 2021 n167 PF 1.34 30,756 | 2022 n177 PF 0.75 -50,629 | 2023 n168 PF 1.11 10,221 | 2024 n173 PF 1.28 27,473 | 2025 n178 PF 0.95 -9,337 | 2026 n125 PF 1.16 19,823 drawdown on closed trades -57,121 $; approx. drawdown INCLUDING open losses -57,371 $; worst single open loss -7,475 $ exits: {"target":289,"weekend":134,"stop":663,"time":59}; avg bars held 15.9; costs/trade ~ 30.8 $; longest time under water 1134 days Random control: p=0.05465; 500 runs; trade count mean 1153 (real 1145); avg net $/trade random median 22.9, 5th -46.3, 95th 84.7; real 12.0 -> percentile 40.6 Bootstrap 95% CI mean $/trade: [-110.7, 132.9], P(mean<=0) = 41.8%; net without 10 best trades -69,203 $ [FAIL] 1 PF >= 1.2 in validation: VAL PF 1.14 [PASS] 2 >= 50 trades in each period: 669 / 217 / 259 [FAIL] 3 t >= 2.0 on development: DEV t -0.48 [FAIL] 4 above 95th pct of random runs: percentile 40.6 [FAIL] 5 positive without top-10 trades: -69,203 $ [PASS] 6 holdout net positive (flagged used): HOLDOUT net 17,889 $ PF 1.07 -> MC-L-F: 4 gate(s) failed