Skip to content

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.

MetricValue
Honest Sharpe-0.35
mean_pnl-1.4e-3
shuffled_targetPASS
look_ahead_cheatPASS
future_news_cheatPASS
bit_exact_reproducibilityPASS
static_featuresPASS (+0.35)
permutation_invariancePASS
window_robustnessPASS

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.

MetricValue
Honest Sharpe-0.51
All classic leakage testsPASS
Non-degenerate positionsyes

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.

OpenBracket v0.6 — methodology release-ready; v1 forecaster in active build.