← all research
  • RTH 15m bars, 43706 bars, k=20, dollar-neutral
  • Split (fixed): IS < 2024-01-04, OOS >=

GROSS (bps ignored)

MechSegRetSharpeMaxDDBreak-even bps/side
M15 momentumIS-89.1%-2.11-89.6%-0.30
M15 momentumOOS-62.9%-2.33-65.8%-0.30

M15 momentum: mean turnover/bar 2.330 (~15,266x gross/yr); break-even -0.30 bps/side.

| R15 reversal | IS | +666.9% | 2.19 | -22.1% | 0.32 | | R15 reversal | OOS | +198.8% | 2.70 | -14.0% | 0.32 |

R15 reversal: mean turnover/bar 2.330 (~15,266x gross/yr); break-even 0.32 bps/side.

NET sweep (full sample, bps one-way)

MechbpsRetSharpeMaxDD
M15 momentum0-95.9%-2.13-96.2%
M15 momentum0.5-100.0%-5.70-100.0%
M15 momentum1-100.0%-9.27-100.0%
M15 momentum2-100.0%-16.39-100.0%
R15 reversal0+2191.6%2.29-22.1%
R15 reversal0.5-85.9%-1.27-90.4%
R15 reversal1-99.9%-4.84-99.9%
R15 reversal2-100.0%-11.95-100.0%

Verdict: gross edge (if any) is dwarfed by 15m turnover x any real spread. Do NOT wire minute into start_bots.py unless the net sweep is positive at a plausible cost.