Universe: top-314 liquid US equities, load_close_volume (5030 days, 2006-08-14..2026-08-12).
Signal FROZEN from archive/validation/edge_hunt8.py: rolling PCA K=20, lookback=252, long low resid / short high resid, top-50/side, lag=1. Costs one-way on turnover; borrow 0.50%/yr on short notional. periods=252 (edge_hunt8 used sqrt(365), ~20% inflated).
Split: IS < 2016-01-01, OOS >= 2016-01-01. PRIMARY cell: hold=20, net2 (4bps RT).
Bars (all required): OOS net Sharpe>0, OOS p<0.05, OOS resid Sharpe>0, IS same sign, DSR(K=3)>=0.5.
Cost ladder x holding (IS / OOS)
| hold | rung | cost 1-way | IS Sharpe | OOS Sharpe | OOS ret | OOS maxDD | OOS p | DSR(K=3) |
|---|---|---|---|---|---|---|---|---|
| 5 | net0 | 0bps | +0.96 | +0.89 | +55.9% | -6.8% | 0.002 | 0.96 |
| 5 | net1 | 1bps | +0.63 | +0.55 | +30.9% | -9.7% | 0.034 | 0.85 |
| 5 | net2 | 2bps | +0.30 | +0.21 | +9.9% | -13.2% | 0.254 | 0.63 |
| 5 | net4 | 4bps | -0.36 | -0.47 | -22.5% | -27.8% | 0.940 | 0.01 |
| 5 | net10 | 10bps | -2.16 | -2.31 | -72.9% | -73.8% | 1.000 | 0.00 |
| 20 | net0 | 0bps | +0.62 | +0.14 | +6.1% | -14.3% | 0.328 | 0.23 |
| 20 | net1 | 1bps | +0.54 | +0.05 | +1.5% | -15.2% | 0.438 | 0.28 |
| 20 ** | net2 | 2bps | +0.46 | -0.04 | -2.9% | -16.4% | 0.553 | 0.32 |
| 20 | net4 | 4bps | +0.30 | -0.22 | -11.1% | -19.6% | 0.766 | 0.08 |
| 20 | net10 | 10bps | -0.19 | -0.75 | -31.8% | -33.4% | 0.994 | 0.00 |
| 60 | net0 | 0bps | +0.23 | +0.15 | +6.0% | -13.0% | 0.316 | 0.24 |
| 60 | net1 | 1bps | +0.20 | +0.12 | +4.5% | -13.2% | 0.356 | 0.36 |
| 60 | net2 | 2bps | +0.17 | +0.09 | +3.0% | -13.3% | 0.395 | 0.48 |
| 60 | net4 | 4bps | +0.11 | +0.02 | +0.1% | -14.2% | 0.481 | 0.27 |
| 60 | net10 | 10bps | -0.06 | -0.17 | -8.3% | -17.5% | 0.719 | 0.00 |
PRIMARY verdict: REJECT (pre-registered hold=20, net2)
| bar | result |
|---|---|
| OOS net Sharpe > 0 | FAIL |
| OOS bootstrap p < 0.05 | FAIL |
| OOS resid Sharpe > 0 | PASS |
| IS positive & same sign | FAIL |
| DSR(K=3) >= 0.5 | FAIL |
- Primary OOS: Sharpe -0.04, ret -2.9%, maxDD -16.4%, p=0.553, residSR +0.00, IS Sharpe +0.46, DSR(K=3) 0.32. Trial Sharpes (net2 holds 5/20/60): [0.21, -0.04, 0.09].
Secondary — frozen strongest gross spec (hold=5)
hold=5 is edge_hunt8's highest-gross cell (not a post-hoc pick); this is a multiple-testing-fragile secondary, reported for honesty.
| rung | OOS Sharpe | perm null (realized / null-mean / null-max / p) |
|---|---|---|
| net0 | +0.89 | +0.89 / -0.15 / +0.44 / 0.000 |
| net1 | +0.55 | +0.55 / +0.13 / +0.58 / 0.050 |
| net2 | +0.21 | +0.21 / -0.03 / +0.42 / 0.250 |
| bar (hold=5, net1) | result |
|---|---|
| OOS net Sharpe > 0 | PASS |
| OOS bootstrap p < 0.05 | PASS |
| OOS resid Sharpe > 0 | PASS |
| IS positive & same sign | PASS |
| DSR(K=3) >= 0.5 | PASS |
Secondary verdict (hold=5, net1): PASS — OOS Sharpe +0.55, ret +30.9%, maxDD -9.7%, p=0.034, DSR(K=3) 0.85, IS Sharpe +0.63.
Reading
- Signal is frozen; this file changes COST ACCOUNTING ONLY (D1b precedent: $0 Alpaca commission verified Sept 2026). Cost rungs are not trials; DSR K=3 pins the three hold scans.
- The gross book is market-neutral (OOS residSR ~0.00 vs EW market, corr(mkt)~0.02 in edge_hunt8): the entire question is whether the idiosyncratic mean-reversion spread clears the spread cross.
- There is a real, significant GROSS edge at hold=5 (OOS Sharpe +0.89, p=0.002, maxDD -6.8%). It survives ONLY at ~1bp one-way (2bps RT). At 2bps it is insignificant and at 4bps it is negative. So profitability hinges entirely on the measured fill cost for these names — no backtest can settle it.
- A PASS here is a research result, not a live change: any sleeve needs the full promotion path (walk-forward, spread-measured shadow, vote).
runtime 369s