# Crypto pair ratios do not revert at 1-24 hours

> Trading all 276 pairs of 24 crypto perpetuals back toward their recent price ratio lost 3.0 to 14.6 bp per trade before costs in every one of 36 cells, so the reversal belief fails before the 28 bp cost.

E014 · Verdict: KILL · Cause: Below costs · Market: Crypto & DeFi · Mechanism: Behavioural · Horizon: 12h-24h · Tested: October 2026

Source: https://alphanotfound.eu/experiments/E014-pairs-ratio-reversion-crypto-perps

A common belief says that when one coin runs far ahead of another, the price ratio snaps back. We tested it on all 276 pairs of 24 crypto perpetual futures with hourly prices from 2021 to 2026: short the stretched leg, buy the other, close when the ratio normalised or after 12 or 24 hours. Before any cost, the average trade lost 6.5 bp across 12 variants, and all 36 cells (12 variants times 3 time windows) were negative, from -3.0 to -14.6 bp. The more stretched the ratio, the worse it did. The opposite trade gains at most 14.6 bp, still below the 28 bp cost.

## Key numbers

- **Gross per trade:** -6.5 bp (all 12 variants and 3 windows, trade-weighted; range -3.0 to -14.6 bp)
- **Cells with a positive gross:** 0 of 36 (12 variants times 3 windows (selection, validation, holdout))
- **Round-trip cost:** 28 bp (4 legs at 7 bp; net per trade averaged -34.5 bp)
- **Holdout at z above 3:** -12.2 bp (n 75,403 trades gross, against -6.2 bp at z above 2)

## The idea being tested

**Belief:** When one coin outruns another, the ratio between their prices snaps back, so short the leader and buy the laggard.

**Why people believe it:** Coins in the same market share news, flows and leverage, so their prices move together. If one jumps ahead for reasons unrelated to the other, traders who track the ratio expect the gap to close, and the trade is hedged against the overall market because both legs have equal size.

**Why it would persist:** Common belief, not tested here: closing a gap takes four trades with fees, so small deviations may be left in place.

## How it was tested

For every pair among 24 crypto perpetual futures we tracked the log of the price ratio each hour and measured how far it sat from its average over the previous 72 or 168 hours, in units of its usual spread (a z-score). When the ratio was stretched by more than 2, 2.5 or 3 units we bet on it returning: short the coin that had risen relative to the other, long the one that had fallen, with equal amounts on both sides. We closed when the ratio was back within 0.5 units or after 12 or 24 hours, and charged 28 bp for the four trades. All pairs were traded, so no pair was chosen after seeing results.

**Pre-registered:** no

**Data:** Hourly closing prices of 24 USD-margined crypto perpetual futures, all 276 pairs (the public klines feed of the largest USD-margined crypto perpetual venue; 1 hour; 2021-01..2026-10)

**Universe:** 24 liquid crypto perpetual futures; all 276 pairs, no pair selection. A pair needed at least 2,000 hourly observations.

**Signal:** Spread s = ln(Pi / Pj). z = (s - mean) / standard deviation, both over the trailing L hours, lagged by one bar. Entry at the close of the bar when |z| is above k. Short the spread when z is above k, long it when z is below -k. Variants: L in {72, 168} hours, k in {2, 2.5, 3}, maximum hold in {12, 24} hours: 12 variants.

**Execution:** Equal notional long and short (beta-1 hedge). Exit at the first close with |z| below 0.5, or after the maximum hold. One position per pair at a time; the next entry is possible after the exit bar.

**Costs:** 7 bp per leg per side, 28 bp round trip for the pair (4 legs).

**Controls:** No separate placebo. The reference is the same trades with the sign flipped, whose gross is the negative of the reversion gross.

**Sample split:** Three windows by entry time, 60% / 20% / 20%: selection, validation, holdout. Day-clustered t-statistics per cell.

**Pass criterion:** Reading after the fact; no criteria were recorded before the test: net return per trade above zero after the 28 bp cost.

**Kill criterion:** Reading after the fact; no criteria were recorded before the test: net return per trade at or below zero. The recorded verdict is rejection both ways.

**Power:** Between 11,388 and 194,272 trades per cell, but trades overlap in time and pairs share coins, so the effective sample is smaller than the counts. Day-clustered t-statistics account for same-day dependence only.

## Result

**Why it was rejected:** Reversion trades lost money before costs in all 36 cells, so adding the 28 bp cost leaves a net loss of 31.0 to 42.6 bp per trade in every cell.

**Observations:** 1,982,415

**Net mean:** -34.5 bp

**Median:** —

**Worst:** —

- Gross return per trade was negative in all 36 cells, from -3.0 bp to -14.6 bp. Net per trade ranged from -31.0 bp to -42.6 bp. Trade-weighted over all cells (1,982,415 trade records, with the same hours appearing in several variants) gross was -6.5 bp and net -34.5 bp.
- Pooled over the three windows and trade-weighted, gross was -5.8 bp at z above 2, -6.8 bp at z above 2.5 and -8.3 bp at z above 3: the more stretched the ratio, the worse reversion did.
- The effect grew in later windows: pooled gross was -5.8 bp in selection, -6.4 bp in validation and -8.4 bp in the holdout. In the holdout it was -6.2 bp at z above 2 (n 226,286) and -12.2 bp at z above 3 (n 75,403).
- Longer lookbacks and holds lost more: pooled gross was -4.9 bp for 72 hours with a 12-hour hold, -6.7 bp for 72 and 24, -6.3 bp for 168 and 12, and -9.7 bp for 168 and 24.
- Day-clustered net t-statistics were negative in 32 of 36 cells and below -2 in 22; the most negative was -6.1. Four cells (168-hour lookback, z above 3, selection and validation windows) had positive t-statistics up to +1.3, although their trade-weighted net return was still -32.8 bp or worse.
- Per cell, trade counts range from 11,388 to 194,272 and day-clustered t-statistics from -6.1 to +1.3.
- The same trades with the sign flipped (the exit rule was built for reversion) show +3.0 to +14.6 bp gross per trade. That is not a gain: it stays 13.4 bp or more below the 28 bp cost in every cell.

### Reversion loses before costs, more so when stretched (bp gross per trade)

Gross return per reversion trade by entry threshold z and time window, trade-weighted over lookbacks and holds. All nine bars are negative and the holdout bar is the lowest at z above 2.5 (-10.0 bp) and z above 3 (-12.2 bp).

|   | Selection | Validation | Holdout |
| --- | --- | --- | --- |
| z above 2 | -5.9 | -4.9 | -6.2 |
| z above 2.5 | -5.1 | -8.0 | -10.0 |
| z above 3 | -6.9 | -8.1 | -12.2 |

### Even the opposite trade is far below the cost (bp per trade)

Gross return of reversion and of the same trades with the sign flipped pooled over all windows, against the 28 bp round-trip cost. The best mirror result, +8.3 bp at z above 3, is less than a third of the cost.

|   | Reversion (tested) | Sign flipped (not a built strategy) |
| --- | --- | --- |
| z above 2 | -5.8 | 5.8 |
| z above 2.5 | -6.8 | 6.8 |
| z above 3 | -8.3 | 8.3 |

### Longer lookbacks and holds lose more (bp gross per trade)

Gross return per reversion trade for each lookback and maximum hold, pooled over all thresholds and windows. The 168-hour lookback with a 24-hour hold loses 9.7 bp, twice the 72-hour, 12-hour variant (-4.9 bp).

|   | Gross per trade |
| --- | --- |
| 72 h lookback, 12 h hold | -4.9 |
| 72 h lookback, 24 h hold | -6.7 |
| 168 h lookback, 12 h hold | -6.3 |
| 168 h lookback, 24 h hold | -9.7 |

## Interpretation

**Why it failed (interpretation, not established):** Ratios were weakly trending at 1-24 hours. The tested sign was wrong rather than merely small, so costs were not what decided the reversion result.

**Lesson:** A hedge removes market direction but not the relative move, which need not revert. Reporting gross return before costs, by threshold and window, shows whether the sign is wrong or the size is merely small.

**Scope:** Covers 24 liquid crypto perpetual futures, all pairs, hourly prices, entries on ratio stretches of 2 to 3 standard deviations over 72 or 168 hours, holds up to 12 or 24 hours, equal notional legs and a 28 bp cost. It does not cover selected or cointegrated pairs, longer horizons, other asset classes, baskets, or cheaper execution.

## Reproducibility

**Steps:** 1) Download hourly closes of 24 USD-margined crypto perpetual futures from 2021-01 onward. 2) For each pair take s = ln(Pi / Pj) and its trailing mean and standard deviation over 72 or 168 hours, lagged one bar; z = (s - mean) / sd. 3) Enter at the close when |z| is above 2, 2.5 or 3, short the spread if z is positive; exit when |z| is below 0.5 or after 12 or 24 hours, one open position per pair. 4) Trade return = side times the change in s, minus 28 bp. 5) Split trades 60/20/20 by entry time and report mean gross and net per trade with day-clustered t-statistics.

**Grade:** COMPLETE

---
AI-generated research, checked but not peer-reviewed. Historical, experimental research, not investment advice. Dataset Terms of Use: https://alphanotfound.eu/terms
