Skip to main content

ADLAlertUpdate

Struct ADLAlertUpdate 

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

Represents a WebSocket ADL alert update event.

Contains real-time ADL alert information for various trading pairs. Push frequency: 1 second for USDT Perpetual/Delivery, USDC Perpetual/Delivery, and Inverse Contracts.

§Bybit API Reference

Topic: adlAlert.{coin} where coin can be:

  • adlAlert.USDT for USDT Perpetual/Delivery
  • adlAlert.USDC for USDC Perpetual/Delivery
  • adlAlert.inverse for Inverse contracts

Fields§

§topic: String

The WebSocket topic for the event (e.g., “adlAlert.USDT”, “adlAlert.USDC”, “adlAlert.inverse”).

Specifies the data stream for the ADL alert update. Bots use this to determine which contract group the update belongs to.

§event_type: String

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

ADL alert updates are typically snapshot type, containing the full current state.

§timestamp: u64

The timestamp of the event in milliseconds.

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

§data: Vec<ADLAlertWebsocketItem>

The ADL alert data.

Contains a list of ADL alert items. Each item represents ADL alert information for a specific trading pair.

Implementations§

Source§

impl ADLAlertUpdate

Source

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

Returns the contract group from the topic.

Extracts the contract group identifier from the WebSocket topic. Examples:

  • “adlAlert.USDT” -> “USDT”
  • “adlAlert.USDC” -> “USDC”
  • “adlAlert.inverse” -> “inverse”
Source

pub fn is_snapshot(&self) -> bool

Returns true if this is a snapshot update.

Snapshot updates contain the full ADL alert state and should replace the local state for the corresponding contract group.

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 2 seconds).

Since ADL alert updates are pushed every 1 second, data older than 2 seconds might be considered stale for real-time trading decisions.

Source

pub fn count(&self) -> usize

Returns the number of ADL alert items in this update.

Source

pub fn is_empty(&self) -> bool

Returns true if there are no ADL alert items in this update.

Source

pub fn find_by_symbol(&self, symbol: &str) -> Option<&ADLAlertWebsocketItem>

Finds an ADL alert item for a specific symbol.

Returns the first matching ADL alert item for the given symbol.

Source

pub fn filter_by_coin(&self, coin: &str) -> Vec<&ADLAlertWebsocketItem>

Finds all ADL alert items for a specific coin.

Source

pub fn triggered_items(&self) -> Vec<&ADLAlertWebsocketItem>

Returns all ADL alert items where any ADL condition is triggered.

Source

pub fn stopped_items(&self) -> Vec<&ADLAlertWebsocketItem>

Returns all ADL alert items where all ADL conditions are stopped.

Source

pub fn count_triggered(&self) -> usize

Returns the number of ADL alert items with triggered conditions.

Source

pub fn count_stopped(&self) -> usize

Returns the number of ADL alert items with stopped conditions.

Source

pub fn total_balance(&self) -> f64

Returns the total balance across all ADL alert items.

Source

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

Returns the average PnL ratio across all ADL alert items.

Source

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

Returns the minimum balance among all ADL alert items.

Source

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

Returns the maximum balance among all ADL alert items.

Source

pub fn most_at_risk_item(&self) -> Option<&ADLAlertWebsocketItem>

Returns the item with the lowest balance (most at risk).

Source

pub fn least_at_risk_item(&self) -> Option<&ADLAlertWebsocketItem>

Returns the item with the highest balance (least at risk).

Source

pub fn to_summary_string(&self) -> String

Returns a summary string for this ADL alert 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 (≤ 2 seconds old)
  2. There is at least one ADL alert item
  3. The contract group can be extracted from the topic
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 triggered_symbols(&self) -> Vec<String>

Returns all symbols that have ADL conditions triggered.

Source

pub fn triggered_coins(&self) -> Vec<String>

Returns all coins that have ADL conditions triggered.

Trait Implementations§

Source§

impl Clone for ADLAlertUpdate

Source§

fn clone(&self) -> ADLAlertUpdate

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 ADLAlertUpdate

Source§

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

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

impl<'de> Deserialize<'de> for ADLAlertUpdate

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 ADLAlertUpdate

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>,