Event study + backtest Free public data 30-day diagnostic

Liquidation Cascade Mean Reversion

After a large, rapid liquidation event flushes leveraged positions in one direction, the forced flow is exhausted — and price should snap back. This site tests the core concept with an event study on real exchange data (Binance OI, Bybit klines, Hyperliquid candles) and a trade-level backtest with real fees.

What we tested

The idea (from a practitioner strategy doc) has three parts:

Scope of this test: directionality of mean reversion after cascades — does price actually pull back, at what horizon, under which conditions? A trade-level build follows only if the concept survives.

Can you pull liquidation data for free?

Verified live on 2026-09-10 — the honest answer is partially:

ExchangeHistorical liq RESTReal-time liq WSHistorical OIHistorical OHLCV
BinanceGONE (404)forceOrder WSfutures-data OI (30d)klines (deep)
HyperliquidGONE (rejected)per-user onlyno deep free OIcandleSnapshot (deep)
Bybitnever existedallLiquidation WS1h OI (~4.5y)klines (deep)
Consequence: you cannot replay actual historical liquidation prints for free. This study uses the OI-proxy cascade — OI destruction + price shock — which is the strategy's own confirming condition. True-print forward validation is Phase 4 (collector not yet deployed).

How cascades were detected

A cascade for symbol S is a 15-minute window where:

No lookahead: cascade detection uses only past/current bars; forward returns are measured from the wick extreme (the flush low/high). Universe: top-30 cross-listed perps by 24h turnover. Realistic fills enter at the open of the first bar after the wick — buying the exact wick is not executable and inflates results ~9×.

Events (30 days)

Total cascades
64
OI-proxy, 0.5% variant
Long-liq flushes
33
buy the dip
Short-liq flushes
31
sell the rip

Real events captured

  • 08-22 crash cluster: ARB −9.6%, USELESS −12.1%, WLD −10.8%, DOGE −8.4% (long-liq)
  • 08-19 cross-market squeeze: SOL/TRUMP/AAVE/DOGE short-liq

Does price snap back after the flush? (H1)

Forward fade returns from the flush, by side and horizon. The tradable column is open-entry (next bar open after the wick); wick-entry is shown to expose the optimism gap.

CohortHorizonnWick-entryOpen-entry (realistic)
Long-liq flush (buy the dip)1h32+4.34%+0.49%
Long-liq flush (buy the dip)4h32+4.64%+0.73%
Long-liq flush (buy the dip)24h30+6.80%+2.80%
Short-liq flush (sell the rip)1h31+1.02%+0.06%
Short-liq flush (sell the rip)4h31+2.14%+1.20%
Short-liq flush (sell the rip)24h31+1.19%+0.26%

When is the snap-back stronger? (H2 & H3)

Phase 3 — engine results

Frozen rules: fade the flush (long-liq → long, short-liq → short); entry at first bar open after the wick; stop 1/2/3 ATR beyond the wick; target 1/1.5/2R; time stop 2/4/24h; first-touch exits (TP-first on same-bar ties); real Bybit fees (taker 11bps RT / maker 4bps RT); 1% risk per trade, $1,000 start, compounded.

Headline configuration

Config
s2 ATR / tp2.0R / 24h
long (fade)
Trades
32
win rate 50%
Net total (taker)
+15.2R
net PF 2.24
MC P(loss)
2.25%
median +15.3R

Direction split — the decisive finding

CohortConfigs net+Both train/test halves +BestWorst
Long-only fades27/2724/27+15.2R+0.2R
Short-only fades6/270/27+2.7R-10.1R
Long-only fades are a parameter CLUSTER — 27/27 configs net-positive, 24/27 positive in BOTH train/test halves (24/27 of the long grid survives the time split). Short-only fades fail out-of-sample by time — 0/27 configs positive in both halves (the short edge lived only in the first 2/3 of the sample). Cluster-vs-spike across the full grid: 24/54 (44%) — a borderline cluster (thresholds: spike ≤20%, cluster ≥60%).

Top configurations (by net total R, taker)

DirectionStopTPHoldnWin%Net RPFBoth halves+
long2 ATR2.0R24h3250%+15.2R2.24YES
long1 ATR2.0R24h3250%+14.9R2.10YES
long2 ATR1.5R24h3256%+13.7R2.35YES
long3 ATR1.5R24h3253%+11.8R2.13YES
long1 ATR1.5R24h3253%+10.4R1.84YES
long2 ATR1.0R24h3262%+9.9R2.23YES
long3 ATR2.0R24h3247%+9.4R1.75YES
long3 ATR1.0R24h3259%+8.7R2.05YES
long1 ATR2.0R4h3256%+7.5R1.73YES
long1 ATR1.5R2h3269%+7.1R1.99YES
long1 ATR1.5R4h3259%+7.0R1.77YES
long1 ATR2.0R2h3266%+7.0R1.93YES

What could be fooling us

What we concluded

Supported

  • Long-liq cascades (flushes down) do snap back: 91% within 1h, monotonic in OI destruction, net-positive after taker costs at 1h-24h.
  • Long-only fades survive a full parameter grid + train/test time split (24/27 both-halves+).
  • The doc's trend filter is directionally right: counter-trend flushes revert more.

Not supported / caveats

  • Short-liq fades (sell the squeeze) show no robust edge — fails time-split.
  • 30-day diagnostic only (Binance 5m-OI cap): n=63 events total, no walk-forward OOS yet. Per house rules, treat as a promising diagnostic, not evidence.
  • Survivorship (current listings), no true liquidation prints (OI proxy), deep MAE (long −2.3%, short −6.1%) → wide stops required.

How to re-run everything

# 0. data (free APIs)
python3 phase0_universe.py
python3 pull_oi.py          # Binance 5m OI (30d) + Bybit 1h OI (4.5y)
python3 pull_klines.py      # 15m klines: Bybit, Binance, Hyperliquid (90d)
# 1. events
python3 detect_cascades.py --theta-oi 0.005
# 2. event study
python3 event_study.py && python3 run_analysis.py
# 3. trade-level
python3 trade_engine.py --tag v1
# 4. site
python3 build_site.py

Artifacts: events/cascades.json, events/forward_returns.jsonl, results/trade_results_v1.json, trades/trades_*.jsonl. Full write-up: PLAN.md + RESULTS.md.