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. When TX_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 have SNAPSHOT_BEGIN set to true. It means that an ongoing snapshot consisting of multiple events is incoming

  • SNAPSHOT_END or SNAPSHOT_SNIP indicates the end of a snapshot. The difference between SNAPSHOT_END and SNAPSHOT_SNIP is the following: SNAPSHOT_END indicates that the data source sent all the data pertaining to the subscription for the corresponding indexed event, while SNAPSHOT_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 from SNAPSHOT_BEGIN flag is that SNAPSHOT_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  |
+---------+----+----+----+-----+
  1. SSR (shortSaleRestriction) - special mode of protection against "shorting the market", this field is optional (0 - undefined, 1 - active, 2 - inactive).

  2. Status (tradingStatus) - the state of the instrument (0 - status undefined, 1 - trading is halted, 2 - trading is active).

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  |
+--------+------------+----+----+----+----+
  1. Exchange - exchange code. For possible values of Exchange please refer to Exchange codes chapter.

  2. Side - the initiator of an order (0 - side is undefined, 1 - buy side, 2 - sell side).

  3. Scope - specification of the order value (2 - aggregated information or BBO for a particular market maker, 0 - composite BBO from the whole market, 3 - individual order, 1 - regional BBO from a particular exchange).

MarketMaker

Market maker or other aggregate identifier of this order (optional field)

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  |
+--------+------------+----+----+----+----+
  1. Exchange - exchange code. For possible values of Exchange please refer to Exchange codes chapter.

  2. Side - the initiator of an order (0 - side is undefined, 1 - buy side, 2 - sell side).

  3. Scope - specification of the order value (2 - aggregated information or BBO for a particular market maker, 0 - composite BBO from the whole market, 3 - individual order, 1 - regional BBO from a particular exchange).

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

One of these, depending on the feed:

  • ID of the Market Maker (e.g., Nasdaq Level 2, OTC or OTCBB).

  • Price-level number (e.g., CME, ICE, Nasdaq TotalView).

  • Bank identifier (e.g., Forex feed).

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 |
+--------+----+----+----+------+
  1. Close (dayClosePriceType) - parameter that shows if the closing price is final (0 - regular price, 1 - indicative price, 2 - preliminary price, 3 - final price).

  2. PrevClose (prevDayClosePriceType) - parameter that shows if the closing price of the previous day is final (0 - regular price, 1 - indicative price, 2 - preliminary price, 3 - final price).

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 |
+--------+----+----+----+-----+
  1. Direction (tickDirection) - is the more accurate definition of the trend (0 - undefined, 1 - down, 2 - zero down (current price is the same as previous price and is lower than the last known price of different value), 3 - zero (current price is equal to the only known price value suitable for price direction computation), 4 - zero up (current price is the same as previous price and is higher than the last known price of different value), 5 - up).

  2. ETH (extendedTradingHours) - flag that determines current trading session: extended or regular (0 - regular trading hours, 1 - extended trading hours).

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 time and sale event

Price

Price of this time and sale event

Size

Size of this time and sale event

BidPrice

The current bid price on the market when this time and sale event had occurred

AskPrice

The current ask price on the market when this time and sale 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   |
+--------+---------+----+----+----+-----+-----+------+----+----+
  1. Tradethroughexempt (TTE) - is a transaction concluded by exempting from compliance with some rule. The value is encoded by the letter.

  2. Side (aggressorSide) - initiator of the trade, may have value (0 - side is undefined, 1 - buy side, 2 - sell side).

  3. SL (spreadLeg) - an indication of whether this transaction is a part of a multi-leg order (0 - single order, 1 - multi-leg order).

  4. ETH (extendedTradingHours) - whether the transaction is completed during extended trading hours (0 - regular trading hours, 1 - extended trading hours).

  5. VT (validTick) - our normalized SaleCondition flag (1 - the tick is valid and must be drawn on the chart service, 0 - this is most likely not a transaction and does not need to be displayed).

  6. Type - type of event (0 - new, 1 - correction on a Time and Sale event, 2 - cancel of a Time and Sale event).

TimeAndSale&X (regional TimeAndSale)

Similar to TimeAndSale but represents Time And Sale 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