FIX 4.4 : Mass Quote <i> message

Structure | Related Messages

Description

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 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 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
    TotNoQuoteEntries - 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 Entries for a Quote 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 Entries (related symbols) in the continued message. The TotNoQuoteEntries <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> 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 Appendix H: Mass Quote 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 
    TotNoQuoteEntries=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)

First Message:

QuoteID=XXX
QuoteReqID=YYY 
NoQuoteSets=1 
    QuoteSetID=1 
    Symbol=AA 
    TotNoQuoteEntries=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

Second Message:

QuoteID=XXX
QuoteReqID=YYY 
NoQuoteSets=1 
    QuoteSetID=1 
    Symbol=AA 
    Other quote set fields 
    TotNoQuoteEntries=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 
    TotNoQuoteEntries=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

Structure

Tag Field Name Req'd Comments
<MessageHeader> Y MsgType <35> = i
131 QuoteReqID N

Required when quote is in response to a Quote Request <R> message

117 QuoteID Y
537 QuoteType N

Type of Quote

Default is Indicative if not specified

301 QuoteResponseLevel N

Level of Response requested from receiver of Quote messages.

Component Block - <Parties> N

Insert here the set of "<Parties>" (firm identification) fields

1 Account N
660 AcctIDSource N
581 AccountType N

Type of account associated with the order (Origin)

293 DefBidSize N

Default Bid Size for quote contained within this Quote message - if not explicitly provided.

294 DefOfferSize N

Default Offer Size for quotes contained within this Quote message - if not explicitly provided.

296 NoQuoteSets Y

The number of sets of quotes in the message

=> 302 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.

=> Component Block - <UnderlyingInstrument> N

Insert here the set of "<UnderlyingInstrument>" (underlying symbology) fields

=> 367 QuoteSetValidUntilTime N
=> 304 TotNoQuoteEntries Y

Total number of quotes for the quote set across all messages. Should be the sum of all NoQuoteEntries <295> in each message that has repeating quotes that are part of the same quote set.

=> 893 LastFragment N

Indicates if this message is the last fragment of a fragmented Mass Quote <i> message

=> 295 NoQuoteEntries Y

The number of quotes for this Symbol <55> (instrument) (QuoteSet) that follow in this message.

** Nested Repeating Group follows **

=> => 299 QuoteEntryID Y

Uniquely identifies the quote as part of a QuoteSet.

Must be used if NoQuoteEntries <295> is used

=> => Component Block - <Instrument> N

Insert here the set of "<Instrument>" (symbology) fields

=> => 555 NoLegs N

Used for multileg instruments

=> => => Component Block - <InstrumentLeg> N

Used for multileg instruments

=> => 132 BidPx N

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 N

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 N
=> => 135 OfferSize N
=> => 62 ValidUntilTime N
=> => 188 BidSpotRate N

May be applicable for F/X quotes

=> => 190 OfferSpotRate N

May be applicable for F/X quotes

=> => 189 BidForwardPoints N

May be applicable for F/X quotes

=> => 191 OfferForwardPoints N

May be applicable for F/X quotes

=> => 631 MidPx N
=> => 632 BidYield N
=> => 633 MidYield N
=> => 634 OfferYield N
=> => 60 TransactTime N
=> => 336 TradingSessionID N
=> => 625 TradingSessionSubID N
=> => 64 SettlDate N

Can be used with forex quotes to specify a specific 'value date'

=> => 40 OrdType N

Can be used to specify the type of order the quote is for

=> => 193 SettlDate2 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 N

Can be used with OrdType <40> = 'Forex - Swap' to specify the order quantity for the future portion of a F/X swap.

=> => 642 BidForwardPoints2 N

Bid F/X forward points of the future portion of a F/X swap quote added to spot rate. May be a negative value

=> => 643 OfferForwardPoints2 N

Offer F/X forward points of the future portion of a F/X swap quote added to spot rate. May be a negative value

=> => 15 Currency N

Can be used to specify the currency of the quoted price.

<MessageTrailer> Y

 

Related Messages