← all research

Universe: 50 liquid stocks (_1Min panel, ETFs/VIX excluded), 1535 sessions 2020-07-27..2026-09-10. Signal FROZEN (PCA K=20, lookback=252, top-10/side, hold=5); entries/exits at session OPEN (09:30) vs MIDDAY (11:35). Split IS < 2024-01-01, OOS >= 2024-01-01. NOTE: this is a ~50-name mechanism test, not the 314-name production universe (no 1-min history there).

Results (per rebalance block; periods = 252/hold)

variantwindowSharpetotalmaxDDp
openIS-0.06-2.5%-20.0%0.529
openOOS+0.86+27.5%-13.8%0.076
midIS-0.10-3.6%-14.9%0.564
midOOS+0.71+22.5%-17.2%0.118

Entry-drift diagnostic (selected basket, mean per rebalance)

  • prior close -> open: +5.3 bps
  • open -> 11:35: -0.2 bps
  • mean per-rebalance turnover (set churn / top_k): 3.11

Reading

  • OOS Sharpe midpoint delta (midday - open): -0.15.
  • Costs are identical across variants (same signal, same turnover), so the difference is pure fill timing: any intraday continuation of the reversion (open -> 11:35) is what midday gains or gives up.
  • If open->11:35 drift is positive (names keep rising after the open), midday entry HARMS a long-low-residual book; if negative, it helps.
  • A midday PASS here only means the fill timing is not obviously worse; the live spread probe still owns the actual cost measurement.

runtime 42s