DashboardProbesRealness Loop › Iter 9 · #8

iteration 9 · 2026-07-23 · #8 resume · laptop-drives-bigblack

📐 #8 Deflated Sharpe Ratio GROUNDED

Deflate a feature's out-of-sample Sharpe by how many features were tried. Resumed from checkpoint with a permutation-based pass-mark (learned from shuffled data), which fixed both open gates — all five now pass.

5 / 5
gates pass
FPR 0.04
on independent holdout
0.92
look-ahead power (N_min 30k)
6 / 20
instruments grounded
Preflight (resource-only): load1 0.28 · 42 GiB available · si/so ~0 · ClickHouse active, readonly=2. Compute wall ~16 s. Runs on the grounded #6 SFI return object + #0 CPCV substrate.

The fix — a permutation-based pass-mark

The checkpoint found the textbook Bailey-Lopez de Prado formula over-states the expected best-of-N Sharpe by ~2×, because all the features are scored against the same shuffled answer key in each trial — a correlation the formula ignores. The fix: learn the pass-mark from the shuffled data itself (the empirical distribution of the family's best Sharpe under shuffling). That captures every correlation automatically and can't be gamed by mis-counting trials. The learned pass-mark reproduces to 0.01% across two independent shuffled sets; the textbook formula over-states it by 2.38×.

Gate status — all pass

GateResult
Null FPRSR0* 0.379; FPR on an independent holdout = 0.04 ≤ 0.05PASS
FST (SR0 = simulated max)operational SR0 0.240 = simulated max, reproducible 0.01%; analytic formula over-states 2.38×PASS
Power (look-ahead)0.52 → 0.76 → 0.92 vs per-N SR0*(N); N_min 30,000PASS
Known-duplicate N_efftwo clones → N_eff 1.0PASS
Harden — N_eff recoveryONC N_eff 7.0 ≈ participation ratio 6.04 (no collapse)PASS

Sanity: the real family's best feature (vwap, SFI Sharpe 3.41) deflates to DSR = 1.0 vs SR0* 0.379 — a strong real signal survives.

The Harden, guarded two ways

§7's Harden guards the primary gaming surface — collapsing the effective trial count understates the pass-mark so noise wins. Guarded twice: (1) ONC's trial count (7) recovers the correlation participation ratio (6), so it doesn't collapse; and (2) the permutation pass-mark doesn't use the trial count at all — the shuffled distribution already embeds every correlation, so the gaming surface is closed by construction. The analytic formula (which does rely on the count) is kept only as a diagnostic, where it over-states 2.38×.

Checkpoint → terminal (verify-before-report)

iter 8 (checkpoint): 3/5 gates; FST + power failed on the analytic formula's 2× over-statement (shared-target correlation, effective trials ≈2.5 not 7). iter 9 (this): pre-registered permutation SR0 → FST passes (reproducible 0.01%), power 0.92, FPR 0.04 on holdout. The over-statement is documented, not hidden.

Verdict & what's next

GROUNDED — the selection-bias deflator is validated.

Next iteration → #9 PBO / CSCV (on the SFI trial matrix) — the magnitude/overfit companion to this deflator (DSR is rank-blind to magnitude; #9 pairs the magnitude gate).