Best candidates
Two leakage-clean noise-band results survived every test in the v0.6 harness. Both sit inside the realistic Sharpe ceiling (L23: 0.4-0.7 post-cost on Indian large-caps over 18+ years) — and both are negative Sharpes inside that noise band. That is the honest finding.
nifty_50_linear_momentum + position-floor
Phase 11.A. L49.
| Metric | Value |
|---|---|
| Honest Sharpe | -0.35 |
mean_pnl | -1.4e-3 |
shuffled_target | PASS |
look_ahead_cheat | PASS |
future_news_cheat | PASS |
bit_exact_reproducibility | PASS |
static_features | PASS (+0.35) |
permutation_invariance | PASS |
window_robustness | PASS |
The first leakage-clean-on-static_features verdict at Nifty 50 scale. Strategy: pure-linear LinearStrategy (1 layer, cross-sectionally de-meaned) at Nifty 50 with per-stock z-score + position-floor.
Why it's the cleanest small-honest-Sharpe leakage-clean result the project has produced: linear models structurally cannot construct the per-stock biases that MLPs use to fail the static_features test. The model has nowhere to hide ticker-identity signal.
nifty_50_per_stock_momentum + negative_sortino
Phase 9. Post-L47 fix.
| Metric | Value |
|---|---|
| Honest Sharpe | -0.51 |
| All classic leakage tests | PASS |
| Non-degenerate positions | yes |
Single-model-per-stock baseline, run after the L47 z-score bug was closed. Confirms the per-stock harness is now trustworthy and that individual stocks in the Nifty 50 universe don't carry exploitable time-edge at this feature set either.
How to read these
Both candidates are inside the noise band — Sharpe SE at this scale is roughly 0.4-0.5 with 180-day holdouts (better than the 5-stock × 21-day SE of 1.55, but still wide). A measurement of -0.35 ± 0.4 is statistically indistinguishable from zero, and so is -0.51 ± 0.4. That is the meaning of "no measurable time-edge".
The contrast with the artifact-positive candidates on What didn't work is the point: those candidates showed Sharpe +5 to +6 but failed window_robustness or static_features. The candidates above show Sharpe ~ -0.4 but survive everything. A leakage-clean -0.5 is more research output than a leakage-leaking +5.
What this constrains for next research
- Universe-size hypothesis is not falsified — Nifty 100 or BSE 500 has not yet been tried.
- PEAD at event-window with sector-grouped SUE (L29) remains the most plausibly-real signal in the dataset; not yet run at Nifty 50 scale.
- Bootstrap-calibrated leakage bounds (L53) would tighten future verdicts.
- BSE + Screener fetch at Nifty 50 (S17.E deferred) is the data prerequisite for the PEAD work.