Skip to content
✎ FeedbackNew here?
Open the Momentum scan →the live surface this page describes — data, filters and history
How well testedFailed after coststhe gross reading looked real and did not survive realistic trading costRecorded: BENCHMARK engine · gross selection lens (NOT fundable net of cost, except qtr large-cap LOWVOL_MOM)

Momentum / RISKADJ Ranked-Rotation Engine — Canonical Reference

🔴 EVERY "SHARPE" ON THIS PAGE WAS A RETURN/VOL RATIO — RELABELLED

Every ratio on this page (RISKADJ 1.13/1.29· C-BLEND 1.32· LOWVOL_MOM 1.02· the 0.89 hurdle) is computed as mean/sd × √periods with no risk-free rate subtracted. That is a return/vol ratio, not a Sharpe — read as a textbook Sharpe it reads high, and the absolute levels were overstated by the label alone. But the Nifty 500 buy-&-hold hurdle (0.89) is computed on the IDENTICAL basis, as is every signal measured against it — so every relative claim, every walk-forward verdict, and every gross-vs-net call on this page holds exactly as written. Nothing is re-cut and no number moves: the desk's ruling is relabel the vocabulary, change no numbers. A true-Sharpe re-cut needs a primary-source rf ingest (Guardrail #8) and is queued with the owed TR-benchmark re-cut. Read every ratio below as a return/vol ratio.

One-line definition: a monthly cross-sectional ranked-rotation backtest that sorts every liquid NSE name by RISKADJ (6-month return ÷ 3-month volatility), holds the top-25 equal-weight, and scores it net of cost, walk-forward on both halves, against a Nifty 500 buy-&-hold return/vol-0.89 hurdle — the project's internal benchmark and a gross selection lens, not a fundable net-of-cost alpha.


1. What it is

The core factor / backtest machine of the platform: the daily "surface the relevant stocks" engine of the primary-intent north star, formalized from the empirical finding that momentum is the only consistent, reliable gross forward-price signal in Indian equities (the predictive attributes findings notes).

The machine (one construction family):

1. At each monthly rebalance (22 trading days), rank every liquid name cross-sectionally by a selection signal (RISKADJ is the flagship; 8 signals are wired). 2. Take the top-25, hold equal-weight for the month. 3. Charge cost, mark monthly, and compound. 4. Split the 2012→2026 history into two walk-forward halves (2012-18 vs 2019-26); a signal "survives" only if it beats Nifty 500 return/vol 0.89 in BOTH halves with positive CAGR in each.

RISKADJ is the best of 32 tested signals and is kept as the internal benchmark to beat — every new strategy is measured against it. It is not productized as a client "buy this basket" claim; it is an analytical ranking lens that surfaces names for research. Benchmarks (Nifty 50 / Nifty 500, the 0.89 hurdle / Nifty Midcap 50) and the full 32-row leaderboard live in the ledger — see the strategy ledger § Benchmarks + Tier 1.

2. Our variation vs. the standard technique

Classic cross-sectional momentum ranks on raw 12-month return. What is ours here:

What is not proprietary: the momentum premium itself (Fama-MacBeth λ t=3.36) is a real but generic factor. Public yardsticks (MOM12, HI52, RESID_MOM, …) are kept in a separate non-proprietary registry (the strategy ledger § Known/public factor strategies) — the proprietary claim is only what beats those yardsticks (so far: the PIT-quality / C blend cutting drawdown on top of RISKADJ).

3. How it works (methodology)

Full parameterization + every internal weight: the calculations and weights notes and the code. Result tables are not duplicated here — see the ledger.

4. Status, validation & honesty fence

THE headline — gross vs. net (binding, must travel with every number):

The doctrine (the project's core thesis — state it plainly): price strength is the only gross forward-return engine; value / quality / credibility / accumulation are veto / filter / context layers, not rankers; and no factor here is a fundable net-of-cost alpha vs the index (Nifty 500 B&H return/vol 0.89). The asset is PIT rigor + under-covered data + the analytical selection lens — not a backtested alpha strategy.

(governing): capital-allocation "C" is a RISK FILTER, not a return ranker — it works as a 50/50 rank blend / descriptive tilt, NOT a hard veto and NOT a standalone ranker; head-to-head it subsumes the 4-metric quality lens (ROCE/D-E/OPM/interest-cover). Standalone value and standalone quality do not beat the index here (QUALITY α≈0, BOOK_YIELD α −1.8% / MaxDD −82%).

Full failure-models table (BOOK_YIELD, EARN_YIELD, QUALITY-standalone, momentum-as-fundable, C-BLEND-as-book, PEAD book, …): the strategy ledger § BLOCKING FAILURE MODELS. Cite the exact recorded numbers before re-attempting any of them.

5. Where it lives (code· routes· DB· timers)

6. Data & provenance

7. Terminology canon

8. Decision & session history

9. Open items / frozen work

10. Sources of truth

Slow rotation — the quarterly LOWVOL_MOM anchor

The one form of this family that survived the participation-cost recut is now a live surface: /dash/momentum-scan/slow (declared child of the scanner). Rule as validated: large-cap gate (top turnover quintile, self-scaling)· LOWVOL_MOM = 0.5·pctrank(6-mo momentum) + 0.5·pctrank(−66-day vol)· top-25 equal-notional· quarterly clock· hold band ≤35 (members stay while ranked ≤35; refill from the top — the turnover discipline IS the strategy). Numbers on record: family flat-cost ~1.10 → net ~1.02 @₹50cr under the Almgren participation model; beats the index net up to ~₹100–150cr capacity; defensive beta, not selection skill. Engine: the slow rotation code (nightly --refresh, rebalances only on quarter turn; bounded slow_rotation table). View: the slow rotation view code (live rank drift computed on read; CSV; descriptive fence). Ledger anchors: §§ 2026-06-24 cost-realism· 2026-07-02 corrected participation model· 2026-07-05 C-BLEND recut.

Factor league — the classic families, ranked by our numbers

/dash/factor-league (Strategies lens): the famous "premium" strategy families ranked by the return/vol + alpha measured in OUR 14y walk-forward — not textbook claims. League order (flat-cost, ₹5cr universe, labeled): PACER-25/RISKADJ 1.13· QUAL_MOM 1.10· STEADY-25/LOWVOL_MOM 1.10 flat → NET 1.02 @₹50cr = the only net survivor and the AUTO-PORTFOLIO· SPRINTER-25/MOM12 1.06· then the failures shown with their numbers (DELIV_MOM 0.85· QUALITY 0.76 α≈0· EARN_YIELD 0.70· BOOK_YIELD 0.62 α<0 REJECTED) vs the 0.89 Nifty-500 hurdle. Live rosters (top-25) + daily churn feed: the factor league code → factor_league/factor_league_churn; view the factor league view code. Every number restates the frozen ledger; the page may not soften them.