The Lab

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

NewOrderSingle[D], QuoteResponse[AJ], & OrderCancelReplaceRequest[G]


Flag

Presence in D

Presence in AJ

Presence in G

FieldType
POSS_DUPEOptionalOptionalOptionalPossDupFlag[43], PossResend[97]BOOL
SEQ_NUMRequiredRequiredRequiredMsgSeqNum[34]INT
ACCOUNTOptionalOptionalOptionalAccount[1], PartyRole[452], etcSTRING
ALLOC_ACCTBANNEDBANNEDBANNEDAllocAccount[79]STRING
ORD_TYPERequired-OptionalOrdType[40]ENUM
QUOTE_RESP_TYPE-Required-QuoteRespType[694]ENUM
ORIG_ORDER_ID--OptionalOrigClOrdID[41]STRING
ORDER_IDRequiredOptionalRequiredClOrdID[11]STRING
QUOTE_RESP_ID-Optional-QuoteRespID[693]STRING
SYMBOLRequiredRequiredRequiredSymbol[55], SecurityID[48]STRING, INT
CURRENCYOptionalRequiredOptionalCurrency[15]STRING
SIDERequiredRequiredRequiredSide[54]ENUM
CONTRACT_MULTIPLIEROptionalOptionalOptionalContractMultiplier[231]FLOAT
PRICEOptionalOptionalRequiredPrice[44]FLOAT
PRICE-Optional-BidPx[132], OfferPx[133]FLOAT
PRICE_TWOBANNEDBANNEDBANNEDPrice2[640]FLOAT
PRICE_TWO-BANNED-BidPx2[. . . ], OfferPx2[. . .]FLOAT
QUANTITYRequiredOptionalRequiredOrderQty[38]FLOAT
QUANTITY-Optional-BidSize[134], BidSize[135]FLOAT
QUANTITY_TWOBANNEDBANNEDBANNEDOrderQty2[192]FLOAT
QUANTITY_TWO-BANNED-BidSize2[. . . ], BidSize2[. . . ]FLOAT
SETTLE_DATEOptionalOptionalOptionalSettlDate[64]DATE
SETTLE_DATE_TWOBANNEDBANNEDBANNEDSettlDate2[193]DATE
NUM_LEGSOptionalOptionalOptionalNoLegs[555]INT


Processing Sequence

On an outbound risk-carrying Taker message, the parser acts as if the following events occur in sequence:

  1. Attributes are read in.
  2. Venue-specific patches are applied.
  3. Unsupported features: If any of the following conditions hold, the order action will be blocked. Unless specified, the stated reason for rejection will be serialized as (Z_UNSUPPORTED):
    1. If OrdType[40] has value FOREX_SWAP[G]
    2. If any of these fields are present: Price2[640], OrderQty2[192], SettlDate2[193], AllocAccount[79]
    3. If Symbol[55] (SecurityID[48] in LMAX44) did not resolve to a valid currency pair (Z_PRODUCT_UNKNOWN)
    4. If NoLegs[555] is present and contains any nonzero value
  4. Sanity: If any of the following conditions hold, the order action will be blocked. Unless specified, the stated reason for rejection will be serialized as (Z_NON_CONFORMING):
    1. If PossDupFlag[43] or PossResend[97] is present and has value Y
    2. If any of the required fields are missing
    3. If account resolution failed on a credential with multiple overloaded accounts set up (Z_ACCOUNT_UNKNOWN)
    4. For non-market orders, if Price[44] is missing or more than a factor of 2 outside of reference rate (Z_PRICE_RANGE)
    5. If OrderQty[38] did not contain a positive scalar amount (Z_QUANTITY_RANGE)
    6. If Currency[15] is missing on an order referencing a quote (Z_DEALT_CCY_UNKNOWN)
    7. If Currency[15] is present but did not refer to either of the currencies in the symbol (Z_DEALT_CCY_UNKNOWN)
    8. For Spot orders, if a settle date cannot be computed for the state symbol (Z_SETTLE_DATE_UNKNOWN)
    9. For non-Spot orders, if settle date computation failed sanity checks (Z_SETTLE_DATE_UNKNOWN)
    10. If Side[54] contained a value other than BUY[1] or SELL[2]
  5. A speculative order state is constructed.
  6. Order state is sent to the Risk Instance for assessment. On failure, order action will be blocked with whichever reason it provides.



OrderMassActionRequest[CA]

...