CME Globex Self-Match Prevention
CME Globex Self-Match Prevention (SMP) is optional functionality that allows a customer to prevent the matching of orders for accounts with common ownership, across different Executing Firms, within or across clearing firms.
Customers may submit orders and quotes with an SMP Identifier (SMP ID), and the platform will prevent the orders from trading when the SMP IDs match, by cancelling either the aggressing or resting order.
The customer can indicate whether to cancel the aggressing or resting order using the SMP Instruction in tag 8000-SelfMatchPreventionInstruction. Default behavior is to cancel the resting order.
Tag 8000-SelfMatchPreventionInstruction will be returned on the corresponding Execution Reports.
SMP does not prevent self-matches during implied trades or during the pre-open and new price indication market states.
In FIFO markets, SMP cancels the orders that would have executed. In all other markets, SMP cancels the orders that could have executed.
All users of CME Group Self Match Prevention agree that they have read and understand the functionality and limitations expressed in the CME Group Self Match Prevention FAQ, Client Systems Wiki, as well as Rule 534-Wash Trades Prohibited.
SMP functionality is available on both CGW and MSGW sessions.
Customer messages with unregistered SMP IDs, or SMP IDs that are not registered to the submitting Executing Firm, will be rejected. Customers receiving rejects should contact their Clearing Firm Admin and/or stop submitting orders with SMP ID(s) until the issue is resolved.
CME Direct supports SMP and a Self-Match Protection feature at the firm and user level that only affects orders entered via CME Direct.
Contents
Customer Registration
New Release
Customer registration is required for testing in New Release. Contact your Global Account Manager to obtain registered New Release SMP IDs. New SMP IDs and updates are valid same-day after 4:30 pm CT.
Production
Customer registration is required for Production use. Customers may register their Executing Firm IDs and SMP ID via the Firm Administrator Dashboard (FADB). Customer registration is required to access FADB or contact your Global Account Manager for an offline registration. New SMP IDs and updates are valid same-day after 4:30 pm CT Monday-Thursday and 9:30 am CT Sunday. During these times, CME Globex will eliminate any resting orders with unregistered SMP IDs. Orders submitted with new or modified SMP IDs before activation will be rejected.
More than one account number can be associated with an SMP ID. All accounts using a single SMP ID must have common ownership.
Self-Match Prevention Identifier Attributes
Randomly generated and universally unique number generated by CME Group
Numeric and will not start with a zero
7 digits with no blank spaces
Partner Exchanges
Self-Match Prevention functionality is applicable on the following Partner Exchange markets hosted on the CME Globex platform:
Gulf Mercantile Exchange (GME)
Minneapolis Grain Exchange (MGEX)
Bursa Malaysia Derivatives (BMD)
Markets
Self-Match Prevention functionality is applicable on the following markets hosted on the CME Globex platform:
EBS Market on CME Globex supports standard Self-Match Prevention (SMP), including tag 2362-SelfMatchPreventionID, with Locked Markets.
BrokerTec markets on CME Globex support four different Self-Match Prevention (SMP) variants.
Self-Match Prevention Video Overview
Watch this video for a brief overview of how SMP works.
Self-Match Prevention Functionality
Customers who opt to leverage Self-Match Prevention functionality by registering via the Firm Admin Dashboard will submit tag 7928-SelfMatchPreventionID on each quote and order message to prevent trading against an opposite side order with the same SMP ID.
When CME Globex detects a Buy order and a Sell order with the same SMP ID at the same executable price level, it automatically cancels the resting or incoming (aggressing) order(s) based on the Self-Match Prevention Instruction. If the Self-Match Prevention Instruction is not submitted, CME Globex will cancel the resting order(s) by default and continue processing the incoming order.
The unsolicited cancel due to Self-Match Prevention is included in the CME Globex Messaging Efficiency Program with a pre-defined weighting factor = 3.
Self-Match Prevention Messaging
SMP prevents the matching of orders for accounts with common ownership if both the buy and sell orders contain the same Self-Match Prevention Identifier (SMP ID).
The SMP ID is sent in tag 7928-SelfMatchPreventionID and must be submitted on the following inbound application iLink messages by market participants on each quote and order to prevent self-trading:
CME Globex will send tag 7928-SelfMatchPreventionID on the following outbound application iLink Messages (only if present in incoming messages):
Execution Report - Order Creation (tag 35-MsgType=8, tag 39-OrdStatus=0)
Execution Report - Order Modify (tag 35-MsgType=8, tag 39-OrdStatus=5)
Execution Report - Order Cancel (tag 35-MsgType=8, tag 39-OrdStatus=4)
Execution Report - Reject (tag 35-MsgType=8, tag 39-OrdStatus=8)
Execution Report - Fill Notice (tag 35-MsgType=8, tag 39-OrdStatus=1 or 2)
Order Cancel Reject (tag 35-MsgType=9, tag 434-CancelRejResponseTo=1)
Execution Report - Order Elimination (tag 35-MsgType=8, tag 39-OrdStatus=4 or C)
Execution Report - Trade Cancel (tag 35-MsgType=8, tag 39-OrdStatus=H)
Quote Cancel Acknowledgment (tag 35-MsgType=b, tag 297-QuoteAckStatus=1, 3, 4 or 5)
The incoming value will be sent back to customers in the Execution Report. If the tag value is greater than the max length, the quote or order will be rejected with tag 58=Business Reject: Fix Field Length Exceeds Max Length '7928 (SELF_MATCH_PREVENTION_ID) length: <Field Length> max: 12':
The order will be rejected with a Session Level Reject (tag 35=Msg-Type=3) message.
The quote will be rejected with a Business Level Reject (tag 35=Msg-Type=j) message.
Sample Messages
Self-Match Prevention at Execution
When CME Globex detects a buy and a sell order with the same SMP ID (tag 7928-SelfMatchPreventionID), it will automatically cancel the order if they are on the same executable price level can occur subject to the following conditions:
For the FIFO matching algorithm (tag 1142-MatchAlgorithm= F), SMP functionality is triggered when qualifying opposite side orders will match at a given price level.
For all other matching algorithms, SMP functionality is triggered when qualifying opposite side orders may potentially match due to presence at a given price level.
For Mass Quotes, if an SMP scenario is detected, all resting quotes in that group code under that SenderCompID are cancelled.
Self-Match Prevention Instruction
Self-Match Prevention instruction allows customers to indicate whether to cancel the resting or incoming (aggressing) order in the event of a self-match. To use SMP Instruction functionality, customers must submit tag 7928-SelfMatchPreventionID and tag 8000-SelfMatchPreventionInstruction on each order.
In the event of a self-match:
Tag 8000 on the aggressing order always determines which order(s) is cancelled.
When tag 8000 is not present on the aggressing order, the resting order(s) is cancelled.
Tag 8000 on the resting order(s) do not determine which order(s) is cancelled.
For Mass Quotes, Self-Match Prevention instruction indicating to cancel the resting or incoming (aggressing) side is not available. If SMP functionality is triggered, only resting quotes are cancelled.
Tag 8000-SelfMatchPreventionInstruction can be submitted on the following messages and will acknowledged back on the corresponding Execution Reports:
New Order Single (tag 35-MsgType=D)
Order Cancel-Replace Request (tag 35-MsgType=G)
If tag 8000-SelfMatchPreventionInstruction is sent in a client message other than New Order Single (35=D) or Order Cancel Replace Request (35=G), the message is accepted but tag 8000-SelfMatchPreventionInstruction is ignored and is not returned.
New Orders (35=D) and Order Cancel-Replace Requests (35=G) are rejected with a Session Level Reject (35=3) message when
the tag value is greater than the max length
the value is invalid
A modification to the value of tag 8000-SelfMatchPreventionInstruction does not cause the order to lose priority in the book. However, if tag 8000-SelfMatchPreventionInstruction is not present on the Cancel-Replace Request (35=G) message, CME Globex will remove the SMP Instruction from the resting order.
Self-Match Prevention ID and Self-Match Prevention Instruction
The following table illustrates how Self-Match Prevention functions based on the values for tag 7928-SelfMatchPreventionID and tag 8000-SelfMatchPreventionInstruction submitted in the originating message:
Originating Message | Execution Report |
| ||
---|---|---|---|---|
SMP ID tag 7928 is present | SMP Instruction tag 8000 value | tag 7928 is returned | tag 8000 value | Result |
Yes | N (New) | Yes | N (New) | Self-Match prevented Aggressing order cancelled |
Yes | O (Old) | Yes | O (Old) | Self-Match prevented Resting order cancelled |
Yes | Not sent | Yes | Not returned | Self-Match prevented Resting order cancelled |
Yes | Invalid value | N/A | N/A | Session Level Reject sent for orders and cancel/replace Business Level Reject sent for Mass Quotes |
Yes – unregistered or not registered to Executing Firm ID | Not sent | N/A | N/A | Session Level Reject sent for orders and cancel/replace Business Level Reject sent for Mass Quotes |
No | N | No | Not returned | Self-Match occurs |
No | O | No | Not returned | Self-Match occurs |
No | Not sent | No | Not returned | Self-Match occurs |
No | Invalid value | N/A | N/A | Session Level Reject sent for orders and cancel/replace Business Level Reject sent for Mass Quotes |
Values for Cancel Type Indicator
In the Execution Report - Order Cancel (tag 35-MsgType=8, tag 39-OrdStatus=4) message, tag 378-ExecRestatementReason indicates whether the resting or aggressing order was cancelled due to Self-Match Prevention.
Tag | Name | Req | Format | Values | Description |
---|---|---|---|---|---|
378 | ExecRestatementReason | N | Int (3) | 103=Cancel Oldest (Resting) due to Self-Match Prevention 107=Cancel Newest (Aggressing) due to Self-Match Prevention | Identifies origin of the order cancel. |
In the Quote Cancel Acknowledgment (tag 35-MsgType=b) message, tag 9775-UnsolicitedCancelType=H indicates that quotes were cancelled due to Self-Match Prevention.
Order 1: Buy SR1U3 | 10-lot @ 13 | SMP Instruction - Cancel Resting SMP ID – 1234567 & FirmID - 400 |
Order 2: Triggered Stop acting as aggressing order Sell SR1U3 | 20-lot @ 13 | SMP Instruction - Cancel Aggressing SMP ID – 1234567 & FirmID - 400 |
Scenarios
FIFO Market with SMP functionality configured across multiple CME Globex Firm IDs
This scenario illustrates a Self-Match event in a FIFO market.
SMP configuration:
SMP ID: 1234567
Registered to Executing Firm IDs 400 and 600
A 1000 lot buy limit order at price 1302 is submitted with
SMP ID 1234567
Executing Firm ID 600 and
Cancel Resting SMP Instruction.
Aggressing Buy Order | Resting Sell Orders | Action | |
---|---|---|---|
| Order | SMP ID & Firm ID |
|
1000 | 10 lot @ 1301 | 2345678 & 100 | Executed 10 lot @1301 |
990 | 20 lot @ 1301 | 3456789 & 200 | Executed 20 lot @1301 |
970 | 30 lot @ 1301 | 4567890 & 300 | Executed 30 lot @1301 |
940 | 500 lot @ 1301 | 5678901 & 500 | Executed 500 lot @1301 |
440 | 10 lot @ 1302 | 8765432 & 800 | Executed 10 lot @1301 |
430 | 20 lot @ 1302 | 1234567 & 400 (Cancel Aggressing instruction) | The aggressing order’s instructions take priority and the resting 20 lot order is cancelled. |
430 | 30 lot @ 1302 | 7890123 & 700 | Executed 30 lot @ 1302 |
400 |
|
| The aggressing buy order's remaining 400 lot @ 1302 rests on the order book. |
FIFO Market without Self-Match Event
This scenario illustrates a FIFO market without a Self-Match event. A 1000-lot buy order (SMP ID:1234567 and FirmID:400) is entered at 1302, with a 'Cancel Resting' instruction.
Aggressing Buy Order Remaining Quantity | Resting Sell Orders | Action | |
---|---|---|---|
| Order | SMP ID & Firm ID |
|
1000 | 10-lot @ 1301 | 2345678 & 100 | Executed 10-lot @1301 |
990 | 20-lot @ 1301 | 3456789 & 200 | Executed 20-lot @1301 |
970 | 30-lot @ 1301 | 4567890 & 300 | Executed 30-lot @1301 |
940 | 500-lot @ 1301 | 5678901 & 500 | Executed 500-lot @1301 |
440 | 450-lot @ 1302 | 6789012 & 600 | Executed 440-lot @1302 |
| 20-lot @ 1302 | 1234567 & 400 (Cancel Resting instruction) |
|
| 30-lot @ 1302 | 7890123 & 700 |
|
FIFO Market with Cancel Resting
This scenario illustrates a Self-Match event in a FIFO market. A 1000-lot buy order (SMP ID:1234567 and FirmID:400) is entered at 1302, with a Cancel Resting instruction.
Aggressing Buy Order Remaining Quantity | Resting Sell Orders | Action | |
---|---|---|---|
| Order | SMP ID & Firm ID |
|
1000 | 10-lot @ 1301 | 2345678 & 100 | Executed 10-lot @1301 |
990 | 20-lot @ 1301 | 3456789 & 200 | Executed 20-lot @1301 |
970 | 30-lot @ 1301 | 4567890 & 300 | Executed 30-lot @1301 |
940 | 500-lot @ 1301 | 5678901 & 500 | Executed 500-lot @1301 |
440 | 10-lot @ 1302 | 6789012 & 600 | Executed 10-lot @ 1302 |
430 | 20-lot @ 1302 | 1234567 & 400 (Cancel Aggressing instruction) | The aggressing order's instructions take priority and the resting 20-lot order is cancelled. |
430 | 30-lot @ 1302 | 7890123 & 700 | Executed 30-lot @ 1302 |
400 |
|
| The aggressing buy order's remaining 400-lot @ 1302 rests on the order book. |
Pro-Rata Market with Cancel Aggressing
This scenario illustrates a Self-Match event in a pro-rata market. A 1000-lot buy order (SMP ID:1234567 and FirmID:400) is entered at 1302, with a 'Cancel Aggressing' instruction.
Aggressing Buy Order Remaining Quantity | Resting Sell Orders | Action | |
---|---|---|---|
| Order | SMP ID & Firm ID |
|
1000 | 500-lot @ 1301 | 2345678 & 100 | A potential self-match at price level 1302 is recognized and the Self-Match event is triggered even though the aggressing order would not have reached the resting self-match order. The aggressing order's instructions take priority and the entire aggressing order is cancelled. |
0 | 300-lot @ 1301 | 3456789 & 200 |
|
0 | 200-lot @ 1301 | 4567890 & 300 |
|
0 | 500-lot @ 1301 | 5678901 & 500 |
|
| 20-lot @ 1302 | 1234567 & 400, Cancel Resting instruction | Resting order at same price with same SMP ID triggers the cancel of the aggressing order per the aggressing Instruction |
| 30-lot @ 1302 | 7890123 & 700 |
|
Pro-Rata Market with Cancel Resting
This scenario illustrates a Self-Match event in a pro-rata market. A 1000-lot buy order (SMP ID:1234567 and FirmID:400) is entered at 1302, with a 'Cancel Resting' instruction.
Aggressing Buy Order Remaining Quantity | Resting Sell Orders | Action | |
---|---|---|---|
| Order | SMP ID & Firm ID |
|
1000 | 500-lot @ 1301 | 2345678 & 100 | A potential self-match at price level 1302 is recognized and the Self-Match event is triggered even though the aggressing order would not have reached the resting self-match order. The aggressing order's instructions take priority and the resting order is cancelled even though it would not have matched. The aggressing order is then matched according to standard priority rules. Matched 500 @ 1301 |
500 | 300-lot @ 1301 | 3456789 & 200 | Matched 300 @ 1301 |
200 | 200-lot @ 1301 | 4567890 & 300 | Matched 200 @ 1301 |
0 | 500-lot @ 1301 | 5678901 & 500 |
|
0 | 20-lot @ 1301 | 1234567 & 400, Cancel Resting instruction | Resting order at same price with same SMP ID triggers the cancel of the resting order per the aggressing Instruction |
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.