The Databento team is currently working on this article.
Nasdaq TotalView-ITCH
Nasdaq disseminates full depth-of-book data for their exchange through their TotalView-ITCH feed over the MoldUDP64 protocol, which Databento receives over UDP multicast in our NY4 data center.
PDF specifications are available on Nasdaq's website for Nasdaq TotalView-ITCH and MoldUDP64.
Info
Timestamps
Nasdaq TotalView-ITCH messages received by Databento have at most one timestamp, which has nanosecond precision.
As with all of our datasets, we also collect a ts_recv
timestamp when the packet was received by our capture server.
The extra field ts_in_delta
does not convey any additional information for this dataset, and is equivalent to ts_recv - ts_event
.
Databento Field | TotalView Field | Description |
---|---|---|
ts_recv |
N/A | The capture-server-received timestamp. |
ts_event |
Timestamp | The matching-engine-received timestamp. |
More details about our timestamps are available in our timestamping guide.
MBO normalization
Order lifecycle messages
There are seven message types in TotalView that change the state of the order book. Databento normalizes these messages to MBO records as follows:
- Add Order - No MPID Attribution: Add
- Add Order with MPID Attribution: Add, but the attribution field is not included
- Order Executed: Trade, Fill, then Cancel
- Order Executed with Price: Trade, Fill, then Cancel, but the initial Trade is omitted if the message is marked as non-printable
- Order Cancel: Cancel, with the
quantity
indicating the number of shares to remove from the display size - Order Delete: Cancel, with the
quantity
indicating the current display size of the order - Order Replace: Cancel with the previous
order_id
, followed by Add with the neworder_id
All Trade records will have order_id
set to 0
, because Nasdaq does not provide information about the aggressor's order.
Normalized records from the same TotalView message will have the same sequence
.
Trade messages
TotalView also has two messages for providing execution details for match events against non-displayed orders or cross events.
Databento normalizes both Trade (Non-Cross) and Cross Trade messages is into a single MBO Trade record with side None.
Nasdaq will always send a Cross Trade message following an opening, closing, or EMC cross event for an instrument.
If no shares are exchanged during a cross event, quantity
will be 0
and price
will be UNDEF_PRICE
(0x7fffffffffffffff
, 9223372036854775808
).
Statistics normalization
Databento provides Opening Price, Closing Price and Uncrossing Price statistics, normalized from the Cross Trade message. These statistics have the auction uncrossing price and quantity for the respective event.
Imbalance normalization
TotalView provides information about opening and closing cross imbalances in their Net Order Imbalance Indicator (NOII) message. Databento normalizes each message into a record in the imbalance schema.
Databento Field | TotalView Field | Description |
---|---|---|
paired_qty |
Paired Shares | The number of shares that are eligible to match at the ref_price . |
total_imbalance_qty |
Imbalance Shares | The number of shares not paired at the ref_price . |
side |
Imbalance Direction | The market side of the order imbalance: Bid (buy) imbalance, Ask (sell) imbalance, No imbalance. |
auct_interest_clr_price |
Far Price | Hypothetical auction-clearing price for cross orders only. |
cont_book_clr_price |
Near Price | Hypothetical auction-clearing price for cross and continuous orders. |
ref_price |
Current Reference Price | The price at which imbalance shares are being calculated. |
auction_type |
Cross Type | The type of cross: Opening, Closing, un-Halt or IPO, A: Extended Trading Close. |
significant_imbalance |
Price Variation Indicator | Indicates the deviation of the Near Indicative Clearing Price to the ref_price . Refer to the Nasdaq TotalView specification for values. |
Definition normalization
Definition records are sourced from Stock Directory messages.
Databento Field | TotalView Field | Description |
---|---|---|
security_type |
Issue Classification | Identifies the security class for the issue as assigned by Nasdaq. A list of the different values and their meanings can be found in Appendix D here. |
secsubtype |
Issue Sub-Type | Identifies the security sub-type for the issue as assigned by Nasdaq. A list of the different values and their meanings can be found in Appendix E here. |