Article contents

Evidence and scope

Primary documentation establishes event and open-interest fields, not reversal profitability. Burst thresholds, entry and exit rules below are proposed experiments.

Data and marketsCrypto derivatives with venue-specific liquidation feeds. One exchange or an estimated liquidation heatmap does not represent the entire market.
Research timeframesOne-minute event aggregation and one- to five-minute confirmation are examples. Feed coverage, batching and receive-time latency limit what can be tested.
Liquidations rise as price crosses support 100; only after intensity falls and price reclaims 100.30 does the reversal candidate qualify.Open full-size illustration
Synthetic event prices and long-liquidated size. The auxiliary bars represent liquidation quantity, not total traded volume. Points are selected event landmarks, not consecutive bars or equal elapsed-time intervals.

Practical workflow

Workflow for Liquidation washout: distinguish exhaustion from a continuing cascade
The full steps appear below. At each stage, missing data or failed conditions require a recorded rejection reason.
  1. Verify the schemaSeparate position side, executed size and bankruptcy price.
  2. Identify the burstUse past baselines and an absolute minimum.
  3. Observe the price pathRequire penetration and reclaim within K.
  4. Test exhaustionIntensity falls and no new low appears.
  5. Trade or retain continuationKeep both competing branches in the sample.

Forced position closure is not a price-bottom signal

Washout describes strong forced-position pressure followed by recovery. Exhaustion can only be evaluated through subsequent behavior. If price keeps moving, continuation or cascade is the relevant competing hypothesis. A detector must retain both branches instead of retrospectively selecting liquidations that ended well.

Bybit allLiquidation defines S as position side: Buy means a long position was liquidated, and p is bankruptcy price [1]. PublicTrade instead defines S as taker side [2]. Identical field names therefore require different interpretations. Multiplying bankruptcy price by size and labeling the result actual executed notional misstates the data.

A liquidation heatmap often estimates vulnerable price areas, while an event feed reports occurrences within the venue’s product coverage. Colored levels are not guaranteed resting orders. Avoid adding liquidation volume to total traded volume again when those executions are already represented in the trade records.

Burst, penetration, reclaim and declining intensity

For a proposed bullish reversal, freeze previously known support S, A=ATR14 before the event and buffer=max(2 ticks,0.10A). Aggregate long-liquidated size by event-time minute. A burst must exceed the past 99th percentile for the relevant activity regime and meet an absolute minimum sized to the instrument. When most historical windows are zero, a percentile alone is inadequate.

Require price below S−buffer and a close back above S+buffer within K=3 bars. The latest completed minute’s liquidation size must be less than half the original burst, and at least N=1 complete bar must show no new event low. K, N, percentile, the one-half ratio and the absolute floor are proposed parameters. Conditions become available only when their required windows have finished.

A burst without reclaim, or repeated new lows with persistent intensity, belongs to a continuation candidate. Do not buy merely because the liquidation number is large. The bearish version uses short liquidations, an upside penetration and a later return below resistance.

A rolling stream can create multiple overlapping bursts. Assign one event_id and specify whether a new burst extends the old event or starts another after cooldown. This baseline does not repeatedly reset K to keep a losing reversal hypothesis alive indefinitely.

on_completed_minute(t):
  if not price_and_liquidation_window_received(t): return
  if not valid_prior_percentile_ATR_and_support(t): return
  long_liq = sum(normalized_long_liquidated_size in minute t)
  burst = long_liq>past_p99 and long_liq>=minimum_size
  if no_active_event:
    if burst and low[t]<support-buffer and cooldown_satisfied:
      start_event_once(t,support=support,buffer=buffer,low=low[t],
                       burst_size=long_liq,expiry=t+3)
    return
  if t>event.expiry:
    expire(); return
  prior_low = event.low
  no_new_low = low[t]>=prior_low
  event.low = min(prior_low,low[t])
  if close[t]>event.support+event.buffer and long_liq<0.5*event.burst_size
       and no_new_low and t>event.start:
    signal_at_received_close(t); consume_event()
  elif low[t]<prior_low and intensity_persists:
    record_continuation_observation()
# A new burst inside the event never resets its original start or expiry.

Units, availability and open interest

Choose normalized size or explicitly estimated notional. Apply the contract’s quantity convention; do not use one conversion for linear and inverse instruments. If midprice is used to approximate value, call the result estimated notional. A message can contain multiple events, and its snapshot label does not mean the historical liquidation aggregation should be erased like an order-book snapshot.

Keep receive time as well as event time. A late message cannot authorize an earlier trade merely because its exchange timestamp is older. Missing data during volatility must remain missing; replacing it with zero liquidations would manufacture apparent exhaustion.

OI is optional context. Bybit distinguishes combined-side openInterest from singleOpenInterest and uses different units for linear and inverse products; the endpoint may be delayed during extreme volatility [3]. Select a field and schema version consistently. Falling OI does not independently identify the losing side or guarantee the next price direction.

Do not treat an OI observation covering a later interval as contemporaneous with a fast liquidation signal. Join data using availability time and preserve the age of the most recent observation. An apparently informative OI drop may otherwise enter the model several minutes before it was accessible.

Synthetic reversal and continuation examples

Let support=100, prior ATR=2 and tick=0.05, giving buffer 0.20. A burst minute contains 120 units of long liquidations, above historical p99=80 and floor 50, while price reaches 98.80. The next minute contains 40 units, has low 99.00 and closes 100.30. Intensity fell by more than half, no new low occurred and the reclaim threshold passed.

A buy at 100.35 with stop 98.60 and target 103.85 has risk 1.75 and reward 3.50, or 2R before costs. If the first available quote is already 101.40, risk becomes 2.80 and reward to that target 2.45. A predeclared minimum reward/risk of 1.5 would reject a not-yet-submitted order. It cannot assume an unavailable fill at the earlier close.

For continuation, the 120-unit burst is followed by 180 units, a low 97.60 and close 98.00. No reclaim means no washout entry. In another path, an entry was already valid before a second liquidation wave; protection at 98.60 fills 98.30, losing 2.05 from 100.35. The filter cannot remove every cascade, and the old signal must not be revised after the loss is known.

Confirmation entry and liquidity risk

Submit only after receiving all required confirmation data. The protective stop is event_low minus the frozen buffer. A target may be a known swing or contemporaneous VWAP reference, but inadequate remaining reward must be rejected according to a prior rule. Position size follows the stop distance and expected costs rather than the desire to catch the exact bottom.

Avoid unlimited averaging or re-entry through one cascade. If a strategy allows several attempts, measure risk and costs across the whole event, not only the nominal risk of each individual order. A new candidate must not erase an earlier stop.

Spread expansion, shrinking depth and processing delays can move stop execution away from its trigger. Simulate market orders through available depth at the intended size. The event feed is evidence about liquidations, not a promise that liquidity will be available for a reversal entry.

If the market recovers to the intended target before confirmation becomes tradable, record a missed opportunity. This often matters for very fast rebounds. A slower confirmed entry cannot claim the earlier recovery’s return while also benefiting from the later exhaustion evidence.

Continuation is an essential control group

Create three groups: price-only sweep/reclaim, bursts without reclaim, and bursts with reclaim. Ask whether liquidation data adds information beyond price behavior or merely selects higher volatility. The no-reclaim group measures the persistent cascades often missing from promotional examples.

Report feed coverage, missing minutes, event count, trade count, no-fills, net expectancy, drawdown and tail losses. Costs, funding and latency must match the venue. A historical dataset assembled later can contain events that the live system would not have received in time.

Split chronologically and keep all bursts within one cascade in the same fold. Test neighboring floors, percentiles and timeouts. A successful bottom-catching example or a few P&L screenshots cannot validate the complete method. Robustness should include alternate feed-quality assumptions and a record of which events became untradeable because of data outages.

Common pitfalls

Buying larger liquidation numbers automatically

A burst can start a cascade; require a distinct no-reclaim branch.

Using bankruptcy price as a trade fill

This changes the meaning of notional and execution calculations.

Interpreting lower OI as a certain bottom

OI does not establish future direction or identify who lost.

Checklist before using this method

Check each item after verifying it on your data. Progress is saved in this browser; it does not certify a profitable strategy.

0/7 items

Frequently asked questions

Can a liquidation heatmap be used instead?

It can be studied as a separate estimated feature, provided its methodology and publication timing are known. It is not interchangeable with an event feed.

Does one exchange represent all crypto liquidations?

No. Results reflect the observed venue and contracts. Transfer to another market requires separate evidence.

Research sources

Each source supports the definition or evidence described beside it. The pseudocode, synthetic examples and proposed parameters require separate validation.

  1. All LiquidationBybit. Read position side, executed size and bankruptcy-price fields within the venue’s coverage. Checked: .
  2. Public TradeBybit. Read taker-side and trade-price meanings to avoid mixing schemas. Checked: .
  3. Get Open InterestBybit. Read OI units, the two OI fields and the API latency warning. Checked: .

Related methods

Risk note

This content supports education and research design, not financial advice. Backtest is historical simulation, does not guarantee future performance and does not place real trades. Methods in this library are not automatically features available in the app. See methodology and learning center.

Validate rules before risking real capital

Check app support, data and individual simulated trades; advanced detectors may require a separate implementation.

Download Backtest on the App Store