← Lab
S035

Cross-sectional ETF momentum rotation (12-1 / 1M)

etf-momentum-rotation-12-1-v1
failed Stage 1 (Quick-screen) 2026-07-04
Share: Twitter / X LinkedIn

ID: S035 Slug: etf-momentum-rotation-12-1-v1 Run date: 2026-07-04 Failed at: Stage 1 (Quick-screen) Outcome: FAILED — 4 of 5 gates fail. Headline metric: strategy 5.8%/yr vs SPY 11.0%/yr → net excess −5.3%/yr (gate needs ≥ +2.0%) Fail reason: Under honest methodology — survivorship-free universe, real friction, dividends, a point-in-time liquidity filter, and significance testing — the 12-1 ETF momentum rotation loses to simply holding SPY by ~5%/yr, with a worse drawdown. The cross-sectional signal has the right sign but is not significant. The edge the source study reported was an artifact of the defects this spec set out to correct.

What we found

Gate Threshold Result
G1 — net excess return ≥ +2.0%/yr vs SPY −5.26%/yr
G2 — bootstrap significance excess 95% CI lower bound > 0 −0.84% (LB)
G3 — cross-sectional validity top−bottom > 0, p < 0.05 +0.62%/mo, p = 0.118
G4 — drawdown tail ≤ 1.25× SPY max-DD (18%) 23%
G5 — CVaR-95 tail ≤ 1.25× SPY CVaR (−13.2%) −14.0%

Sample: 244 months, Dec 2005 → Mar 2026. Turnover ~30%/month. Leveraged/inverse funds excluded: 314. The pre-run forecast called this almost exactly — "much of the apparent alpha may be a beta-timing artifact that a SPY benchmark absorbs… the most likely failure points are G4/G5… the fully-invested, no-cash-filter design eats every benchmark drawdown plus rotation risk."

The universe question, answered

A frequent and fair worry: why thousands of ETFs, when the source used ~40? The answer is that the 6,049 is only the raw ingest pool (every US ETF ever classified, incl. ~1,900 later delisted) — needed to build the universe honestly. The tradeable count each month, after the $25M point-in-time liquidity filter, is far smaller: 32 ETFs at the first formation (Dec 2005) — right next to the source's 40, but survivorship-free — growing to a median of 152 and a max of 480 as the ETF market expanded (see the per-month chart). The source's hand-picked 40 survivors is exactly the bias this corrects: it silently excludes the funds momentum rotated into that later died, which flatters the backtest.

Why the corrections kill it

The source's headline came from a stack of defects, each of which this spec removed:

Verdict

NULL — cut at Stage 1, counts toward the swing pillar's C1 (cross-asset rotation) family (owner-assigned), reinforcing S031's finding: liquid-ETF rotation buys drawdown, not diversification, and loses to passive. A famous, heavily-marketed edge, failed transparently on honest gates — and a clean demonstration that the methodology corrections (survivorship, friction, PIT universe, significance) are the whole difference between the source's "success" and reality. No variant is queued; a cash/absolute-momentum overlay would change the object (a new S-NNN), and the bar is high given the base strategy loses to SPY across every lookback.

Baseline SPY total return. Friction 20 bps round-trip on turned-over notional. Survivorship-free PIT ETF universe (Tiingo, incl. delisted). Block bootstrap: mean block 6 months, 10,000 resamples. English per repo convention. Ledger: swing-pillar-ledger.md (family C1).

What we tested — the recipe

What we tested — cross-sectional ETF momentum (12-1)
monthly top-10 rotation over a survivorship-free, liquidity-filtered ETF universe
Universe — every US ETF incl. delisted, PIT (survivorship-free)no survivor biasLiquidity — trailing-63d median $volume ≥ $25M at each month-end$25M MDVSignal — 12-1 momentum, rank, buy top-10 equal-weighttop-10Execution — next-day adjusted open, monthly rebalance20 bps r/tGate: net excess ≥+2%/yr · bootstrap significance · top-minus-bottom · DD & CVaR ≤1.25×SPY · 2005→2026
Confirmatory re-test of an externally in-sample-selected momentum parameterization under corrected methodology (survivorship-free, real friction, dividends, PIT universe, significance).

Slice & dice

Growth of $1 — momentum rotation vs SPY
strategy 5.8%/yr vs SPY 11.0%/yr — it loses to buy-and-hold
0.6x1.2x2.3x4.4x8.4x20062008201020122014201620182020202220242026momentum rotationSPY (buy & hold)
Net of 20 bps round-trip friction. The rotation underperforms simply holding SPY by ~5%/yr — the edge the source study reported does not survive honest methodology.
Eligible ETFs per month — the real (survivorship-free) universe
first 32, median 152, max 480 — NOT the 6,000 raw pool
012625237850420062008201020122014201620182020202220242026ETFs passing the $25M-MDV filter
How many ETFs actually qualify each month after the point-in-time liquidity filter — ~32 in 2005 (near the source's 40, but unbiased), growing with the ETF market. Delisted funds included.
Lookback sweep — annual net excess vs SPY (robustly negative)
every momentum lookback loses to SPY; the sign is stable, so the miss is not a knife-edge
4mo6mo9mo12moflat = -5
Net excess return per year vs SPY for each 12-1-style lookback. All negative — a stable, not fragile, fail.
← Olderetf-momentum-rotation-12-1-v1 Newer →pairs-johansen-basket-v1

Mechaniq provides information, not investment advice. We do not execute trades. Past results are no guarantee for future performance. You are solely responsible for your trading decisions.

Lab · Methodology · Greeks Lab · About · FAQ · Glossary · Privacy · Terms · mechaniq.trade © 2026

07 Jul 2026, 07:10