The Lab

Versions Compared

Key

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

...

  1. Attributes are read in.
  2. Venue-specic patches are applied.
  3. Unsupported features: if any of the following conditions hold, order action will be blocked with Z_UNSUPPORTED:
    1. If any of these fields are present: Price2[640], SettlDate2[193], AllocAccount[79]
    2. If Symbol[55] did not resolve to a valid currency pair
    3. If NoLegs[555] is present and contains any nonzero value
  4. Sanity: if any of the following conditions hold, order action will be blocked with 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 Currency[15] is missing on an order referencing a quote
    4. If Currency[15] is present and referred neither of the currencies of the symbol
    5. If Side[54] contained a value other than BUY[1] or SELL[2]
    6. If LastPx[31] is more than a factor of 2 outside of reference rate
    7. 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

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

  • The following fields, if existent, are zero-filled: OrderQty[38], OrderQty2[192], LegQty[687], LegOrderQty[685], AllocQty[80], LegAllocQty[271], LastQty[32], LastQty2[...], CumQty[14], CumQty2[...].
  • OrdStatus[39] & ExecType[150], if existent, will be filled with REJECTED[8].
  • ExecAckStatus[1036], if existent, will be filled with REJECTED[2].

Some venues (e.g. Fastmatch & FXall) require special handling. The goal, is to have the venue acknowledge the invalidated execution/message in some way. The venue's response, in decreasing order or preference, should be one of the following:

  • Venue ACKs accepts, rejects, and errors.
  • Venue ACKs only rejects and errors.
  • Venue ACKs only errors.
  • Venue ACKs nothing, but emits an order timeout afterwards.
  • Venue terminates session in some way.

Inbound

ExecutionReport[8] & ExecutionAcknowledgement[BN]

...