Page History
...
| Flag | Presence in 8 | Presence in AE | Field | Type |
|---|---|---|---|---|
| TEXT | Optional | Optional | Text[58] | STRING |
| REF_SEQ_NUM | Required | Required | RefSeqNum[45] | INT |
Maker
Outbound
On an outbound maker stream, only ExecutionReport[8] & ExecutionAcknowledgement[BN] are meaningful to inspect.
| Message Name | MsgType[35] | Action | Explanation |
|---|---|---|---|
| Logon | A | Drop session | Trader already logged on |
| NewOrderSingle | D | Drop session | Taker order submission |
| QuoteResponse | AJ | Drop session | Taker order submission |
| NewOrderList | E | Drop session | Taker order submission |
| NewOrderMultileg | AB | Drop session | Taker order submission |
| ExecutionReport | 8 | Inspect | New execution request |
| ExecutionAcknowledgement | BN | Inspect | New 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 | Field | Type |
|---|---|---|---|---|
| POSS_DUPE | Optional | Optional | PossDupFlag[43], PossResend[97] | BOOL |
| SEQ_NUM | Required | Required | MsgSeqNum[34] | INT |
| ACCOUNT | Optional | Optional | Account[1], PartyRole[452], etc | STRING |
| ALLOC_ACCT | BANNED | BANNED | AllocAccount[79] | STRING |
| EXEC_TYPE | Required | - | ExecType[190] | ENUM |
| EXEC_ACK_STATUS | - | Required | ExecAckStatus[1036] | ENUM |
| ORDER_ID | Required | Required | ClOrdID[11] | STRING |
| EXEC_ID | Required | Required | ExecID[17] | STRING |
| SYMBOL | Required | Required | Symbol[55], SecurityID[48] | STRING, INT |
| CURRENCY | Required | Required | Currency[15] | STRING |
| SIDE | Required | Required | Side[54] | ENUM |
| CONTRACT_MULTIPLIER | Optional | Optional | ContractMultiplier[231] | FLOAT |
| PRICE | Optional | Optional | Price[44] | FLOAT |
| PRICE_TWO | BANNED | BANNED | Price2[640] | FLOAT |
| QUANTITY | Optional | Optional | OrderQty[38] | FLOAT |
| QUANTITY_TWO | BANNED | BANNED | OrderQty2[192] | FLOAT |
| LAST_PRICE | Required | Required | LastPx[31] | FLOAT |
| LAST_PRICE_TWO | BANNED | BANNED | LastPx2[...] | FLOAT |
| LAST_QUANTITY | Required | Required | LastQty[32] | FLOAT |
| LAST_QUANTITY_TWO | BANNED | BANNED | LastQty2[...] | FLOAT |
| SETTLE_DATE | Required | Required | SettlDate[64] | DATE |
| SETTLE_DATE_TWO | BANNED | BANNED | SettlDate2[193] | DATE |
| NUM_LEGS | Optional | Optional | NoLegs[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]
...