Skip to main content
Set self-match prevention on each order with SelfMatchPreventionID (7928) and SelfMatchPreventionInstruction (8000). Session-level self-match prevention, which applies to every order on a session, is not enabled by default. This instruction will automatically cancel one or both orders (without execution) which would potentially be involved in a self-match. The options are:
  1. The aggressor (new) order will be canceled.
  2. The passive (existing) order is canceled.
Use tags 7928 and 8000 on the order. Contact the exchange operator if you need session-level self-match prevention enabled for a session.

How Self-Match Prevention Works

Set self-match prevention on the order with SelfMatchPreventionID (7928) and SelfMatchPreventionInstruction (8000). Session-level self-match prevention is not enabled by default. Where specified, two otherwise-executable orders from the same participant and which carry the same SelfMatchPreventionID (7928) will be prevented from matching by expiring one of the orders. Whether the resting or aggressive order is canceled is governed by SelfMatchPreventionInstruction (8000) of the incoming order.

Figure 8: Self-match prevention expires the oldest order to prevent self-trading



Note that resting order(s) will expire just after the incoming order has been accepted by the Platform, and before any trades have taken place. The incoming order is therefore permitted to trade against other orders in the order book as it entered the market. Example 13: ExecutionReport indicating resting order expiry as a result of self-match prevention
If the SelfMatchPreventionInstruction (8000) is N (newest), then it is the incoming order which is rejected to prevent the execution, as shown below. This is the default behavior where SelfMatchPreventionID (7928) is present but SelfMatchPreventionInstruction (8000) is not specified. Note that the incoming order is fully canceled in the case it would potentially match against other orders with the same SelfMatchPreventionID (7928); partial execution against other orders is not permitted.

Figure 9: Self-match prevention causes newest order to be rejected



Example 14: ExecutionReport immediately rejecting incoming order as a result of self-match prevention