Strategy Graveyard
← All strategies

time-series momentum

Crypto trend timing (BTC/ETH)

No alphaArchived · long / flat · 2014-2026

Pre-registered 2026-10-17 (commit b7be3df) · 1 run · data snapshot 2026-10-17T125327Z

The idea

Trend following on the two largest coins. Hold BTC and ETH while their 30-day return is positive, cash otherwise. The point is not to predict rallies but to be out during the long bear markets, where crypto has fallen 60% to 85%, at the cost of lagging when prices melt up. Time-series momentum of this kind is documented across asset classes since Moskowitz, Ooi and Pedersen in 2012.

How it was tested

Pre-registered on 2026-06-06 with 6 lookback windows and a Bonferroni bar of t 2.39. The 30-day window passed, with t_HAC 2.70 and a drawdown of −47% against −76% for holding. There was no held-out data, and the winner of six windows carries an inflated t.

The re-validation on 2026-10-17 used a frozen snapshot, 25 bp per side, and a held-out sample never touched in June: BTC alone, 2014-10-19 to 2018-05-27. Fills were measured at the close and one day later; both had to pass t 1.65 against buy-and-hold of the same coins. Declared power was only 30-40%: a fail was the likely outcome even with a real edge, and the rule was to archive anyway.

Where it died

The in-sample period still passed, at t +2.38 with the late fill. The held-out alpha was large, 30.8% a year with a beta around 0.54-0.55, and survived doubled costs. But its t was 1.42 with the one-day-late fill (1.81 with the optimistic one), and the condition was joint.

The demo had never tested any of it. An audit on 2026-09-09 found 0 crypto executions since 2026-08-01: the executor had never opened a real position.

The record

Thesis

Hold BTC and ETH only while their trailing 30-day return is positive, cash otherwise. The value is not predicting rallies but being out during the persistent −60% to −85% bear markets, at the cost of lagging in melt-ups.

Prior: The June pass was the best of six lookback windows, so its t was inflated by the winner's curse. Declared power of the held-out test was only 30-40%: a fail was the most likely outcome even if the edge is real, and the rule was to archive anyway.

Specification

signal
long a coin if close / close 30 days earlier − 1 > 0, else flat; equal-weight BTC + ETH
held out
BTC only, 2014-10-19 to 2018-05-27 — never used in the June selection
execution
7-day executor after each UTC close, measured two ways: fill at that close (optimistic) and fill one day later (pessimistic). Both had to pass.
costs
25 bp per side (commission plus slippage); sensitivity at 50 bp
statistic
Jensen alpha against buy-and-hold of the same coins, Newey-West lag 30

Gates

Pre-registrationpass
Was the hypothesis, its parameters and its pass/fail rule written down before any data was looked at?
Re-validation pre-registered and reviewed twice before the run; the rule (L30) frozen since June.
Gate 7 — Jensen alphafail
After regressing out market exposure, is there alpha left?
t_HAC ≥ 1.65 and alpha > 0 on the held-out, in both fill assumptions
t (HAC)+1.42t hac optimistic fill+1.81alpha per year pct+30.80beta0.54-0.55trades1,317
Benchmark is buy-and-hold of the same coins, not SPY. Fails with the pessimistic (one-day-late) fill.
Gate 8 — Capture-preserved alphanot evaluated
Does the subset of trades a real portfolio can actually take keep the alpha?
Two assets, no competition for slots — every signal is executable.
Gate F — Frictionpass
Is the alpha per trade large enough to pay for its own execution?
held-out alpha > 0 at 50 bp per side
alpha per year pct at 50bp+25.50
The house 0.30%/trade gate is calibrated for equity trades; here real costs are inside the returns and this condition doubles them.

Why it died

Not an "alpha never existed" case. On held-out data the point estimate (+31-38% a year) was the same size as the June in-sample estimate (+29.5%), and the per-cycle profile was textbook trend-following (it lagged the 2017 bull, +805% against +1,886% for holding, and lost less at the start of the 2018 bear). But with a one-day-late fill the held-out t was 1.42, below 1.65, and the condition was joint. No confirmation, no deployment. The forward paper track ran against it too (alpha −23.8% a year, t −1.28, no power).

What it taught

A strategy with three independent cycles in its history cannot be validated by slicing that history — only new data can. The held-out was the right test and it was underpowered by construction; that was written down before the run and it did not change the rule. Separately, the demo never tested execution: the executor saved the intended position instead of the real one, and the account recorded 0 crypto fills for weeks while the state file said LONG.

Verdict history

  1. 2026-06-06Pre-registered, 6 lookback windows, Bonferroni t ≥ 2.39
  2. 2026-06-06Single run: L30 passes in-sample (t_OLS 2.65 / t_HAC 2.70, net +5.6%/yr over holding, drawdown −47% vs −76%); no held-out available
  3. 2026-09-09Demo audit: 0 crypto executions since 2026-08-01 — the executor never opened a real position
  4. 2026-10-17Re-validation with snapshot, realistic execution, real costs and a BTC 2014-18 held-out: in-sample still passes (t +2.38 pessimistic), held-out fails (t +1.42) No alpha