BtcLiquidationCascadeOvershootReversalLS
Hypotheses
BTC Liquidation-Cascade Overshoot Reversal, Long-Short (Single-Instrument BTCUSDT.BINANCE Perp — NEW Information Source: Fade Price Overshoot Driven by EXTREME Forced-Liquidation Bursts on the SAME Perp, Liquidation-Volume Z-Score Gated, Tight Stop / Revert-to-Mean, 3-Parameter)
Hypotheses
A LONG-SHORT, single-instrument, EVENT-DRIVEN reversal on the BTCUSDT.BINANCE USD-M perpetual whose signal is a genuinely NEW INFORMATION SOURCE — the LIQUIDATIONS feed — directly answering the meta-learner's L38 mandate ('only submit momentum ideas that add a genuinely new information source, not a new instrument/timeframe'). It is NOT price-only momentum/confluence (L38-banned, exhausted), NOT a major→alt transfer or ratio-momentum (L40-banned), NOT Hyperliquid (L39-banned), and NOT another supplementary CONFIRM on price momentum (taker/OI/premium all died as weak confirms). Here liquidations ARE the primary signal, driving a distinct mechanism: when a wave of forced liquidations dumps/covers size through the book in a compressed window, price OVERSHOOTS fair value; once the forced flow exhausts, opportunistic liquidity refills and price snaps back — a crypto-native microstructure edge that does not exist in unlevered markets. The signal and execution are the SAME instrument (BTCUSDT.BINANCE perp), so the developer cannot route elsewhere without breaking the signal (my prior SOL version was swapped to a different strategy by the developer and never actually ran as designed — this is a fresh, never-edge-tested mechanism, specified to prevent that). Binance liquidation data is explicitly collected (good coverage, unlike the taker-ratio coverage ceiling). It is engineered for the analyst's bars: a MODERATE (not ultra-extreme) z-score gate fires ~100-200 times over multi-year BTC history (measurable), BTC snap-backs of ~1-2% clear the ~0.10% fee, and a TIGHT stop (if the cascade keeps running) vs a revert-to-mean target gives favorable, low-drawdown reward:risk. It fills the under-target LONG-SHORT bucket (13.6% vs 86.4% long-only) and adds a genuinely non-price edge source to a book saturated with price momentum. 3 parameters.
Hypotheses
My recommendation is ABANDON, and it belongs before anything else. In iteration 2 I pre-committed in writing that if the tail-corrected sample came back negative or below the fee floor this should be abandoned rather than iterated a third time, and that the honest read would be that the fade direction is wrong. QA has delivered exactly that: the risk fixes did what they were supposed to (drawdown 12.9% to 4.4%, largest loss $5,111 to $1,796, position 101% to 35%) and with the tail contained the edge is simply absent (PF 0.465, Sharpe -1.45 with the CI entirely below zero, EV about -0.36R). The condition is met. I did NOT flip the strategy to trade WITH the cascade — I said last iteration that is a different hypothesis for the Research Lead to own, and inverting a strategy after seeing its sign is fitting to the test set — and I did NOT add a filter to find a profitable subset of cascades, which on 44 trades would be noise-fitting. The single change I made is a measurement-fairness correction to a bias I introduced myself. In iteration 2 I made the stop fire on an intrabar touch while leaving the target testable only on the close. That is asymmetric in a way that depresses the very number QA used to conclude the edge is absent: a bar that grazed the stop books a full loss, while a bar that reached the target but closed below it books no win and stays exposed to a later stop. The correction is defensible on realism grounds rather than convenience — a take-profit is a resting LIMIT at a favourable price and genuinely fills on the touch, whereas a stop is a market order filling at or after the touch with slippage — so the target now triggers on the touch while the stop keeps its pessimistic close-booking and is still checked first, so any bar touching both is recorded as the loss. Nothing else changed: no threshold, no lookback, no sizing constant, still three tunables. I am stating the predicted effect BEFORE the run so this cannot be read as a claim of edge: recovering touched-but-not-closed targets should lift the hit rate toward ~40% and the realized RR toward the designed 1.5, i.e. roughly breakeven before fees and still below the 0.15% floor. If the reviewer prefers the stricter close-only convention, the iteration-2 numbers stand as measured. The verdict is the same either way — abandon — and this change only ensures the number that decision rests on is not an artefact of my own bookkeeping. The new diagnostic splits target exits into touch versus close so the size of that artefact is visible rather than argued about.
Hypotheses
Negative-expectancy AND structurally unmeasurable — not worth 2 hours of optimization, and the developer's pre-registered abandon criterion is met. As measured: profit_factor 0.632, Sharpe -1.88 (CI [-4.76, 1.45]), avg_trade_return_pct -0.007% (negative), expectancy -$49/trade, PSR 0.20, commission 40.5% of gross — the liquidation-fade is a falling-knife (cascades continue more than they revert), confirmed across three iterations with the sign mapping verified correct. It is also on the recurring liquidation-feed data wall: the BTCUSDT liquidations series is forward-only from 2026-04-21, so despite years of BTC bars the entire backtest spans just 134 days in a single 2026 regime (63 trades, effective_daily_obs 68), and a 3-window walk-forward plus holdout cannot populate. The developer pre-committed: 'if the tail-corrected sample is still negative or below the 0.15% fee floor, this should be ABANDONED rather than iterated a third time' — that condition is met, and correctly declines to flip the direction (a different hypothesis; inverting after seeing the sign is fitting the test set). No parameter tuning flips a negative edge or buys the multi-year liquidation history the feed lacks; this is the L73 single-perp supplementary-gated directional family crossed with the data_unavailable liquidation wall. Failure pattern: no_edge/data_unavailable single-perp liquidation-fade, forward-only feed, single-regime sample (L73).
Implementation
Long/short liquidation-cascade fade on the BTCUSDT.BINANCE USD-M perpetual, 1-HOUR bars, with the liquidations feed as the primary signal (log-notional z-score times signed side imbalance; positive = forced-selling cascade, faded by buying). Entry is a fresh cross of +/- liq_z_thresh with the bar's displacement agreeing with the liquidation direction. Exits: a stop stop_atr_mult ATRs against the entry, detected intrabar and booked pessimistically at that bar's close and checked first; a snap-back target target_atr_mult ATRs in the fade's favour, now also detected intrabar because a resting take-profit limit fills on the touch (the iteration-3 measurement-symmetry fix); and a 12-bar max hold. Sizing is gap-aware — 2% of equity risked against max(stop_atr_mult, gap_atr_mult=3.0) x ATR, gross capped at 0.35x equity — because a stop inside a 1H cascade bar is not reliably enforceable. Three tunables: liq_z_thresh, stop_atr_mult, target_atr_mult.
Verification Results
CLEAN RESTART 2026-09-04 — this run's verdict history and learning records were removed and it was restarted from verification. Its previous abandonment came from the pipeline, not from the market: the Layer-2 harness mis-bound @staticmethod helpers (fixed), QA issued terminal performance verdicts on an unoptimized smoke test (removed — QA now judges correctness only), and sandbox timeouts came from backtest-slot starvation (fixed). The hypothesis and the strategy code are unchanged. Verify the code on its merits; performance is decided later by the full backtest and the optimizer.
Verification Results
Negative/absent edge (PF 0.63, avg_trade_return_pct -0.007%, commission 40.6% of gross, 63 trades). The liquidation-FADE direction is the likely culprit — cascades continue more than they revert on BTC 1H — a mechanism/premise finding, not a code fault. Code faithfully implements the hypothesis. Abandon at backtest-review per the developer's pre-registered condition; do not optimize and do not invert the sign inside this hypothesis (that's a separate Research-Lead hypothesis; a full-history run should size the sample vs the truncated 134-day sandbox).
Backtest Review
Genuinely new information source (liquidations as primary signal) and clean, correctly-built risk containment (max_drawdown 4.0%, tail bounded)
Backtest Review
Sign mapping verified correct across iterations; not a polarity bug
Backtest Review
Negative expectancy: PF 0.632, Sharpe -1.88 (CI [-4.76, 1.45]), avg_trade_return_pct -0.007%, expectancy -$49/trade, commission 40.5% of gross — fees exceed any gross edge
Backtest Review
Structurally unmeasurable: liquidations feed forward-only from 2026-04-21, so the whole backtest is 134 days in a single 2026 regime (63 trades, effective_daily_obs 68) — walk-forward/holdout cannot populate
Backtest Review
The fade direction is falsified: cascades continue more than they revert (falling-knife), confirmed across three iterations
Backtest Review
L73 single-perp supplementary-gated directional family (edge-dead); developer's pre-registered abandon criterion is met
Iteration History
Verification failed (Layer 4 — QA review):
- DECISIVELY NEGATIVE WITH A CATASTROPHIC LEFT TAIL -- the fade-the-cascade premise is falsified on a measurable sample. Over 41 trades (metrics_reliable=true): total_return -12.23%, profit_factor 0.465, Sharpe -1.48 (CI [-2.53, -0.21] entirely below zero), win_rate 0.415, avg_trade_return_pct -0.166% (negative, below the fee floor), avg_win $626 vs avg_loss $953 (inverted RR), and the decisive tell -- largest_loss -$5,111 vs largest_win $1,646, return_skew -8.98, return_kurtosis 123.3, probabilistic_sharpe 0.003. The sign mapping is CORRECT (verified: BUY on a forced-selling / price-down cascade = fade the dip, not inverted), so this is the genuine behaviour of the mechanism: fading a self-reinforcing forced-flow event is a falling-knife trade. Liquidation cascades CONTINUE (forced selling triggers more forced selling) more often than they revert, so the fade gets run over -- exactly the 41%-win-rate, small-wins, catastrophic-tail signature shown. The 'overshoot reverts once forced flow exhausts' premise does not hold net of costs on BTC 1H.
- THE 'TIGHT STOP' IS ILLUSORY ON 1H BARS, AND SIZING AMPLIFIES THE BLOW-UP. The stop is evaluated at the bar CLOSE, but a liquidation cascade moves price 5-15% intrabar, so it gaps far past the 1-ATR level before the close is checked -- the largest_loss -$5,111 on 2%-risk sizing is a ~10x overrun of the modeled per-trade risk (avg_position_pct ~101% of notional). Worse, the risk-first sizing anchors position size INVERSELY to the tight stop (tight stop -> larger position, as documented), so it takes the MAXIMUM position exactly where the stop is least enforceable. The 1H timeframe -- chosen deliberately to avoid the wall-clock SIGKILL that killed finer-bar siblings -- makes the hypothesis's core risk claim ('tight stop bounds the loss') structurally unenforceable during the very events the strategy trades. return_skew -8.98 / kurtosis 123 are the fingerprint of this: rare gaps through a stop that cannot fire in time.
Iteration History
Verification failed (Layer 4 — QA review):
- THE RISK FIX WORKED BUT THE TAIL-CORRECTED SAMPLE IS STILL NET-NEGATIVE -- the developer's own pre-committed abandon condition. The intrabar-stop and gap-aware sizing/cap fixes did exactly what they should: max_drawdown 4.4% (from 12.9%), largest_loss -$1,796 (from -$5,111), avg_position_pct 35% (from 101%), total_return -4.28% (from -12.2%). But containing the tail revealed the edge is simply absent: profit_factor 0.465, Sharpe -1.45 (CI [-2.44, -0.16] entirely below zero), win_rate 0.318 (DOWN from 41.5% once intrabar stops fire on time), avg_win $265 ~= avg_loss $266 (RR ~1.0), avg_trade_return_pct -0.148% (negative and below the fee floor), skew -9.68, kurtosis 138. The developer's own breakeven arithmetic assumed a 41.5% win rate for +0.04R; the realized 31.8% at RR ~1.0 gives EV ~= -0.36R. Fading self-reinforcing liquidation cascades loses even when the per-trade loss is bounded, because the cascades continue -- the premise, verified with the sign mapping correct across two runs (41 then 44 trades).
Iteration History
Verification failed (Layer 4 — QA review):
- MEASUREMENT-FAIR AND STILL NET-NEGATIVE -- the developer's pre-committed abandon condition, confirmed. The iteration-3 fix (target detected on an intrabar TOUCH, matching resting-limit fill semantics, while the stop keeps its pessimistic close-booking and is checked first) is legitimate and landed exactly where the developer forecast BEFORE the run: win_rate 0.318 -> 0.40, profit_factor 0.465 -> 0.544 -- the touched-but-not-closed winners were recovered. But the fair, tail-corrected sample is still a net loser: PF 0.544, Sharpe -1.13 (CI [-2.37, 0.45]), avg_trade_return_pct -0.082% (negative and below the 0.15% fee floor), avg_win $224 vs avg_loss $275 (RR ~0.82), return_skew -7.10, kurtosis 118, expectancy -$75/trade. Even with symmetric fair exits and the tail contained (max_drawdown 3.4%), fading liquidation cascades has no edge -- the fat left tail persists because cascades CONTINUE. The premise is falsified across three runs (41/44/45 trades) with the sign mapping verified correct.
Backtest and paper results are hypothetical. Trading involves risk of loss.