Skip to main content

AllLiquidationUpdate

Struct AllLiquidationUpdate 

Source
pub struct AllLiquidationUpdate {
    pub topic: String,
    pub event_type: String,
    pub timestamp: u64,
    pub data: Vec<AllLiquidationData>,
}
Expand description

Represents a WebSocket “all liquidation” update event.

Contains real-time liquidation events that occur across all Bybit markets. This stream pushes all liquidations that occur on Bybit, covering:

  • USDT contracts (Perpetual and Delivery)
  • USDC contracts (Perpetual and Delivery)
  • Inverse contracts

Push frequency: 500ms

§Bybit API Reference

Topic: allLiquidation.{symbol} (e.g., allLiquidation.BTCUSDT)

Fields§

§topic: String

The WebSocket topic for the event (e.g., “allLiquidation.BTCUSDT”).

Specifies the data stream for the liquidation update. Bots use this to determine which symbol the update belongs to.

§event_type: String

The event type (e.g., “snapshot”).

All liquidation updates are snapshot type, containing the latest liquidation events.

§timestamp: u64

The timestamp of the event in milliseconds.

Indicates when the liquidation update was generated by the system. Bots use this to ensure data freshness and time-based analysis.

§data: Vec<AllLiquidationData>

The liquidation data.

Contains a list of liquidation entries. Each entry represents a single liquidation event that occurred on Bybit.

Implementations§

Source§

impl AllLiquidationUpdate

Source

pub fn symbol_from_topic(&self) -> Option<&str>

Extracts the symbol from the topic.

Parses the WebSocket topic to extract the trading symbol. Example: “allLiquidation.BTCUSDT” -> “BTCUSDT”

Source

pub fn is_snapshot(&self) -> bool

Returns true if this is a snapshot update.

All liquidation updates are snapshot type.

Source

pub fn timestamp_datetime(&self) -> DateTime<Utc>

Returns the timestamp as a chrono DateTime.

Source

pub fn age_ms(&self) -> u64

Returns the age of the update in milliseconds.

Calculates how old this update is relative to the current time.

Source

pub fn is_stale(&self) -> bool

Returns true if the update is stale (older than 1 second).

Since liquidation updates are pushed every 500ms, data older than 1 second might be considered stale for real-time trading decisions.

Source

pub fn count(&self) -> usize

Returns the number of liquidation entries in this update.

Source

pub fn is_empty(&self) -> bool

Returns true if there are no liquidation entries in this update.

Source

pub fn total_notional_value(&self) -> f64

Returns the total notional value of all liquidations in this update.

Sums the notional values of all liquidation entries. Useful for assessing the overall market impact of liquidations.

Source

pub fn total_long_size(&self) -> f64

Returns the total size of long liquidations.

Source

pub fn total_short_size(&self) -> f64

Returns the total size of short liquidations.

Source

pub fn total_long_notional(&self) -> f64

Returns the total notional value of long liquidations.

Source

pub fn total_short_notional(&self) -> f64

Returns the total notional value of short liquidations.

Source

pub fn net_imbalance(&self) -> f64

Returns the net liquidation imbalance.

Calculated as (total_long_notional - total_short_notional). A positive value indicates more long liquidations (bearish pressure). A negative value indicates more short liquidations (bullish pressure).

Source

pub fn net_imbalance_percentage(&self) -> f64

Returns the net liquidation imbalance as a percentage of total notional.

Source

pub fn average_price(&self) -> Option<f64>

Returns the average price of all liquidations.

Source

pub fn weighted_average_price(&self) -> Option<f64>

Returns the weighted average price (by size) of liquidations.

Source

pub fn max_size(&self) -> Option<f64>

Returns the maximum liquidation size in this update.

Source

pub fn min_size(&self) -> Option<f64>

Returns the minimum liquidation size in this update.

Source

pub fn max_price(&self) -> Option<f64>

Returns the maximum liquidation price in this update.

Source

pub fn min_price(&self) -> Option<f64>

Returns the minimum liquidation price in this update.

Source

pub fn filter_by_side(&self, side: &str) -> Vec<&AllLiquidationData>

Returns all liquidation entries for a specific side.

Source

pub fn long_liquidations(&self) -> Vec<&AllLiquidationData>

Returns all long liquidation entries.

Source

pub fn short_liquidations(&self) -> Vec<&AllLiquidationData>

Returns all short liquidation entries.

Source

pub fn most_recent(&self) -> Option<&AllLiquidationData>

Returns the most recent liquidation entry (by updated_time).

Source

pub fn oldest(&self) -> Option<&AllLiquidationData>

Returns the oldest liquidation entry (by updated_time).

Source

pub fn to_summary_string(&self) -> String

Returns a summary string for this liquidation update.

Source

pub fn is_valid_for_trading(&self) -> bool

Validates the update for trading use.

Returns true if:

  1. The update is not stale (≤ 1 second old)
  2. The symbol can be extracted from the topic
  3. The update is a snapshot (all liquidation updates should be snapshots)
Source

pub fn latency_ms(&self, other_timestamp: u64) -> i64

Returns the update latency in milliseconds.

For comparing with other market data timestamps.

Source

pub fn group_by_symbol(&self) -> HashMap<String, Vec<&AllLiquidationData>>

Groups liquidations by symbol (useful for multi-symbol topics if supported).

Source

pub fn estimated_total_market_impact(&self, impact_coefficient: f64) -> f64

Returns the estimated total market impact of all liquidations.

Using a simplified model: total_impact = sum(impact_coefficient * sqrt(notional_value))

Source

pub fn largest_liquidation(&self) -> Option<&AllLiquidationData>

Returns the liquidation with the largest notional value.

Source

pub fn smallest_liquidation(&self) -> Option<&AllLiquidationData>

Returns the liquidation with the smallest notional value.

Trait Implementations§

Source§

impl Clone for AllLiquidationUpdate

Source§

fn clone(&self) -> AllLiquidationUpdate

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AllLiquidationUpdate

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for AllLiquidationUpdate

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for AllLiquidationUpdate

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,