CME Globex Self-Match Prevention

CME Globex Self-Match Prevention (SMP) is optional functionality that allows a client to prevent the matching of orders for accounts with common ownership, within or across different Executing Firms, and within or across different clearing firms.

Clients may submit orders and quotes with an SMP Identifier (SMP ID), and the platform will prevent the orders from trading when the SMP IDs are the same by cancelling either the aggressing or resting order. Clients indicate whether to cancel the aggressing or resting order in the SMP instruction in tag 8000-SelfMatchPreventionInstruction. If tag 8000 is not included, the resting order is cancelled. Tag 8000-SelfMatchPreventionInstruction is returned on the corresponding Execution Reports.

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.

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.

Client Order Trades

SMP is applied to client order trades during any state when order matching occurs, except during the Opening resolution.

SMP is not applied to the Indicative Opening Price calculation.

Market & Instrument States

SMP Applied

Market & Instrument States

SMP Applied

Pre-Open

 

Pre-Open - No Cancel

 

Opening

 

Open

 

Pre-Cross

 

Cross

 

Pause

 

Close (Forbidden)

 

Close - Not Final

 

Close - Final

 

Post-Close

 

Implied Liquidity Trades

SMP is not applied to any trade with implied liquidity.

Market & Instrument States

SMP Applied

Market & Instrument States

SMP Applied

Pre-Open

 

Pre-Open - No Cancel

 

Opening

 

Open

 

Pre-Cross

 

Cross

 

Pause

 

Close (Forbidden)

 

Close - Not Final

 

Close - Final

 

Post-Close

 



Product Specific Behavior

Listed Derivatives - Futures and Options

In FIFO markets, SMP cancels the orders that would have executed.

In all other markets, SMP cancels the orders that could have executed.

EBS Market on CME Globex

EBS Market on CME Globex supports standard Self-Match Prevention (SMP), including tag 2362-SelfMatchPreventionID, with Locked Markets. 

BrokerTec on CME Globex

BrokerTec on CME Globex supports four different Self-Match Prevention (SMP) variants.

CME Direct supports native CME Globex 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)

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

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

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 Length

8=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 and 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



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

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.

When SMP is triggered by an aggressing Market order with tag 8000-SelfMatchPreventionInstruction = O (Old):

  • Resting order is cancelled with tag 378-ExecRestatementReason = 103(Cancel Oldest (Resting) due to Self-Match Prevention)

  • Aggressing Market order is acknowledged and then cancelled with tag 378-ExecRestatementReason = 111 (System 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
Remaining Quantity

Resting Sell Orders

Action

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

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
Aggressing buy order is fully filled. 

 

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

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

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

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.