Strategy Graveyard
← All strategies

time-series momentum / trend following

Time-series momentum on ETFs

No alphaArchived · long · 2014-2026

Not pre-registered — see caveat · 3 variants · data snapshot 2026-09-19T090800Z

The idea

Compare each asset with its own past, not with other assets: hold it while its return over a lookback window is positive, step out when it turns negative. Trend following of this kind is one of the best-documented effects in finance, with a century of multi-asset evidence behind it (Moskowitz, Ooi and Pedersen; Hurst, Ooi and Pedersen). Here it was applied to 12 ETFs covering US and international equity, bonds, commodities and real estate.

How it was tested

Not discovered by pre-registration. Three variants: a 63-day lookback held 63 days; a 252-day lookback skipping the last 21 days, held 21; and a 126-day lookback held 21. Entry at the next open.

On 2026-05-22 a walk-forward test rated 3 of 4 lookback variants robust, and a blend with SPY lifted the Sharpe ratio by +0.118 over SPY alone. On that basis it was added to the demo.

Where it died

It stayed in the demo two days. On 2026-05-24 a retroactive check of out-of-sample alpha against SPY, with beta assumed equal to 1, came back negative for all three variants: t −0.84, −0.47 and −1.05. It was removed.

Later instruments agreed. Jensen alpha on the full history, on 2026-09-08, gave t −0.19, −0.48 and −0.87. After the gap-fill engine fix, on 2026-10-17, the figures were −0.403, −0.709 and −1.083, with beta between 0.486 and 0.572 and 292 to 438 trades per variant. One anomaly is on record: two of the three variants had already moved by about 0.05 in t between earlier runs on the same snapshot, with no cause identified.

The record

Thesis

Each asset is compared with its own past: hold it while its return over a lookback window is positive. Trend following of this kind is documented across a century of multi-asset data. Applied to 12 ETFs covering US and international equity, bonds, commodities and real estate.

Specification

variants
3m_h3m (63-day lookback, hold 63 days); 12m_skip1m (252-day lookback skipping the last 21, hold 21); 6m (126-day lookback, hold 21)
universe
12 ETFs across 4 asset classes
entry
next open
sizing
neutral default for the re-measurement — $5,000, 1% risk per trade, 10 slots

Gates

Market-adjusted alpha (legacy)fail
Does the strategy beat SPY over the same holding windows, assuming beta = 1?
alpha t > 1.65
variants passing0 / 3oos alpha t 3m h3m-0.84oos alpha t 12m skip1m-0.47oos alpha t 6m-1.05
Out-of-sample per-trade alpha vs SPY with beta assumed = 1 (May 2026 instrument). Negative for all three variants.
Gate 7 — Jensen alphafail
After regressing out market exposure, is there alpha left?
t ≥ 1.65 per variant
variants passing0 / 3t hac 3m h3m-0.40t hac 12m skip1m-0.71t hac 6m-1.08beta range0.486-0.572n range292-438
Full-history Jensen alpha, 2026-10-17 re-derivation. All three alphas negative.

Why it died

Every ETF the momentum rule selects underperforms what its market exposure (beta about 0.5) would have paid during the holding window. It was promoted in May on a portfolio statistic — a 20% SPY / 80% momentum blend raised the Sharpe ratio from 0.723 to 0.840 — that came from low correlation and low volatility, not from returns: the blend earned +4.03% a year against +13.40% for SPY alone. The configuration actually running in the demo did not even include the SPY core the blend needed.

What it taught

A Sharpe lift from diversification and alpha are different claims. The first pays off only with leverage; without leverage, a satellite whose every pick loses to the index is simply a worse index. This was one of the cases that made per-trade alpha against the benchmark a mandatory gate.

Verdict history

  1. 2026-05-22Walk-forward: 3 of 4 lookback variants ROBUST; blend Sharpe lift +0.118 over SPY; added to the demo Passed all gates
  2. 2026-05-24Retroactive alpha vs SPY: negative for all 3 variants; removed from the demo No alpha
  3. 2026-09-08Re-measured with Jensen alpha on full history: t −0.19 / −0.48 / −0.87 No alpha
  4. 2026-10-17Re-derived with the gap-fill engine: t −0.403 / −0.709 / −1.083. Two of the three had already drifted by about 0.05 in t between earlier runs on the same snapshot, without an identified cause