Composite Equities Feeds
Overview
dxFeed offers a line of composite equities feeds from SEC-regulated exchanges for US instruments, emphasizing the feed’s quality and transparent methodology.
Given a set of American stock source L1 feeds (Quotes, TimeAndSales, Trades, Summaries), we provide our composite best bid and offer (BBO) for several US exchanges that allows licensing costs optimizations.
Specifically, each composite feed is carefully constructed to optimize the following aspects of the resulting feed:
Frequency – composite feed has much higher frequency compared to native feeds.
Spread width – our calculation logic allows us to provide a narrower spread between bid and ask than any of the components.
Originality – the composition is performed using transparent methodology without altering original prices. This entails, among other things, that the composite feed is fair and not augmented based on non-existing or implied events. Composite feeds show the same prices as received from exchanges.
Accuracy – we provide an accurate, true representation of prevailing market values for highly liquid US Stocks.
This product will be of most interest to the customers wanting real-time access to an accurate feed with liquidity in the market. dxFeed Composite Equities Feeds may be used as a cost-effective indicative feed for liquid US stocks.
Data processing flow
The Composite Equities Feed is generated by dxFeed Feed Consolidator Service (FCS) that works with equity-, and ETF-s consolidation. dxFeed Feed Consolidator Service allows merging any number of feeds with different types, and produces the expected results if input feeds satisfy the original service requirements.
FCS reads the list of feeds specified in the configuration and consolidates these feeds.
FCS works with the list of instruments available on the whole US market.
FCS subscribes to all required events per symbol from each feed.
FCS provides new values for each corresponding tick of market data event and works in a tick-by-tick manner.
One of the exchanges is set as the main exchange to make the consolidation procedure more predictable. For each specific feed, the main exchange is selected separately according to the highest liquidity and trading hours of all exchanges included in the composite feed.
Rules of building a consolidated feed per event type and symbol are described below.
Quality metrics
Frequency
One of the most important features of an aggregate feed is to have frequent updates. While no consensus exists among market participants on how to define this precisely, they often feel disturbed when the price does not move for a prolonged period of time. By combining the original set of sources into a composite feed, we get the total frequency for all incoming feeds, which is higher than the frequency on each individual exchange. The composite feed minimizes the time it “idles”, i.e. no market event updates for more than a pre-specified time threshold occur.
Short bid-ask spread
The chosen methodology for constructing a composite Quote allows minimizing the spread between bid and ask compared to Quotes received from constituent feeds.
Genuineness
dxFeed Composite Equities Feeds provide original prices received from original feeds. All the data from native feeds is available in subscription along with the composite feeds. We do not try to ‘enrich’ the composite feed based on non-existing or implied events in the market event flow. Once the input feeds have been selected and fixed, they alone participate in formation of the output flow.
Accuracy
dxFeed Composite Equities Feed are an accurate, true representation of prevailing market values for highly liquid US equities. Such as NASDAQ 100 components, dxFeed’s bid-ask data is within 1% away from the National Best Bid and Offer (NBBO) 95.392% of time, on average.
Feed composition
Quote
A Quote event represents the top of the consolidated book: the highest available price to sell and the lowest available price to buy.
To distribute the Quote event, FCS builds a snapshot that includes the latest regional Quotes received from every feed per each instrument. FCS uses this snapshot to fill the event fields of composite Quotes. With every change of a snapshot, FCS defines the fields of a composite Quote per each instrument.
Composite Quote fields
Field | Description | Rule |
---|---|---|
eventSymbol | Symbol (instrument) of this event | Equals the eventSymbol of the original event |
bidTime | Time of the last bid change | Maximum bid time out of all regional Quotes and the snapshot |
bidExchangeCode | The code of the exchange where the bid was submitted | Equals the bidExchangeCode of the selected event with the maximum bid time |
bidPrice | Bid price | Equals the bidPrice of the selected event with the maximum bid time |
bidSize | Bid volume as an integer number (rounded towards zero) | Equals the bidSize of the selected event with the maximum bid time |
askTime | Time of the last ask change | Maximum ask time out of all regional Quotes and the snapshot |
askExchangeCode | The code of the exchange where the ask was submitted | Equals the askExchangeCode of the selected event with the maximum ask time |
askPrice | Ask price | Equals the askPrice of the selected event with the maximum ask time |
askSize | Ask volume as an integer number (rounded to zero) | Equals the askSize of the selected event with the maximum ask time |
TimeAndSale
A TimeAndSale event represents information about individual transactions, including canceled and adjusted ones. Additionally, the opening price, official close price, etc., are also transferred to TimeAndSale. TimeAndSale events are 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 events have a unique index which can be used for later correction/cancellation processing.
Composite TimeAndSale fields
Field | Description | Rule |
---|---|---|
eventSymbol | Symbol (instrument) of this event | Equals the eventSymbol of the original event |
time | Timestamp of the original event | Equals the time of the original event |
sequence | The sequence number of an event that helps distinguish between two events with the same time | FCS assigns its own sequence. FCS performs bijection from TimeAndSale sequence to a new composite TimeAndSale sequence as sometimes TimeAndSale can be cancelled or corrected. Short description: Let's assume we have an amount of feeds that equals n, then FCS sequence = original sequence * n + feed id. Such a method allows us to save monotonicity within the framework of any source |
exchangeCode | Exchange code of this TimeAndSale event | Equals the exchangeCode of the original event |
price | Price of this TimeAndSale event | Equals the price of the original event |
size | Volume of this TimeAndSale event as an integer number (rounded towards zero) | Equals the size of the original event |
bidPrice | Current bid price on the market when this TimeAndSale event occurred | Equals the bidPrice of the original event |
askPrice | Current ask price on the market when this TimeAndSale event occurred | Equals the askPrice of the original event |
SaleConditions | Exchange parameters of the transaction | Equals the SaleConditions of the original event |
Flags | ||
aggressorSide | Aggressor side of this time and sale event | Equals the aggressorSide of the original event |
spreadLeg | Whether this transaction is part of a multileg order | Equals the spreadLeg of the original event |
extendedTradingHours | Whether this event represents an extended trading hours sale | Equals the extendedTradingHours of the original event |
validTick | Whether this event represents a valid intraday tick | Equals the validTick of the original event |
type | Type of this time and sale event (new, cancel or correction) | Equals the type of the original event |
Trade
A Trade event is a snapshot of the price and size of the last trade during regular trading hours and the overall daily volume and day turnover. It represents the most recent information available about the last regular trade on the market at any given moment of time.
To distribute a Trade event, FCS builds a snapshot that includes the latest Trade events per symbol from each feed.
With every change of a snapshot, FCS defines the fields of a composite Trade per instrument.
Info
FCS publishes both composite Trade event and all regional Trade events from each feed.
Composite Trade fields
Field | Description | Rule |
---|---|---|
eventSymbol | Symbol (instrument) of this event | Equals the eventSymbol of the original event |
Time | time of the last trade | Equals the Time of the last trade |
Sequence | Sequence number of an event that helps distinguish between two events with the same time | Automatically increases (iteratively) |
ExchangeCode | Exchange code of this Trade event | Equals the ExchangeCode of the last trade |
Price | Price of this Trade event | Equals the Price of the last trade |
Size | Size of this Trade event as integer number (rounded towards zero) | Equals the Size of the last trade |
Tick (Direction) | Tick direction of the last trade(Old version) | Equals the Tick of the last trade |
Change | Change of the last trade | Automatically calculated |
DayVolume | Total volume traded for a day as integer number (rounded towards zero) | Sum of the DayVolume values from each incoming feed |
DayTurnover | Total turnover traded for a day | DayTurnover is the last trade price multiplied by sum of the DayVolume values from each incoming feeds |
Flags | ||
Direction | Tick direction of the last trade(New version) | Always undefined |
ETH (Extended traded hours) | Boolean Flag. It defines whether a Trade is made in ETH or not | All Trades now have |
Profile
A Profile event provides the security instrument description. It represents the most recent information that is available about the traded security on the market at any given moment of time.
To distribute the Profile event, FCS builds a snapshot that includes the latest Profile events from every feed per each instrument.
Composite Profile Fields
Field | Description | Rule |
---|---|---|
eventSymbol | Symbol of this event | Equals the eventSymbol of the original event |
Beta | Measure of the volatility of a security compared to the market | Null |
Eps (Earnings per Share) | Measures the company's profit on a per-share basis | Null |
DivFreq | Dividends frequency | Null |
ExdDivAmount | Executed dividends amount | Null |
ExdDivDate | Date of the last dividend payment | Null |
HighPrice52 | Maximum (high) price in the last 52 weeks | Maximum HighPrice52 out of each incoming feed |
LowPrice52 | Minimum (low) price in the last 52 weeks | Minimum LowPrice52 out of each incoming feed |
Shares | Total number of shares issued by this company | Null |
FreeFloat | Number of shares in free float or the number of outstanding shares available for public trading | Null |
HighLimitPrice | Maximum allowable price | Maximum HighLimitPrice out of each incoming feed |
LowLimitPrice | Minimum allowed price | Minimum LowLimitPrice out of each incoming feed |
HaltStartTime | Start time of the last trading halt interval | Maximum HaltStartTime out of each incoming feed |
HaltEndTime | End time of the last trading halt interval | Minimum of incoming feeds highLimitPrice, but haltStartTime and haltEndTime are published only if haltEndTime is greater than the haltStartTime |
Status Reason | Description of the reason why trading was halted | Null |
Description | Description of the instrument | Equals the Description of the main exchange feed |
Flags | ||
shortSaleRestriction | Short sale restriction of the security instrument (undefined, inactive or active) | Always undefined |
Trading Status | State of the instrument (undefined, halted or active) | Halted if all feeds has halted status |
Info
FCS publishes both composite Profile events and all Profile events from each feed.
Summary
A Summary event provides information about the trading session including highs, lows, etc. It represents the most recent information that is available about the trading session on the market at any given moment of time.
To distribute a Summary event, FCS builds a snapshot that includes the latest Summary events per instrument from each feed.
Info
FCS publishes both composite Profile events and all regional Profile events from each feed.
Composite Summary Fields
Field | Description | Rule |
---|---|---|
EventSymbol | Symbol of this event | Equals the eventSymbol of the original event |
DayId | Identifier of the day that this summary represents | Maximum DayId out of each incoming feed |
DayOpenPrice | The first (open) price for the day | Equals the DayOpenPrice of the main exchange feed |
DayHighPrice | The maximum (high) price for the day | Maximum DayHighPrice out of each incoming feed |
DayLowPrice | The minimum (low) price for the day | Minimum DayLowPrice out of each incoming feed |
DayClosePrice | The last (close) price for the day | Equals the DayClosePrice of main exchange feed |
PrevDayId | Identifier of the previous day that this summary represents | Maximum prevDayId out of each incoming feed |
PrevDayClosePrice | The last (close) price for the previous day | Equals the PrevDayClosePrice of main exchange feed |
PrevDayVolume | Total volume traded for the previous day | Sum of prevDayVolume values from incoming feeds |
OpenInterest | Current openInterest indicator | Sum of OpenInterest values from incoming feeds |
Flags | ||
ClosePriceType | If the presented closing price is final | Equals ClosePriceType of the main exchange feed |
PrevDayClosePriceType | If the presented closing price of the previous day is final | Equals the PrevDayClosePriceType of the main exchange feed |