The Lab

Versions Compared

Key

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

...

Flag

Presence in 8

Presence in AE

FieldType
TEXTOptionalOptionalText[58]STRING
REF_SEQ_NUMRequiredRequiredRefSeqNum[45]INT

Maker

Outbound

On an outbound maker stream, only ExecutionReport[8] & ExecutionAcknowledgement[BN] are meaningful to inspect.


Message NameMsgType[35]ActionExplanation
LogonADrop sessionTrader already logged on
NewOrderSingleDDrop sessionTaker order submission
QuoteResponseAJDrop sessionTaker order submission
NewOrderListEDrop sessionTaker order submission
NewOrderMultilegABDrop sessionTaker order submission
ExecutionReport8InspectNew execution request
ExecutionAcknowledgementBNInspectNew execution request


ExecutionReport[8] & ExecutionAcknowledgement[BN]

Takers need to deal with both orders and executions (fills). Makers deal with only executions, but must handle the rare case where they could be rolled back.


Flag

Presence in 8

Presence in BN

FieldType
POSS_DUPEOptionalOptionalPossDupFlag[43], PossResend[97]BOOL
SEQ_NUMRequiredRequiredMsgSeqNum[34]INT
ACCOUNTOptionalOptionalAccount[1], PartyRole[452], etcSTRING
ALLOC_ACCTBANNEDBANNEDAllocAccount[79]STRING
EXEC_TYPERequired-ExecType[190]ENUM
EXEC_ACK_STATUS-RequiredExecAckStatus[1036]ENUM
ORDER_IDRequiredRequiredClOrdID[11]STRING
EXEC_IDRequiredRequiredExecID[17]STRING
SYMBOLRequiredRequiredSymbol[55], SecurityID[48]STRING, INT
CURRENCYRequiredRequiredCurrency[15]STRING
SIDERequiredRequiredSide[54]ENUM
CONTRACT_MULTIPLIEROptionalOptionalContractMultiplier[231]FLOAT
PRICEOptionalOptionalPrice[44]FLOAT
PRICE_TWOBANNEDBANNEDPrice2[640]FLOAT
QUANTITYOptionalOptionalOrderQty[38]FLOAT
QUANTITY_TWOBANNEDBANNEDOrderQty2[192]FLOAT
LAST_PRICERequiredRequiredLastPx[31]FLOAT
LAST_PRICE_TWOBANNEDBANNEDLastPx2[...]FLOAT
LAST_QUANTITYRequiredRequiredLastQty[32]FLOAT
LAST_QUANTITY_TWOBANNEDBANNEDLastQty2[...]FLOAT
SETTLE_DATERequiredRequiredSettlDate[64]DATE
SETTLE_DATE_TWOBANNEDBANNEDSettlDate2[193]DATE
NUM_LEGSOptionalOptionalNoLegs[555]INT


On an outbound maker risk-carrying message, the parser acts \as-if" the following events occur in sequence:
1. Attributes are read in.
2. Venue-specic patches are applied.
3. Unsupported features: if any condition in the following table satises, order action will be blocked with Z_UNSUPPORTED.
if any of these elds are present: Price2[640], SettlDate2[193], AllocAccount[79]
if Symbol[55] did not resolve to a valid currency pair
if NoLegs[555] is present and contains any nonzero value
4. Sanity: if any condition in the following table satises, order action will be blocked with Z_NON_CONFORMING.
if PossDupFlag[43] or PossResend[97] is present and has value Y
if any of the required elds are missing
if Currency[15] is missing on an order referencing a quote
if Currency[15] is present and referred neither of the currencies in the symbol

if Side[54] contained a value other than BUY[1] or SELL[2]
if LastPx[31] is more than a factor of 2 outside of reference rate
if LastQty[32] did not contain a positive scalar amount
5. A speculative execution state is constructed.
6. Execution state sent to risk backend for assessment. On failure, exec action will be blocked with whichever reason the risk
backend provides.

Maker Blocking

Inbound

ExecutionReport[8] & ExecutionAcknowledgement[BN]

...