NxCoreExgQuote
The structure NxCoreExgQuote is defined in NxCoreAPI.h as:
struct NxCoreExgQuote { NxCoreQuote coreQuote; int BestAskPrice; int BestBidPrice; int BestAskPriceChange; int BestBidPriceChange; int BestAskSize; int BestBidSize; int BestAskSizeChange; int BestBidSizeChange; unsigned short BestAskExg; unsigned short BestBidExg; unsigned short PrevBestAskExg; unsigned short PrevBestBidExg; unsigned char BestAskCondition; unsigned char BestBidCondition; unsigned char BBOChangeFlags; unsigned char ClosingQuoteFlag; unsigned char alignment[4]; };
See here
The Best Ask Quote is identified and disseminated by the Feed Source (SIAC, OPRA, NASDAQ, etc), and not by the NxCore Feed Processors. Sometimes you will notice that the Best Ask is not the lowest price/largest size/earliest time or has the best quote conditions.
BestAskPrice contains the data that was in coreQuote when the Exchange identified in BestAskExg last updated.
The Best Bid Quote is identified and disseminated by the Feed Source (SIAC, OPRA, NASDAQ, etc), and not by the NxCore Feed Processors. Sometimes you will notice that the Best Bid is not the highest price/largest size/earliest time or has best quote conditions.
BestBidPrice contains the data that was in coreQuote when the Exchange identified in BestBidExg last updated.
BestAskSizeChange contains the data that was in coreQuote when the Exchange identified in BestAskExg last updated.
BestBidPriceChange contains the data that was in coreQuote when the Exchange identified in BestBidExg last updated.
The Best Ask Quote is identified and disseminated by the Feed Source (SIAC, OPRA, NASDAQ, etc), and not by the NxCore Feed Processors.
BestAskSize contains the data that was in the coreQuote member when the Exchange identified in the member BestAskExg last updated.
The Best Bid Quote is identified and disseminated by the Feed Source (SIAC, OPRA, NASDAQ, etc), and not by the NxCore Feed Processors.
BestBidSize contains the data that was in the coreQuote member when the Exchange identified in the member BestBidExg last updated.
BestAskSizeChange contains the data that was in the coreQuote member when the Exchange identified in the member BestAskExg last updated.
BestBidSizeChange contains the data that was in the coreQuote member when the Exchange identified in the member BestBidExg last updated.
The exchange with the best ask price/size/timestamp
The exchange with the best bid price/size/timestamp
When the Exchange designated as the BestAskExg changes, NxCoreAPI sets this data member to the previous value of BestAskExg.
This allows to implement easy and efficient algorithms for analyzing BBO push/fade trends and frequencies (i.e. how often has Exchange X become the Best Ask because another exchange lowered it's ask price/size vs because Exchange X increased the ask price/size).
When the Exchange designated as the BestBidExg changes, NxCoreAPI sets this data member to the previous value of BestBidExg.
This allows to implement easy and efficient algorithms for analyzing BBO push/fade trends and frequencies (i.e. how often has Exchange X become the Best Bid because another exchange lowered it's bid price/size vs because Exchange X increased the bid price/size).
BestAskCondition contains the data that was in coreQuote when the Exchange identified in BestAskExg last updated.
BestBidCondition contains the data that was in coreQuote when the Exchange identified in BestBidExg last updated.
If the Regional exchange updating their quote is the BestBidExg, then BestBidPrice, BestBidSize and BestBidCondition will be identical to coreQuote.BidPrice, coreQuote.BidSize, and coreQuote.QuoteCondition. Similarly, the BestAskPrice, BestAskSize and BestAskCondition will equal coreQuote.AskPrice, coreQuote.AskSize and coreQuote.QuoteCondtion if Regional exchange is the BestAskExg.
If the Regional exchange updating their quote is not the BestBidExg, the values of BestBidPrice, BestBidSize, and BestBidCondition could still change if the Regional exchange was previously the BestBidExg.
Sometimes a Regional quote update affects the Best Bid and/or Best Ask data and sometimes it does not. In any case, the NxCore Feed always includes the Best Bid and Best Ask information with every quote.
NxCoreAPI makes it easy and efficient to test for changes to the BBO fields by setting flags in data member BBOChangeFlag. You can use a simple test of whether BBOChangeFlag is non-zero to determine whether any changes have occurred, or test individual bits to see which fields have occurred.
#define | Value | Comments |
---|---|---|
NxBBOCHANGE_BIDEXG | 0x01 | BestBidExg != PrevBestBidExg |
NxBBOCHANGE_BIDPRICE | 0x02 | BestBidPriceChange != 0 |
NxBBOCHANGE_BIDSIZE | 0x04 | BestBidSizeChange != 0 |
NxBBOCHANGE_ASKEXG | 0x10 | BestAskExg != PrevBestAskExg |
NxBBOCHANGE_ASKPRICE | 0x20 | BestAskPriceChange != 0 |
NxBBOCHANGE_ASKSIZE | 0x40 | BestAskSizeChange != 0 |
Will be set to 1 if quote represents an official Closing Quote, zero otherwise