← all research

101 live names; signal = XS reversal of the [start,end] close return; entry at the 15:59 close (MOC proxy); exit next session. K=20, ~252 rebalances/yr.

Signal windowexitturn/daygross SRb/e bpsnet@1bp
14:59-15:5909:593.10+1.903.08+1.28
14:59-15:5909:303.10+1.441.88+0.67
14:00-15:5909:593.09+0.951.60+0.36
14:00-15:5909:303.09+0.470.65-0.25
15:00-15:5909:593.11+1.863.00+1.24
15:00-15:5909:303.11+1.461.92+0.70
15:00-15:5509:593.10+1.242.01+0.62
15:00-15:5509:303.10+1.061.38+0.29
15:00-15:5009:593.12+1.051.76+0.45
15:00-15:5009:303.12+1.041.44+0.32
15:00-15:4509:593.10+0.941.56+0.34
15:00-15:4509:303.10+0.781.07+0.05
14:00-15:5509:593.09+0.611.04+0.02
14:00-15:5509:303.09+0.330.45-0.40
14:00-15:5009:593.10+0.360.58-0.26
14:00-15:5009:303.10+0.100.12-0.69

Best tradeable cell: 14:59-15:59 -> exit 09:59 net@1bp +1.28, b/e 3.08 bps, turn 3.10/day (gross SR +1.90).

Read: the bot must compute the signal from a window that ends before the MOC cutoff (<=~15:50) yet still captures the final-hour move; a 14:59 start (stale completed hour) is the failure mode.