Data to 15 October 2026
About

Pre-registered research

Momentum, third review, and trend by speed: pre-registered specification

Written 2026-10-15, before any result below was computed; the commit that adds this file is the freeze. Changes after results are logged at the bottom with the date and the reason. Brief: docs/briefs/momentum_v3_and_trend_speeds.md. Builds on momentum_barometer_spec.md (MO-H1 to MO-H5: the stock momentum premium passed, the blend failed MO-H2, the crash flag MO-H3 was directionally strong at p 0.035 against a bar of 0.0167, sector rotation failed) and trend_models_v2_spec.md (TM-H1 to TM-H7: volatility scaling, slow/fast turning points, Markov switching, the 52-week high across sectors and variance ratios all failed on index trend). The 24-vote trend score of trend_barometer_spec.md stays as registered; nothing here changes it.

The study’s working folder is research/studies/momentum-and-trend-speed/ (the simplified desk, docs/plans/research_desk.md); this file is its frozen plan.

What the literature says, and what I expect

Every reference below was checked on 2026-10-15 against the publisher’s or RePEc’s record (title, authors, journal, volume, year) and its abstract; where only the abstract was seen, the claim cited is the abstract’s.

Why the Man result may not carry over here. Their speeds are long/short, so a fast model can be short in a crash; mine are long or cash. Their crisis gains lean on bond longs and equity shorts across 50 markets; mine are one market at a time, with gold and the G-sec index the only non-equity markets. They pay institutional execution costs and no tax on trading; my replays pay 0.10% each way and a resident investor’s capital-gains tax, and a faster rule realises gains more often. Expectation for Part B, stated now: the fast sub-score cuts the worst fall and the loss in the market’s worst months, earns no more before tax than the slow one, and earns less after tax; a fast-tilted blend is not reliably different from the equal blend (the registered score); no speed beats buying and holding after deflation.

Part A: stock momentum (the barometer’s instrument)

Data and universe (unchanged from momentum_barometer_spec.md)

The point-in-time liquid NSE universe, month-end panel, adjusted bhavcopy closes (price returns), eligibility, quintile construction, partial-month exclusion and dating conventions of compute/barometers_momentum.py, as run in production. Formation months from the first month-end with 300 eligible stocks to the last completed month. Long-short is Q5 − Q1, equal weight, gross. Long-only is Q5 net of 0.25% each way against the universe’s equal weight. Newey-West t with 6 lags, one-sided where stated. “Both halves” splits the formation months at their calendar middle.

Daily inputs (new). Daily returns per stock are close-to-close on its own consecutive adjusted bars (equity_prices_adjusted, ETFs and SME excluded). The daily return of a portfolio formed at month-end t is that of buy-and-hold equal initial weights from the close of t (value = the mean over its stocks of close/close at t; a stock that stops trading is held flat), so its daily returns compound exactly to the monthly return the barometer uses.

Multiple testing for Part A

α = 0.05/4 = 0.0125 for each of MO-H6 to MO-H9. Trials added to the momentum family’s deflated-Sharpe count (16 in MO-H1: 7 signals × 2 holding schemes, plus the 2 sector trials of the first run): MO-H6 2 (one- and six-month holding), MO-H7 2 (long-only, one- and three-month holding, as MO-H1), MO-H8 3 (estimation windows of 63, 126 and 252 sessions), MO-H9 2 (12-to-7 and 6-to-2). N = 16 + 9 = 25. The variance of trial Sharpe ratios for the deflated Sharpe ratio is taken, as in MO-H1, over the long-only excess series (the 14 of MO-H1 plus MO-H7’s 2). MO-H5’s sector rotation keeps its own count of 3; nothing here adds to it.

MO-H6: frog in the pan, the double sort (tested)

MO-H7: a seventh flavour in the blend (tested; the joining bar)

MO-H8: the volatility-managed momentum factor (a factor reading, with a stated bar)

MO-H9: intermediate against recent momentum (tested; expected to fail)

Part B: trend by speed

Data (as trend_models_v2_spec.md)

B1. How do the speeds differ? (measurement, with SP-H1 and SP-H3)

The table of measures above for fast, medium, slow, full and tilt, against buying and holding. Expected: median after-cost Sharpe of slow at or above fast’s; fast has the highest turnover.

B2. Crisis behaviour (Man’s Figure 1, with SP-H2)

B3. A fast-tilted blend (SP-H4)

SP-H5. Does any speed beat buying and holding? (tested; expected to fail)

For each of fast, medium, slow and tilt: the deflated Sharpe ratio of the equal-weight cross-market daily series of (strategy − buying and holding) is above 0.95 with N = 111, and the median Sharpe gap against buying and holding has its 95% interval above zero.

Descriptive readings on the trend pages (no trials)

Part C: what reaches the site

Not tested, stated in advance

No other ID windows, tercile counts, holding periods, volatility targets, caps, speed groupings, tilt weights, signal types or universes. No long/short or volatility-scaled version of the speed strategies (TM-H1 already rejected scaling here). No industry-neutral or size-split momentum. No exponential crossovers as in Man’s note: the speeds are groupings of the registered votes. Anything tried after the first results is exploratory and labelled so.

Results log

Implementation notes, Part A, 2026-10-15, written before its first run

(Freeze commit: written as 61466ed on the branch; rebased onto main before release as 34295db, with this file and the plan byte-identical; the author date (15 Oct 2026, 10:29 IST) is unchanged.)

Code: pipeline/tipsheet/compute/momentum_v3.py, reusing barometers_momentum’s panel, flavours, quintiles and long-only functions unchanged.

Implementation notes, Part B, 2026-10-15, written before its first run

Code: pipeline/tipsheet/compute/trend_speeds.py, on trend_v2.Panel (TM-H1’s markets, levels, cash and post-launch starts).

Results, 2026-10-15 (data to 13 October 2026)

Ran as specified; nothing changed after results were seen. Raw output in .cache/research/momentum-and-trend-speed/, frozen in docs/research/results/momentum_v3.json; study facts in research/studies/momentum-and-trend-speed/results/results.json. The independent recalculation (gemini-flash-high, from this plan’s definitions alone) matched all 18 headline facts; the look-ahead probes on σ̂ and the ID window passed.

Part A (formation months Dec 2003 to Aug 2026, 263 months).

Part B (79 launch-dated investable markets with three post-launch years; sessions from Sept 1999 to 13 Oct 2026; median 10.5 years per market).

Median across marketsFastMediumSlowFull (registered)Tilt 50/30/20Buying and holding
CAGR after costs10.9%11.0%10.1%10.6%10.8%12.9%
Sharpe over cash0.470.490.360.450.460.45
Worst fall−16.9%−17.7%−20.9%−16.2%−15.7%−38.0%
Skew of monthly returns0.980.670.400.820.89−0.34
Turnover a year (one-way)16.2×8.4×5.8×9.9×11.6×0
After-tax CAGR8.5%9.2%9.1%8.9%8.7%11.9%

Summary. Two of the four momentum questions passed: momentum built from many small moves outlasted momentum built from a few big ones (narrowly), and scaling the momentum factor by its own recent volatility cut its crashes roughly in half and raised its Sharpe ratio from 1.0 to 1.4. Neither intermediate momentum nor a seventh flavour helped. For trend by speed, every speed cut the worst falls and crisis losses by about two-thirds against holding, and fast rules cut them a little more than slow ones, but no difference between speeds cleared its bar, a fast tilt made no difference, and after tax every speed trailed buying and holding by about three points a year.

This is docs/research/momentum_v3_spec.md. The specification was committed before any result was computed; changes after that are logged in it with dates and reasons.