QD Model of Market Events
Introduction
All events that occur on exchanges (placed and canceled orders, trades, and so on) are received by dxFeed in individual formats and in accordance with the protocols of each exchange. Hereupon dxFeed normalizes all the data into its own records with a predefined set of fields - dxFeed internal QD-model (Quote Distribution).
Info
For clients' access to data feeds we provide dxFeed API with a simplified set of events model. You can learn more about events and classes in dxFeed API.
Records in the QD-model are described below.
Exchange codes for US Equities and Options
On the US market, different exchanges may trade the same instruments. The cumulative feed of events from all exchanges we call composite. Individual events from each exchange we call regional. To distinguish regional events, each exchange has a corresponding code. In Europe, there are no regional events: each financial instrument has a different ticker symbol at each European exchange.
The list of the codes you can find here.
Records description
Records in the QD-model are described below. If you plan to use dxFeed API to process dxFeed market data, please check this documentation.
EventFlags field
Any record may contain an EventFlags field that is meant for the reconstruction of order books, options chains, or charts. Its values describe the order in which records are processed. QD text/csv format does not contain this field in the head description, but this flag may appear in the end of any string. If there is no Event
flag, it is considered false.
Info
To learn about the order book reconstruction algorithm and corresponding details, see dxFeed Order Book Reconstruction document.
TX_PENDING
indicates a pending transactional update. WhenTX_PENDING
is true, it means that an ongoing transaction update, that spans multiple events, is in process.REMOVE_EVENT
indicates that the event with the corresponding index has to be removed.SNAPSHOT_BEGIN
indicates when the loading of a snapshot starts. Snapshot load starts on new subscription and the first indexed event that arrives for each exchange code (in the case of a regional record) on a new subscription may haveSNAPSHOT_BEGIN
set to true. It means that an ongoing snapshot consisting of multiple events is incoming.SNAPSHOT_END
orSNAPSHOT_SNIP
indicates the end of a snapshot. The difference betweenSNAPSHOT_END
andSNAPSHOT_SNIP
is the following:SNAPSHOT_END
indicates that the data source sent all the data pertaining to the subscription for the corresponding indexed event, whileSNAPSHOT_SNIP
indicates that some limit on the amount of data was reached and while there still might be more data available, it will not be provided.SNAPSHOT_MODE
instructs dxFeed to use snapshot mode. It is intended to be used only for publishing to activate (if not yet activated) snapshot mode. The difference fromSNAPSHOT_BEGIN
flag is thatSNAPSHOT_MODE
only switches on snapshot mode without starting snapshot synchronization protocol.
Quote
Snapshot of the best bid and ask prices, and other fields that may change with each quote. It represents the most recent information that is available about the best quote on the market at any given moment.
#=Quote, EventSymbol, EventTime, BidTime, BidExchangeCode, BidPrice, BidSize, AskTime, AskExchangeCode, AskPrice, AskSize Quote, FBGX, 20180926-100000.000-0400, 20180926-095959-0400, Q, 297.01, 25, 20180926-095959-0400, Q, 298.23, 25
Field | Description |
---|---|
EventSymbol | Symbol of this event |
EventTime | Time when this event has been registered in dxFeed system (filled only for historical data; not filled for real-time data feed) |
BidTime | Time of the last bid change |
BidExchangeCode | Bid exchange code |
BidPrice | Bid price |
BidSize | Bid size |
AskTime | Time of the last ask change |
AskExchangeCode | Ask exchange code |
AskPrice | Ask price |
AskSize | Ask size |
Quote&X (regional Quote)
Similar to Quote, but represents the best bid and offer for a given exchange code. For possible values of X please refer to Exchange codes chapter.
#=Quote&Z, EventSymbol, EventTime, BidTime, BidPrice, BidSize, AskTime, AskPrice, AskSize Quote&Z, MU, 20180926-100000.000-0400, 20180926-095959-0400, 44.33, 4, 20180926-095959-0400, 44.34, 1
Profile
Snapshot of a security instrument description. It represents the most recent information that is available about the traded security on the market at any given moment.
#=Profile, EventSymbol, EventTime, Beta, Eps, DivFreq, ExdDivAmount, ExdDivDate, HighPrice52, LowPrice52, Shares, FreeFloat, HighLimitPrice, LowLimitPrice, HaltStartTime, HaltEndTime, Flags, Description, StatusReason Profile, FPI, 20180926-100000.135-0400,0.01985423, -0.06,4, 0.05, 20180928, 9.68,5.15, 3.2867817000000004E7, NaN, NaN, NaN, 0,0,10, "Farmland Partners Inc", "Trading Range Indication"
Field | Description |
---|---|
EventSymbol | Symbol of this event |
EventTime | Time when this event has been registered in dxFeed system (filled only for historical data; not filled for real-time data feed) |
Beta | The correlation coefficient of the instrument to the S&P500 index (calculated, or received from other data providers) |
Eps | Earnings per share (the company’s profits divided by the number of shares). The value comes directly from the annual quarterly accounting reports of companies. Available generally for stocks |
DivFreq | Frequency of cash dividends payments per year (calculated) |
ExdDivAmount | The amount of the last paid dividend |
ExdDivDate | Date of the last dividend payment |
HighPrice52 | The maximum price for 52 weeks (calculated from the current date) |
LowPrice52 | The minimum price for 52 weeks (calculated from the current date) |
Shares | Shares outstanding. In general, this is the total number of shares issued by this company (only for stocks) |
FreeFloat | The number of shares outstanding that are available to the public for trade. This field always has NaN value |
HighLimitPrice | Maximum (high) allowed price |
LowLimitPrice | Minimum (low) allowed price |
HaltStartTime | Start time of the trading halt interval |
HaltEndTime | End time of the trading halt interval |
Flags | This field contains several individual flags encoded as an integer number the following way: 31...4 3 2 1 0 +---------+----+----+----+-----+ | | SSR | Status | +---------+----+----+----+-----+
|
Description | Description of the security instrument |
StatusReason | The reason why trading is halted |
Order#X
A snapshot that contains all available depth of market. X may stand for:
Source | Feed |
---|---|
BATE | Cboe EU BXE (BATE) FOD |
BYX | Cboe BYX FOD |
BZX | Cboe BZX FOD |
BXTR | Cboe EU SI (Systematic Internaliser) FOD |
BI20 | BIST Top20 Orders (Level2+) FOD |
CHIX | Cboe EU CXE (Chi-X) FOD |
CEUX | Cboe EU DXE FOD |
CFE | Cboe CFE FOD |
C2OX | Cboe C2 FOD |
DEA | Cboe EDGA FOD |
DEX | Cboe EDGX FOD |
ERIS | ErisX FOD |
ESPD | Nasdaq E-speed FOD (for historical data only: 2018/06/01 - 2018/11/18) |
FAIR | FairX FOD |
GLBX | Globex FOD |
glbx | CME Globex PLB |
ICE | ICE Futures US/EU FOD |
IST | Borsa Istanbul FOD |
iex | IEX PLB |
MEMX | Members Exchange FOD |
memx | Members Exchange PLB |
NTV | Nasdaq TotalView FOD |
ntv | Nasdaq TotalView PLB |
NFX | Nasdaq NFX FOD (for historical data only: 2017/07/23 - 2020/06/12) |
OGLBX | CME Globex FOD |
SMFE | SmallEx FOD |
smfe | SmallEx PLB |
XNFI | Nasdaq NFI FOD |
XEUR | Eurex FOD |
xeur | Eurex PLB |
*FOD - Full order depth, PLB - Price level book
Field | Description |
---|---|
EventSymbol | Symbol of this event |
EventTime | Time when this event has been registered in dxFeed system (filled only for historical data; not filled for real-time data feed) |
Void | Additional insignificant field; always 0 |
Index | Unique index in order book |
Time | Time of this order |
Sequence | Sequence of this order, may include milliseconds (e.g., "857:3") |
Price | Price of this order |
Size | Size of this order |
ExecutedSize | Executed size of this analytic order |
Flags | This field contains several individual flags encoded as an integer number the following way: 31..11 10...4 3 2 1 0 +--------+------------+----+----+----+----+ | | Exchange | Side | Scope | +--------+------------+----+----+----+----+
|
MarketMaker | The value is optional and is one of these based on the best effort basis:
|
Example
For NTV source:
#=Order#NTV, EventSymbol, EventTime, Void, Index, Time, Sequence, Price, Size, Flags, MarketMaker Order#NTV, A, 20180925-195959.999-0400, 0, 24, 0, 0, NaN, 0, 3, \NULL,EventFlags=SNAPSHOT_BEGIN
AnalyticOrder#X
Represents an extension of Order event introducing analytic information, e.g. adding to this order iceberg related information. The collection of analytic order events of a symbol represents the most recent analytic information that is available about orders on the market at any given moment.
X may stand for:
GLBX – Globex feed
Field | Description |
---|---|
EventSymbol | Symbol of this event |
EventTime | Time when this event has been registered in dxFeed system (filled only for historical data; not filled for real-time data feed) |
Void | Additional insignificant field; always 0 |
Index | Unique index in order book |
Time | Time of this order |
Sequence | Sequence of this order, may include milliseconds (e.g., "857:3") |
Price | Price of this order |
Size | Size of this order |
ExecutedSize | Executed size of this analytic order |
Flags | This field contains several individual flags encoded as an integer number the following way: 31..11 10...4 3 2 1 0 +--------+------------+----+----+----+----+ | | Exchange | Side | Scope | +--------+------------+----+----+----+----+
|
MarketMaker | Market maker or other aggregate identifier of this order (optional field) |
IcebergPeakSize | Iceberg peak size of this analytic order |
IcebergHiddenSize | Iceberg hidden size of this analytic order |
IcebergExecutedSize | Iceberg executed size of this analytic order |
IcebergFlags | This field contains individual flag encoded as an integer number the following way: 1 0 +-----+----+ | Type | +-----+----+ Type – iceberg type of this analytical order ( 0 – type is undefined, 1 – native (exchange-managed), 2 – synthetic (managed outside of the exchange)) |
MarketMaker
This record contains data aggregated by price (price level book), by Market Maker, or by a bank.
#=MarketMaker, EventSymbol, EventTime, ExchangeCode, MarketMaker, BidTime, BidPrice, BidSize, BidCount, AskTime, AskPrice, AskSize, AskCount MarketMaker, INTC,20180925-195959.999-0400, Q, XGWD, 20180925-160004-0400, 44.36, 0, 0, 20180925-160004-0400, 48.18, 0, 0, EventFlags=SNAPSHOT_BEGIN
Field | Description |
---|---|
EventSymbol | Symbol of this event |
EventTime | Time when this event has been registered in dxFeed system (filled only for historical data; not filled for real-time data feed) |
ExchangeCode | Exchange code |
MarketMaker | The MarketMaker field has different meanings in different feeds:
|
BidTime | Time of the last bid change |
BidPrice | Bid price |
BidSize | Bid volume |
BidCount | The sequence of the bid in the aggregated feed |
AskTime | The time of the last ask change |
AskPrice | Ask price |
AskSize | Volume ask |
AskCount | The sequence of the ask in the aggregated feed |
Summary
Summary information snapshot about the trading session that includes the session’s highs, lows, etc. It represents the most recent information that is available about the trading session on the market at any given moment.
#=Summary, EventSymbol, EventTime, DayId, DayOpenPrice, DayHighPrice, DayLowPrice, DayClosePrice, PrevDayId, PrevDayClosePrice, PrevDayVolume, OpenInterest, Flags Summary, AON, 20180926-100000.018-0400, 20180926, 155.82, 156, 154.82, NaN, 20180925, 155.81, NaN, 0, 3
Field | Description |
---|---|
EventSymbol | Symbol of this event |
EventTime | Time when this event has been registered in dxFeed system (filled only for historical data; not filled for real-time data feed) |
DayId | Identifier of the day that this summary represents |
DayOpenPrice | The first (open) price of the day |
DayHighPrice | Maximum (high) price of the day |
DayLowPrice | Minimum (low) price of the day |
DayClosePrice | The last (close) price of the day |
PrevDayId | Identifier of the previous day |
PrevDayClosePrice | The last (close) price of the previous day |
PrevDayVolume | Total volume traded of the previous day |
OpenInterest | Open interest of the symbol (number of open contracts) |
Flags | This field contains several individual flags encoded as an integer number the following way: 31...4 3 2 1 0 +--------+----+----+----+------+ | | Close | PrevClose | +--------+----+----+----+------+
|
Summary&X (regional Summary)
Similar to Summary event but represents summary information for a given exchange code. For possible values of X please refer to Exchange codes chapter.
#=Summary&P, EventSymbol, EventTime, DayId, DayOpenPrice, DayHighPrice, DayLowPrice, DayClosePrice, PrevDayId, PrevDayClosePrice, Flags Summary&P, MRK, 20180926-100000.006-0400, 20180926, 70.94, 71.14, 70.8, NaN, 20180925, 70.65, 3
Trade
Snapshot of the price and size of the last trade during regular trading hours and an overall day volume and day turnover. It represents the most recent information that is available about the last regular trade on the market at any given moment.
Field | Description |
---|---|
EventSymbol | Symbol of this event |
EventTime | Time when this event has been registered in dxFeed system (filled only for historical data; not filled for real-time data feed) |
Time | Time of the last trade |
Sequence | Sequence of the last trade |
ExchangeCode | Exchange code of the last trade |
Price | Price of the last trade |
Size | Size of the last trade |
Tick | Trend indicator - in which direction price is moving (1 = up, 2 = down, and 0 = undefined) |
Change | Value equals Price minus prevdaycloseprice (the value of prevdaycloseprice is retrieved from Summary) |
Flags | This field contains several individual flags encoded as an integer number the following way: 31...4 3 2 1 0 +--------+----+----+----+-----+ | | Direction | ETH | +--------+----+----+----+-----+
|
DayVolume | Total volume traded for a day |
DayTurnover | Total turnover traded for a day |
Trade&X (regional Trade)
Similar to Trade but represents trades for a given exchange code. For possible values of X please refer to Exchange codes chapter.
#=Trade&D, EventSymbol, EventTime, Time, Sequence, Price, Size, Tick, Change, Flags, DayVolume, DayTurnover Trade&D, BABA, 20180926-100000.002-0400, 20180926-095959-0400, 0, 166.74, 100, 1, 2.48, 0, 929667, NaN
TradeETH
Snapshot of the price and size of the last trade during extended trading hours, and the extended trading hours day volume and day turnover. This record is defined only for symbols (typically stocks and ETFs) that have extended trading hours (ETH, pre-market and post-market trading sessions). It represents the most recent information that is available about ETH last trade on the market at any given moment.
#=TradeETH, EventSymbol, EventTime, Time, Sequence, ExchangeCode, Price, Size, Flags, DayVolume, DayTurnover TradeETH, SPLPpA, 20180926-100154.380-0400, 20180920-160124-0400, 0, D, 22.65, 454, 0, 0, NaN
Field | Description |
---|---|
EventSymbol | Symbol of this event |
EventTime | Time when this event has been registered in dxFeed system (filled only for historical data; not filled for real-time data feed) |
Time | Time of the last trade |
Sequence | Sequence of the last trade |
ExchangeCode | Exchange code of the last trade |
Price | Price of the last trade |
Size | Size of the last trade |
Flags | Same as in Trade event |
DayVolume | Total volume traded during extended trading hours |
DayTurnover | Total turnover traded extended trading hours |
TradeETH&X (regional TradeETH)
Similar to TradeETH but represents ETH trades for a given exchange code. For possible values of X please refer to Exchange codes chapter.
#=TradeETH&P, EventSymbol, EventTime, Time, Sequence, Price, Size, Flags, DayVolume, DayTurnover TradeETH&P, CRVS, 20180926-100000.155-0400, 20180815-092803-0400, 0, 9.69, 100, 0, 35, NaN
TimeAndSale
Represents a trade or other market event with price, like market open/close price, etc. TimeAndSale record is intended to provide information about trades in a continuous time slice (unlike Trade events, which are supposed to provide a snapshot of the current last trade).
#=TimeAndSale, EventSymbol, EventTime, Time, Sequence, ExchangeCode, Price, Size, BidPrice, AskPrice, SaleConditions, Flags TimeAndSale, BABA, 20180926-100000.002-0400, 20180926-095959-0400, 872 :33427, D,166.8177, 31,166.71, 166.74, "4 I", 12576
Field | Description |
---|---|
EventSymbol | Symbol of this event |
EventTime | Time when this event has been registered in dxFeed system (filled only for historical data; not filled for real-time data feed) |
Time | Timestamp of the original event |
Sequence | Sequence number of this event, may include milliseconds (e.g., "857 :3") |
ExchangeCode | Exchange code of this TimeAndSale event |
Price | Price of this TimeAndSale event |
Size | Size of this TimeAndSale event |
BidPrice | The current bid price on the market when this TimeAndSale event had occurred |
AskPrice | The current ask price on the market when this TimeAndSale event had occurred |
SaleConditions | Sale conditions provided for this event by data feed (you can find a list of parameters in the TimeAndSale Conditions map) |
Flags | This field contains several individual flags encoded as an integer number the following way: 31..16 15...8 7 6 5 4 3 2 1 0 +--------+---------+----+----+----+-----+-----+------+----+----+ | | TTE | | Side | SL | ETH | VT | Type | +--------+---------+----+----+----+-----+-----+------+----+----+
|
TimeAndSale&X (regional TimeAndSale)
Similar to TimeAndSale but represents TimeAndSale event for a given exchange code. For possible values of X please refer to Exchange codes chapter.
#=TimeAndSale&P, EventSymbol, EventTime, Time, Sequence, ExchangeCode, Price, Size, BidPrice, AskPrice, SaleConditions, Flags TimeAndSale&P, AMZN, 20180802-030000.059-0500, 20180802-030000-0500, 13:0, P, 1799, 1, 1798.97, 1800, "@ TI", 8264