The Mass Quote <i> message can contain quotes for multiple securities to support applications that allow for the mass quoting of an option series. Two levels of repeating groups have been provided to minimize the amount of data required to submit a set of quotes for a class of options (e.g. all option series for IBM).
A QuoteSet specifies the first level of repeating fields for the Mass Quote <i> message. It represents a group of related quotes and can, for example, represent an option class.
Each QuoteSet contains an optional repeating group of QuoteEntries which can represent an option series.
It is possible the number of Quote <S> Entries for a Quote <S> Set (option class) could exceed one's physical or practical message size. It may be necessary to fragment a message across multiple Quote <S> messages. Message size limits must be mutually agreed to with one's counterparties.
The grouping of quotes is as follows:
NoQuoteSets - specifies the number of sets of quotes contained in the message QuoteSetID - Is a unique ID given to the quote set Information regarding the security to which all of the quotes belong TotQuoteEntries - defines the number of quotes for the quote set across all messages NoQuoteEntries - defines the number of quotes contained within this message for this quote set QuoteEntryID - Is a unique ID given to a specific quote entry Information regarding the specific quote (bid/ask size and price)
If there are too many Quote <S> Entries for a Quote <S> Set to fit into one physical message, then the quotes can be continued in another Mass Quote <i> message by repeating all of the QuoteSet information and then specifying the number of Quote <S> Entries (related symbols) in the continued message. The TotQuoteEntries is provided to optionally indicate to the counterparty the total number of Quote <S> Entries for a Quote <S> Set in multiple Quote <S> messages. This permits, but does not require, a receiving application to react in a stateful manner where it can determine if it has received all quotes for a Quote <S> Set before carrying out some action. However, the overall approach to fragmentation is to permit each Mass Quote <i> message to be processed in a stateless manner as it is received. Each Mass Quote <i> message should contain enough information to have the Quote <S> Entries applied to a market without requiring the next message if fragmentation has occurred. Also, a continued message should not require any information from the previous message.
Requesting Acknowledgement for Mass Quotes
Applications can optionally support acknowledgement of quotes using the QuoteResponseLevel <301> field. The QuoteResponseLevel <301> is used to specify the level of acknowledgement requested from the counterparty. A QuoteResponseLevel <301> of 0 indicates that no acknowledgement is requested. A ResponseLevel of 1 requests acknowledgement of invalid or erroneous quotes. A QuoteResponseLevel <301> of 2 requests acknowledgement of each Mass Quote <i> message.
See "Mass Quote <i> Message Scenarios"
Notes on usage:
For many markets, the Mass Quote <i> message will be used to generate quotes in high volumes in an unsolicited manner. This means that multiple quotes will be sent to the counterparty (an exchange) without acknowledgement. The Mass Quote <i> message can be used to send quotes for multiple classes, each with multiple series.
Example: Multiple Option Series for a single Option Class (No Fragmentation)
QuoteID=XXX QuoteReqID=YYY NoQuoteSets=1 QuoteSetID=1 Symbol=AA TotQuoteEntries=2 NoQuoteEntries=2 Other quote set fields QuoteEntryID=1 MaturyMonthYear=199901 StrikePrice=25.00 CFICode="OCXXXS" BixPx=5.00 OfferPx=5.25 BidSize=10 OfferSize=10 QuoteEntryID=2 MaturyMonthYear=199901 StrikePrice=30.00 CFICode="OCXXXS" BixPx=3.00 OfferPx=3.25 BidSize=10 OfferSize=10
Example: Multiple Option Series for a single Option Class (Fragmentation)
QuoteID=XXX QuoteReqID=YYY NoQuoteSets=1 QuoteSetID=1 Symbol=AA TotQuoteEntries=3 NoQuoteEntries=2 Other quote set fields QuoteEntryID=1 MaturyMonthYear=199901 StrikePrice=25.00 CFICode="OCXXXX" BixPx=5.00 OfferPx=5.25 BidSize=10 OfferSize=10 QuoteEntryID=2 MaturyMonthYear=199901 StrikePrice=30.00 CFICode="OCXXXX" BixPx=3.00 OfferPx=3.25 BidSize=10 OfferSize=10
QuoteID=XXX QuoteReqID=YYY NoQuoteSets=1 QuoteSetID=1 Symbol=AA Other quote set fields TotQuoteEntries=3 NoQuoteEntries=1 QuoteEntryID=3 MaturyMonthYear=199901 StrikePrice=35.00 CFICode="OCXXXS" BixPx=2.00 OfferPx=2.25 BidSize=10 OfferSize=10
Example: Multiple Quotes for Fixed Income publishing
QuoteID=XXX NoQuoteSets=1 QuoteSetID=1 TotQuoteEntries=3 NoQuoteEntries=3 Other quote set fields QuoteEntryID=1 Symbol=DE10003453 SecurityID=DE10003453 SecurityIDSource=4 BixPx=105 BidYield=.043 OfferPx=102.3 OfferYield=.0525 BidSize=10 OfferSize=10 QuoteEntryID=2 Symbol=NL0000102606 SecurityID=NL0000102606 SecurityIDSource=4 MidPx=105 MidYield=4.3 QuoteEntryID=3 Symbol=FR0100059601 SecurityID=FR0100059601 SecurityIDSource=4 BidYield=.048 OfferYield=.057 BidSize=5 OfferSize=5