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

GROSS (bps ignored)

MechSegRetSharpeMaxDDBreak-even bps/side
M60 momentumIS-75.2%-2.32-75.5%-0.74
M60 momentumOOS-67.3%-2.23-68.4%-0.74

M60 momentum: mean turnover/bar 2.782 (~4,908x gross/yr); break-even -0.74 bps/side.

| R60 reversal | IS | +317.4% | 2.52 | -11.9% | 0.75 | | R60 reversal | OOS | +163.5% | 2.10 | -14.3% | 0.75 |

R60 reversal: mean turnover/bar 2.781 (~4,905x gross/yr); break-even 0.75 bps/side.

NET sweep (full sample, bps one-way)

MechbpsRetSharpeMaxDD
M60 momentum0-91.9%-2.27-91.9%
M60 momentum0.5-98.4%-3.81-98.4%
M60 momentum1-99.7%-5.34-99.7%
M60 momentum2-100.0%-8.41-100.0%
R60 reversal0+999.7%2.32-14.3%
R60 reversal0.5+111.3%0.78-32.7%
R60 reversal1-59.4%-0.76-71.0%
R60 reversal2-98.5%-3.84-98.5%

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