...
Contents
Table of 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:
- Dubai Gulf Mercantile Exchange (DMEGME)
- 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.
...
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 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
Expand | ||
---|---|---|
| ||
New Order - SMP ID Value Exceeds Max Length 8=FIX.4.2|9=250|35=D|11=NMQ339|21=1|34=339|38=25|40=2|1=CSETTEST|44=1587.0000000|49=NMQ004N|50=CSET|52=20171103-17:01:47.453|54=1|55=DC|56=CME|57=G|59=0|1091=N|60=20171103-17:01:47.453|107=DCZ7|142=US,IL|1028=N|204=0|9702=4|9717=NMQ339|7928=927822777777777777777777|10=076| New Order Reject 8=FIX.4.2|9=210|35=3|34=2648|369=339|52=20171103-17:01:47.482|49=CME|50=G|56=NMQ004N|57=CSET|143=US,IL|45=339|58=Business Reject: Fix Field Length Exceeds Max Length '7928 (SELF_MATCH_PREVENTION_ID) length: 24 max: 12'|1028=N|10=018| Mass Quote - SMP ID Value Exceeds Max Length8=FIX.4.2|9=267|35=i|34=343|49=NMQ004N|50=CSET|52=20171103-17:03:47.483|56=CME|57=G|1091=N|117=1234|142=US,IL|1028=N|204=0|9702=1|9706=C|9771=CSETACCT|9773=N|296=1|302=QS1|307=CLZ7|304=1|295=1|299=TEST4|55=XE|107=LOZ7 C20500|132=1|134=50|133=2|135=50|167=OPT|7928=839677999999999999|10=030| Mass Quote Reject 8=FIX.4.2|9=231|35=j|34=2652|369=343|52=20171103-17:03:47.520|49=CME|50=G|56=NMQ004N|57=CSET|143=US,IL|45=343|58=Business Reject: Fix Field Length Exceeds Max Length '7928 (SELF_MATCH_PREVENTION_ID) length: 18 max: 12'|372=i|379=1234|380=5|1028=N|10=055| New Order - SMP ID has a special character to show it is an invalid value 8=FIX.4.2|9=242|35=D|11=9Q3842|21=1|34=842|38=5|40=2|1=CSETTEST|44=9815.5000000|49=9Q3099N|50=CSET|52=20171031-19:21:12.429|54=2|55=SR1|56=CME|57=G|59=0|1091=N|60=20171031-19:21:12.430|107=SR1U3|142=US,IL|167=FUT|1028=N|204=0|9702=4|9717=9Q3842|7928=839&6779*|10=029| New Order Reject 8=FIX.4.2|9=412|35=8|34=958|369=842|52=20171031-19:21:12.455|49=CME|50=G|56=9Q3099N|57=CSET|143=US,IL|1=CSETTEST|6=0|11=9Q3842|14=0|17=82347:825808|20=0|37=82627764551|38=5|39=8|40=2|41=0|44=9815.5|48=804055|54=2|55=SR1|58=Self Match Prevention ID is not associated with the given Firm ID|59=0|60=20171031-19:21:12.454|103=7614|107=SR1U3|150=8|151=0|167=FUT|432=20171031|1028=N|5979=1509477672454255548|7928=839&6779*|9717=9Q3842|10=211| New Quote - SMP ID has a space at the being to show it is an invalid value 8=FIX.4.2|9=257|35=i|34=879|49=9Q3000N|50=CSET|52=20171031-19:39:56.648|56=CME|57=G|1091=N|117=1234|142=US,IL|1028=N|204=0|9702=1|9706=C|9771=CSETACCT|9773=N|296=1|302=QS1|307=CLZ7|304=1|295=1|299=TEST4|55=XE|107=LOZ7 C20500|132=1|134=50|133=2|135=50|167=OPT|7928= 8396779|10=179| Quote Rejected 8=FIX.4.2|9=232|35=b|34=995|369=879|52=20171031-19:39:56.669|49=CME|50=G|56=9Q3000N|57=CSET|143=US,IL|117=1234|297=0|1028=N|7928= 8396779|9771=CSETACCT|9772=0|296=1|302=QS1|304=1|295=1|299=TEST4|55=LO|107=LOZ7 C20500|167=OPT|48=165239|22=4|368=102|10=221| |
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.
...
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 the Quote Cancel Acknowledgment Acknowledgment (tag 35-MsgType=b) messagemessage, tag tag 9775-UnsolicitedCancelType=H indicates H indicates that quotes were cancelled due to Self-Match Prevention.
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Note Regarding Stop Orders If a triggered Stop order causes a Self-Match Event, the default behavior of cancel resting order applies, unless tag 8000=N, in which case the aggressor is canceled.
Results: Order 1—the resting buy order, remains on the order book. Order 2—the aggressing sell order, is cancelled. The aggressing order is cancelled regardless of quantity. |
Scenarios
FIFO Market with SMP functionality configured across multiple CME Globex Firm IDs
This scenario illustrates a Self-Match event in a FIFO market.
...
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 | 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 |
...