OrderBookDepth
OrderBookDepth represents a snapshot with a variable number of bid and ask levels.
Use it when a venue publishes a self-contained depth snapshot rather than incremental deltas.
Fields
| Field | Rust type | Python type | Required/default | Notes |
|---|---|---|---|---|
instrument_id | InstrumentId | InstrumentId | Required | Instrument whose book is represented. |
bids | SmallVec<[BookOrder; 10]> | list[BookOrder] | Required | Bid levels in book order. |
asks | SmallVec<[BookOrder; 10]> | list[BookOrder] | Required | Ask levels in book order. |
bid_counts | SmallVec<[u32; 10]> | list[int] | Required | Number of bid orders at each level. |
ask_counts | SmallVec<[u32; 10]> | list[int] | Required | Number of ask orders at each level. |
flags | u8 | int | Required | RecordFlag bit field for event metadata. |
sequence | u64 | int | Required | Venue sequence number, or zero if absent. |
ts_event | UnixNanos | int | Required | Event timestamp in nanoseconds. |
ts_init | UnixNanos | int | Required | Initialization timestamp in nanoseconds. |
Behavior
- Rust and PyO3 Python constructors accept variable-length sides. Each side requires one count per order; bid and ask sides can have different lengths.
- Empty sides use empty sequences. The inline capacity is ten; larger snapshots allocate as needed.
- This type is not interchangeable with incremental
OrderBookDeltastreams.
The former OrderBookDepth10 type name is gone. Catalog directories named order_book_depth10
still migrate, and Arrow files that stored that type in schema metadata still transcode. The
legacy C FFI and the fixed-depth SBE encoding require exactly ten levels per side.
Example
use nautilus_core::UnixNanos;
use nautilus_model::{
data::{BookOrder, OrderBookDepth},
enums::OrderSide,
identifiers::InstrumentId,
types::{Price, Quantity},
};
let bids = vec![BookOrder::new(OrderSide::Buy, Price::from("2500.10"), Quantity::from("3.5"), 1)];
let asks = vec![BookOrder::new(OrderSide::Sell, Price::from("2500.20"), Quantity::from("2.0"), 2)];
let depth = OrderBookDepth::new(
InstrumentId::from("ETHUSDT-PERP.BINANCE"),
bids,
asks,
vec![1],
vec![1],
0,
42,
UnixNanos::from(1_000_000_000),
UnixNanos::from(1_000_000_100),
);Related guides
- QuoteTick covers top-of-book data derived from depth.
- Order books explains order book state.
- Python API reference lists Python members.
OrderBookDeltas
OrderBookDeltas groups a non-empty batch of OrderBookDelta records from one logical book event. It reduces per-message overhead when an adapter receives or...
QuoteTick
QuoteTick represents the top-of-book bid and ask for one instrument. It carries the best available bid and ask prices and sizes at a specific event time.