...
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)
...
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 |
...
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. |
...
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 |
|
...
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 |
...