Validation · #357857 · Crypto
Cointegration stat-arb
Dynamic Cointegration-Based Pairs Trading Strategy in the Cryptocurrency Market, 2021
The rule
Form a Johansen-cointegrated basket of BTC-denominated alt-coins; trade its Z-score — enter when |Z| > 2, exit when |Z| < 1.
Fails
7.94→−5.90
claimed → measured Sharpe
7.94
Claimed Sharpewith maker rebates
−5.90
Net Sharperealistic 7.5 bps taker
17.70
Replicated gross Sharpein-sample minute-mining
AssetCrypto
StrategyJohansen basket
Universe7 alts / BTC
Period2018–2024 OOS
Costs7.5 bps taker
Assets tradedBTC ETH EOS LTC XRP TRX ADABinance USDT pairs, each alt re-denominated in BTC. BCH (the paper's 8th coin) dropped — the Nov-2018 fork breaks its ticker history.
The exact rules
| Formation window | → | Fit a Johansen-cointegrated basket of the BTC-denominated alts; track its spread Z-score |
| |Z| > 2 (spread stretched) | → | Enter — trade the basket back toward its mean |
| |Z| < 1 (spread reverted) | → | Exit to flat |
The backtest, re-run
Inside the model
The validation ladder
| C0 | Replicate | Gross 17.70 — reproduces the in-sample minute-mining artifact (claimed 7.94). |
| C1 | Honesty | Realistic 7.5 bps taker → −5.90; the strategy turns over ~6,000×/yr. |
| C2 | Deflate | The gross edge is in-sample-mined over a basket on 131k minute bars; honest net is −5.90. |
| C5 | Frictions | Cost sweep 0bp → 8.0, 7.5bp → 1.9, 15bp → −5.0, 30bp → −17.6. Breakeven ≈ maker-rebate territory. |
| C6 | Decay | Frozen basket gross 7.6 (2019) → 1.0 (2020–22) → negative (2023). Cointegration breaks OOS. |
| C7 | Originality | BTC-neutral (β ≈ −0.02, R² 1%) — genuine relative-value, but α t = 1.8 (not robust) and decays. |
Reproduces (gross)Real after costsHolds out-of-sampleCrisis-robustOriginal vs BTC
How we rebuilt it
- Data
- Binance USDT minute, re-denominated in BTC (alt/BTC) per the paper — the step that makes the alts cointegrate.
- Method
- Johansen-basket cointegration → OU half-life Z-window → event-driven |Z| backtest.
- Universe
- BitMEX 8 → Binance 7 (BCH dropped — Nov-2018 fork breaks its ticker).
- Regime stated
- None — minute window 2018–2019; relationship persistence tested hourly to 2024.
Deviations from the paper
- Data: BitMEX (XBT-denominated) → Binance USDT, BTC-denominated; same window 2018-09→2019-10.
- Paper assumed BitMEX maker rebates (negative fees) → realistic 7.5 bps taker (the key honest correction).
- Sharpe convention undisclosed → daily returns ×√365 (crypto trades 24/7).
ProvenanceBeta
- Engine
- v1
- Blocks
- 8 blocks · 7 new (cointegration · pairs · crypto adapter), 1 reused (metrics)
- Data
- binance/7coin_btc_denom · minute 2018–19, hourly to 2024
- Source
- Binance market data ↗ · via ccxt ↗
- Tests
- 14/14 passing · statistical + adversarial-code QA clean
Your library