Mass Quote (MsgType = i, FIXML = MassQuote)

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 tags 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 Entries for a Quote 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:

If there are too many Quote Entries for a QuoteSet 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 Entries (related symbols) in the continued message. The TotQuoteEntries (304) is provided to optionally indicate to the counterparty the total number of Quote Entries for a Quote Set in multiple quote 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 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 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.

Maximum message size for fragmentation purposes can be determined by using the optional MaxMessageSize (383) field in the Logon (A) message or by mutual agreement between counterparties.

Requesting Acknowledgement for Mass Quotes

Applications can optionally support acknowledgement of quotes using the QuoteResponseLevel (301) tag. 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 (301) of 1 requests acknowledgement of invalid or erroneous quotes. A QuoteResponseLevel (301) of 2 requests acknowledgement of each Mass Quote (i) message.

See Appendix H: "Mass Quote Message Scenarios" of FIX Specification

Notes on usage for Options Markets:

It is assumed that for many options 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.

Tag Field Name FIXML Req'd Comments
<Standard Message Header> Y MsgType = i
131 QuoteReqID QuoteReqID N Required when quote is in response to a Quote Request (R) message
117 QuoteID QuoteID Y
301 QuoteResponseLevel QuoteResponseLevel N Level of Response requested from receiver of quote messages.
293 DefBidSize DefBidSize N Default Bid Size for quote contained within this quote message - if not explicitly provided.
294 DefOfferSize DefOfferSize N Default Offer Size for quotes contained within this quote message - if not explicitly provided.
296 NoQuoteSets NoQuoteSets Y The number of sets of quotes in the message.
=> 302 QuoteSetID QuoteSetID Y Sequential number for the Quote Set. For a given QuoteID (117) - assumed to start at 1. Must be the first field in the repeating group.
=> 311 UnderlyingSymbol UndrSymbol Y
=> 312 UnderlyingSymbolSfx UndrSymbolSfx N
=> 309 UnderlyingSecurityID UndrSecurityID N
=> 305 UnderlyingIDSource UndrIDSource N
=> 310 UnderlyingSecurityType UndrSecurityType N
=> 313 UnderlyingMaturityMonthYear UndrMonthYear C Required if UnderlyingMaturityDay (314) is specified.
=> 314 UnderlyingMaturityDay UndrDay N
=> 315 UnderlyingPutOrCall UndrPutCall N
=> 316 UnderlyingStrikePrice UndrStrikePx N
=> 317 UnderlyingOptAttribute UndrOptAttribute N
=> 436 UnderlyingContractMultiplier UndrContractMultiplier N For Fixed Income, Convertible Bonds, Derivatives, etc.
=> 435 UnderlyingCouponRate UndrCouponRate N For Fixed Income.
=> 308 UnderlyingSecurityExchange UndrSecurityExch N
=> 306 UnderlyingIssuer UndrIssuer N
=> 362 EncodedUnderlyingIssuerLen UndrEncodedIssuerLen C Must be set if EncodedUnderlyingIssuer (363) field is specified and must immediately precede it.
=> 363 EncodedUnderlyingIssuer UndrEncodedIssuer C Encoded (non-ASCII characters) representation of the UnderlyingIssuer (306) field in the encoded format specified via the MessageEncoding (347) field.
=> 307 UnderlyingSecurityDesc UndrSecurityDesc N
=> 364 EncodedUnderlyingSecurityDescLen UndrEncodedSecDescLen C Must be set if EncodedUnderlyingSecurityDesc (365) field is specified and must immediately precede it.
=> 365 EncodedUnderlyingSecurityDesc UndrEncodedSecDesc C Encoded (non-ASCII characters) representation of the UnderlyingSecurityDesc (307) field in the encoded format specified via the MessageEncoding (347) field.
=> 367 QuoteSetValidUntilTime QuoteSetValidUntilTime N
=> 304 TotQuoteEntries TotQuoteEntries Y Total number of quotes for the QuoteSet across all messages. Should be the sum of all NoQuoteEntries (295) in each message that has repeating quotes that are part of the same QuoteSet.
=> 295 NoQuoteEntries NoQuoteEntries Y The number of quotes for this Symbol (55) (QuoteSet) that follow in this message.
=> => 299 QuoteEntryID QuoteEntryID Y Uniquely identifies the quote as part of a QuoteSet. Must be used if NoQuoteEntries (295) is used
=> => 55 Symbol Symbol N
=> => 65 SymbolSfx SymbolSfx N
=> => 48 SecurityID SecurityID N
=> => 22 IDSource IDSource N
=> => 167 SecurityType SecurityType N Must be specified if a Future or Option. If a Future: Symbol (55) , SecurityType (167) , and MaturityMonthYear (200) are required. If an Option: Symbol (55) , SecurityType (167) , MaturityMonthYear (200) , PutOrCall (201) , and StrikePrice (202) are required.
=> => 200 MaturityMonthYear MonthYear C Specifiesthe month and year of maturity. Required if MaturityDay (205) is specified.
=> => 205 MaturityDay Day N Can be used in conjunction with MaturityMonthYear (200) to specify a particular maturity date.
=> => 201 PutOrCall PutCall C For Options.
=> => 202 StrikePrice StrikePx C For Options.
=> => 206 OptAttribute OptAttribute N For Options.
=> => 231 ContractMultiplier ContractMultiplier N For Fixed Income, Convertible Bonds, Derivatives, etc. Note: If used, quantities should be expressed in the "nominal" (e.g. contracts vs. shares) amount.
=> => 223 CouponRate CouponRate N For Fixed Income.
=> => 207 SecurityExchange SecurityExch N Can be used to identify the security.
=> => 106 Issuer Issuer N
=> => 348 EncodedIssuerLen EncodedIssuerLen C Must be set if EncodedIssuer (349) field is specified and must immediately precede it.
=> => 349 EncodedIssuer EncodedIssuer C Encoded (non-ASCII characters) representation of the Issuer (106) field in the encoded format specified via the MessageEncoding (347) field.
=> => 107 SecurityDesc SecurityDesc N
=> => 350 EncodedSecurityDescLen EncodedSecDescLen C Must be set if EncodedSecurityDesc (351) field is specified and must immediately precede it.
=> => 351 EncodedSecurityDesc EncodedSecDesc C Encoded (non-ASCII characters) representation of the SecurityDesc (107) field in the encoded format specified via the MessageEncoding (347) field.
=> => 132 BidPx BidPx C If F/X quote, should be the "all-in" rate (spot rate adjusted for forward points). Note that either BidPx (132) , OfferPx (133) or both must be specified.
=> => 133 OfferPx OfferPx C If F/X quote, should be the "all-in" rate (spot rate adjusted for forward points). Note that either BidPx (132) , OfferPx (133) or both must be specified.
=> => 134 BidSize BidSize N
=> => 135 OfferSize OfferSize N
=> => 62 ValidUntilTime ValidUntilTime N
=> => 188 BidSpotRate BidSpotRate N May be applicable for F/X quotes
=> => 190 OfferSpotRate OfferSpotRate N May be applicable for F/X quotes
=> => 189 BidForwardPoints BidForwardPoints N May be applicable for F/X quotes
=> => 191 OfferForwardPoints OfferForwardPoints N May be applicable for F/X quotes
=> => 60 TransactTime TransactTime N
=> => 336 TradingSessionID TrdSesID N
=> => 64 FutSettDate FutSettDate N Can be used with forex quotes to specify a specific "value date"
=> => 40 OrdType OrderType N Can be used to specify the type of order the quote is for
=> => 193 FutSettDate2 FutSettDate2 N Can be used with OrdType (40) = "Forex - Swap" to specify the "value date" for the future portion of a F/X swap.
=> => 192 OrderQty2 OrderQty2 N Can be used with OrdType (40) = "Forex - Swap" to specify the order quantity for the future portion of a F/X swap.
=> => 15 Currency Currency N Can be used to specify the currency of the quoted price
<Standard Message Trailer> Y