The Lab

Error codes are used to report several situations:

  • Trader requests can be rejected by failed parser sanity checks, or by failed risk checks.
  • Venue updates can also be ignored by failed parser sanity checks.

Unsupported

Detection of unsupported features or meaningless ExecTypes:

  • Z_PENDING - Pending updates from taker venues have no risk implications. They are ignored.
  • Z_PRODUCT_UNKNOWN - Parser failed to identify a known product.
  • Z_UNSUPPORTED - Usage of some other feature that reflector does not support has been detected.

Non-Conforming

Various flavors of parser sanity check failure:

  • Z_ACCOUNT_UNKNOWN - When using a trading credential with account overload feature enabled, account information was missing on an order request.
  • Z_PRICE_RANGE - Price was more than a factor of two away from reference rates.
  • Z_QUANTITY_RANGE - Quantity our of range.
  • Z_DEALT_CCY_UNKNOWN - On an order request referring to a previously quoted order, dealt currency was not specified.
  • Z_SETTLE_DATE_UNKNOWN - Reflector's parser has failed to deduce the settle date.
  • Z_NON_CONFORMING - Some other unnamed sanity check has failed.

Order Sanity Checks

Sanity checks involving orders or ClOrderIDs:

  • Z_ORDER_ID_INVALID - Invalid or missing ClOrderID.
  • Z_ORDER_ID_COLLISION - Detection of an used ClOrderID on a NewOrderSingle.
  • Z_ORDER_ID_DISLOCATION - ClOrderID & OrigClOrderID are found to refer to different orders.
  • Z_ORDER_NOT_FOUND - ClOrderID and/or OrigClOrderID was not found to be bound to any existing order.
  • Z_ORDER_DEAD - On a ClOrderID bound to a dead order, an operation that is only valid on a live order was attempted.

Execution Sanity Checks

Sanity checks involving executions or ExecID:

  • Z_EXEC_ID_INVALID - Invalid or missing ExecID.
  • Z_EXEC_ID_COLLISION - Detection of an used ClOrderID on a Execution Report or Trade Capture.
  • Z_EXEC_NOT_FOUND - ExecID was not found to be bound to any existing execution (on a DontKnowTrade message).
  • Z_EXEC_TIME_OUT - Execution on a timed-out order.
  • Z_EXEC_REVISION - Execution being updated.
  • Z_EXEC_DEAD - DontKnowTrade on an already dead execution.

Risk Sanity Checks

  • Z_TRADING_DISABLED - All trading disabled on risk pool.
  • Z_MSG_RATE_RESTRAINT - Too many risk-increasing order actions per second.
  • Z_ORDER_COUNT_RESTRAINT - Too many pending orders.
  • Z_SINGLE_RESTRAINT - Attempt to breach single order size limit.
  • Z_PENDING_RESTRAINT - Attempt to breach pending limit.

Currency Risk Checks

Only available when per-currency risk checking is activated:

  • Z_CURRENCY_DISABLED - Trading detected on a disabled currency.
  • Z_CURRENCY_RESTRAINT - Attempt to breach a per-currency limit.

Currency Basket Risk Checks

Only available when currency basket risk checking is activated:

  • Z_CCY_BASKET_RANGE - Trading detected on a currency not allocated to a basket.
  • Z_CCY_BASKET_RESTRAINT - Attempt to breach a currency risk limit.

Credit Risk Checks

Dependent on which risk methodology is selected:

  • Z_DOWNSIDE_RESTRAINT - Attempt to breach downside limit.
  • Z_DOWNSIDE_ESCALATION - Attempt to increase downside position during risk reducing mode.
  • Z_UPSIDE_RESTRAINT - Attempt to breach upside limit.
  • Z_UPSIDE_ESCALATION - Attempt to increase upside position during risk reducing mode.
  • Z_EXPOSURE_RESTRAINT - Attempt to breach exposure limit.
  • Z_EXPOSURE_ESCALATION - Attempt to increase exposure position during risk reducing mode.
  • Z_DISPLACE_RESTRAINT - Attempt to breach displacement limit.
  • Z_DISPLACE_ESCALATION - Attempt to increase displacement position during risk reducing mode.

Daily Credit Risk Checks

Only availble when built with daily position tracking enabled (ZEBRA_DSL):

  • Z_DAILY_DOWNSIDE_RESTRAINT - Attempt to breach daily downside limit.
  • Z_DAILY_DOWNSIDE_ESCALATION - Attempt to increase daily downside position during risk reducing mode.
  • Z_DAILY_UPSIDE_RESTRAINT - Attempt to breach daily upside limit.
  • Z_DAILY_UPSIDE_ESCALATION - Attempt to increase daily upside position during risk reducing mode.
  • Z_DAILY_EXPOSURE_RESTRAINT - Attempt to breach daily exposure limit.
  • Z_DAILY_EXPOSURE_ESCALATION - Attempt to increase daily exposure position during risk reducing mode.
  • Z_DAILY_DISPLACE_RESTRAINT - Attempt to breach daily displacement limit.
  • Z_DAILY_DISPLACE_ESCALATION - Attempt to increase daily displacement position during risk reducing mode.