The Lab

Versions Compared

Key

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

...

  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.


Taker Blocking

When an outbound taker message is found to be illegal, the following taker block procedure is performed:

  • The following fields, if existent, are zero-filled: OrderQty[38], OrderQty2[192], BidSize[134], OfferSize[135], BidSize2[...], OfferSize2[...], LegQty[687], LegOrderQty[685], AllocQty[80], LegAllocQty[271].
  • QuoteRespType[694], if existent, will be filled with PASS[6].
  • If the blocked message was a OrderCancelReplaceRequest[G], it will be changed to a OrderCancelRequest[F].
  • For specific venues, if these actions are insufficient, Reflector will also fill any provided QuoteID[117] with "_".


OrderMassActionRequest[CA]

The only supported MassActionType[1373] is CANCEL[3]. All appearances of that field will be coerced to the supported value.

Inbound

On an inbound taker stream, Reflector accepts updates (including rejects) to live orders and fill notications.


Message NameMsgType[35]ActionExplanation
LogonADrop sessionTrader already logged on
NewOrderSingleDDrop sessionMaker new order
QuoteResponseAJDrop sessionMaker new order
ExecutionReport8Drop sessionMaker exec submission








OrderCancelReplaceRequestGInspectExisting order modication request
NewOrderListEOverwriteNot yet implemented
NewOrderMultilegABOverwriteNot yet implemented
QuoteSOverwriteIllegal
MassQuoteiOverwriteIllegal
OrderMassActionRequestCAInspectBlock unsupported actions

ExecutionReport[8] & TradeCaptureReport[AE]

...