Full delisting-inclusive _ADJ universe. Long-only top 10 names by trailing return, monthly rebalance, NO shorting. Realistic execution: next-open fills + turnover costs (flat grid 5/10/25/50 bps AND liquidity-tiered). IS/OOS 2016-01-01. Gross column uses next-open fills too (lower than the earlier same-day gross in momentum_spectrum).
Top 10 names (absolute; ~2% of 500-universe)
| L(d) | H(d) | Gross | Net@5 | Net@10 | Net@25 | Net@50 | Tiered | OOS Net@10 p | OOS Tiered p |
|---|---|---|---|---|---|---|---|---|---|
| 63 | 21 | 1.40 | 1.37 | 1.34 | 1.27 | 1.14 | 1.27 | 0.000 | 0.000 |
| 126 | 21 | 1.40 | 1.38 | 1.37 | 1.31 | 1.22 | 1.31 | 0.000 | 0.000 |
| 189 | 21 | 1.32 | 1.30 | 1.29 | 1.25 | 1.17 | 1.25 | 0.000 | 0.000 |
| 252 | 21 | 1.25 | 1.24 | 1.23 | 1.19 | 1.13 | 1.19 | 0.000 | 0.000 |
| 126 | 63 | 1.30 | 1.29 | 1.28 | 1.25 | 1.20 | 1.25 | 0.000 | 0.000 |
| 252 | 63 | 1.12 | 1.12 | 1.11 | 1.09 | 1.06 | 1.09 | 0.000 | 0.000 |
Production config detail (L=126, H=21, top 10)
- avg turnover per rebalance: 85.24% of gross (~1022.8%/yr traded notional)
- annual cost drag @10bps ~ 1.0% gross
Net equity curve (10bps, full universe)
- OOS net Sharpe: 1.64
- OOS net bootstrap p: 0.0000
Concentration check — true top-decile (top_k=50, ~10% of 501)
- Gross(next-open) Sharpe: 1.10
- Net@10bps Sharpe: 1.06 (OOS p 0.001)
- Tiered Sharpe: 0.98 (OOS p 0.001)
Verdict
If net Sharpe stays > 0 with OOS p < 0.05 at realistic (tiered / 25bps) costs, the edge is deployment-grade. The production sleeve runs on the 101-name liquid universe (lighter drag than this full-500 stress).