Struct Orderbook

Source
pub struct Orderbook {
    pub symbol: Symbol,
    pub bids: BTreeMap<Decimal, Decimal>,
    pub asks: BTreeMap<Decimal, Decimal>,
}
Expand description

Represents the current state of the orderbook, guaranteed to be accurate up to the best 100 bids and best 100 asks since the latest update. Supports efficient insertions, updates, and deletions via a BTreeMap.

Fields§

§symbol: Symbol§bids: BTreeMap<Decimal, Decimal>§asks: BTreeMap<Decimal, Decimal>

Implementations§

Source§

impl Orderbook

Source

pub fn new(symbol: Symbol) -> Orderbook

Source

pub fn update(&mut self, data: &OrderbookData)

Source

pub fn verify_checksum(&self, checksum: u32) -> bool

Source

pub fn bid_price(&self) -> Option<Decimal>

Returns the price of the best bid

Source

pub fn ask_price(&self) -> Option<Decimal>

Returns the price of the best ask

Source

pub fn mid_price(&self) -> Option<Decimal>

Returns the midpoint between the best bid price and best ask price. Output is not rounded to the smallest price increment.

Source

pub fn best_bid(&self) -> Option<(Decimal, Decimal)>

Returns the price and quantity of the best bid (bid_price, bid_quantity)

Source

pub fn best_ask(&self) -> Option<(Decimal, Decimal)>

Returns the price and quantity of the best ask (ask_price, ask_quantity)

Source

pub fn best_bid_and_ask( &self, ) -> Option<((Decimal, Decimal), (Decimal, Decimal))>

Returns the price and quantity of the best bid and best ask ((bid_price, bid_quantity), (ask_price, ask_quantity))

Source

pub fn quote(&self, side: Side, quantity: Decimal) -> Option<Decimal>

Returns the expected execution price of a market order given the current orders in the order book. Returns None if the order size exceeds the liquidity available on that side of the order book.

Trait Implementations§

Source§

impl Debug for Orderbook

Source§

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

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

impl<'de> Deserialize<'de> for Orderbook

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 Orderbook

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