← Projects·Quantitative Researcher
Cross-Sectional Momentum (18 coins)
A cross-sectional momentum study across 18 BTC-correlated coins: each rebalance, go long the top decile by 14-day return and short the bottom decile. The interesting question is what survives the out-of-sample window.
The hypothesis
Cross-sectional momentum — long winners, short losers — has decades of equity literature. Does it survive in a small crypto universe (18 BTC-correlated coins)?
What the project does
- Universe: 18 altcoins, daily prices.
- Each rebalance day, rank by 14-day return; long the top decile, short the bottom.
- Compute IS Sharpe, then freeze the OOS window before touching data.
- Report the OOS Sharpe with a block-bootstrap 95% CI.
The result
- In-sample Sharpe: 0.91 (looks like an edge).
- Out-of-sample Sharpe: −0.03 (the OOS window quietly goes the other way).
- 95% bootstrap CI straddles zero — cannot reject the null.
How to read this result
This is, by construction, a mostly null result. Cross-sectional momentum on 18 BTC-correlated coins over a 14-day rebalance horizon is a deliberately tight universe — the coins move together, the cross-sectional dispersion is small, and what looks like IS alpha is largely noise. The IS Sharpe (0.91) is not real alpha; the OOS decay to −0.03 is the true signal content of this experiment, which is approximately zero.
I ship it anyway because:
- The OOS test was pre-registered — the window was locked before data was touched.
- The CI bounds were computed honestly — block bootstrap on the OOS period.
- A research book that ships nine winners and hides the failure modes is a book primed for selection bias. This project is the failure-mode.
The discipline is the OOS lock — the moment you peek, the test is dead.
The cross-sectional alpha literature gives the seat a realistic bar: BTC-correlated coins are too tightly coupled for cross-sectional dispersion to be a reliable signal at this horizon. If you want a deployable version of cross-sectional alpha, expand the universe, lengthen the rebalance horizon, or move up the stack to pair-cointegration inside a sector ETF basket (project 05 has the cointegration pre-filter for exactly this reason).