Skip to main content

Placing multiple quotes

Mass Quotes Limit: Mass quotes are limited to 15 double-sided quotes.Fill Limits: The maximum number of fills on a single mass quote is 2000 fills for single-leg instruments and 400 fills for combo instruments.

MassQuoteRequest (130)

Place buy and/or sell orders for up to 15 instruments in one message.
FieldNameTypeLengthDescription
1quoteIdint648Numeric client quote ID
2correlationIdint648Client-assigned ID
3mmpGroupIdint648Identifier of MMP group
4SMPTokenint648This order cannot match with any other orders within the same portfolio with the same token.
5massQuoteFlagsuint81See the table below
6reserveduint162Padding for byte alignment
7blockLengthOfQuotesuint16244 (bytes)
8numberOfQuotesuint162Number of quotes in repeating group. Maximum is 15.
->9instrumentIdint648Numeric instrument ID
->10buyPriceFixedPoint98Limit price of buy side
->11sellPriceFixedPoint98Limit price of sell side
->12buyAmountDecimal729Buy amount. 0 to cancel existing order
->13sellAmountDecimal729Sell amount. 0 to cancel existing order
->14buyFlagsuint81See the table below
->15sellFlagsuint81See the table below
The table below outlines the content of field 5 (massQuoteFlags) of MassQuoteRequest.
Bit number (from last to first)NameDescription
1resetMMP0=False
1=True
If an MMP freeze is active, this flag will remove the freeze before processing the rest of the message. Keep in mind there is a mandatory 1 second freeze that cannot be overruled
2Reserved for future use
3Reserved for future use
4Reserved for future use
5Reserved for future use
6Reserved for future use
7Reserved for future use
8Reserved for future use
The table below outlines the content of field 14/15 (buyFlags/sellFlags) of MassQuoteRequest.
Bit number (from last to first)NameDescription
1Post-only (amend)Enables post-only that amends the quote price to the best bid/ask if it would be immediately executable. The amended price is then validated against price limits. Mutually exclusive with Post-only (reject)
2Post-only (reject)Enables post-only that rejects the quote if it would be immediately executable. Mutually exclusive with Post-only (amend)
3Reserved for future use
4Reserved for future use
5Reserved for future use
6Reserved for future use
7Reserved for future use
8Reserved for future use

MassQuoteResponse (230)

Acknowledges the successful execution of a MassQuoteRequest. Quotes do not have a separate fillAmount and amount. A quote’s amount will always be what’s still available for execution. As such, in a MassQuoteResponse, the amounts of the quotes returned will already incorporate the accompanying fills.
FieldNameTypeLengthDescription
1transactTimeint648Nanoseconds since epoch. Time of entry into the order book
2execIdint648Exchange-assigned event ID
3quoteIdint648Numeric client quote ID
4correlationIdint648Client-assigned ID
5mmpGroupIdint648Identifier of MMP group
6receiveTimeint648Nanoseconds since epoch. Time of receipt of order on the gateway.
7blockLengthOfQuotesuint16276 (bytes)
8numberOfQuotesuint162Number of quotes in repeating group. Maximum is 15.
->9instrumentIdint648Numeric instrument ID
->10buyOrderIdint648Numeric exchange assigned order ID
->11sellOrderIdint648Numeric exchange assigned order ID
->12buyPriceFixedPoint98Limit price of buy side (possibly different from submitted price if postOnly)
->13sellPriceFixedPoint98Limit price of sell side (possibly different from submitted price if postOnly)
->14buyAmountDecimal729Amount remaining of buy side
->15sellAmountDecimal729Amount remaining of sell side
->16buyFilledAmountDecimal729Buy amount filled
->17SellFilledAmountDecimal729Sell amount filled
->18buyQuoteStatusint810=Inactive
1=Unmodified
2=QuantityReduced
3=Updated
4=Filled
5=CanceledByRequest
6=CanceledByMmp
7=CanceledBySelfMatch
8=Queued
->19sellQuoteStatusint81Refer to buyQuoteStatus for possible values
->20buyRejectReasonint81Rejection reason code. See Rejection Reason Codes for possible values.
->21sellRejectReasonint81Rejection reason code. See Rejection Reason Codes for possible values.
22blockLengthOfBuyFillsuint16232 (bytes)
23numberOfBuyFillsuint162Indicates the length of the following repeating group containing all immediate buy fills when the order was submitted
->24matchIdint648Transaction ID representing match
->25instrumentIdint648Numeric instrument ID
->26fillPriceFixedPoint98Price of fill
->27fillAmountDecimal729Amount of fill
28blockLengthOfSellFillsuint16232 (bytes)
29numberOfSellFillsuint162Indicates the length of the following repeating group containing all immediate sell fills when the order was submitted
->30matchIdint648Transaction ID representing match
->31instrumentIdint648Numeric instrument ID
->32fillPriceFixedPoint98Price of fill
->33fillAmountDecimal729Amount of fill
34blockLengthOfLegsuint16233 (bytes)
35numberOfLegsuint162Indicates the length of the following repeating group containing all combo leg quantities and prices.
Non-zero for trades on combo instruments only.
->36matchIdint648Transaction ID representing match.
->37instrumentIdint648Numeric instrument ID.
->38legQtyDecimal729Quantity of this leg in the combo instrument
->39legPriceFixedPoint98Price of this leg in the combo instrument
->40legSideint811=BUY
-1=SELL

MassQuoteReject (232)

Reject generated in case a MassQuoteRequest is unsuccessful.
FieldNameTypeLengthDescription
1transactTimeint648Nanoseconds since epoch. Time of entry into the order book
2quoteIdint648Numeric client quote ID
3correlationIdint648Client-assigned ID
4mmpGroupIdint648Identifier of MMP group
5reasonint810=SystemError
1=InvalidMmpGroup
2=MmpGroupDisabled
3=MmpGroupFrozen
6detailsLengthuint81Length of details field
7detailschar0-255ASCII-encoded string