Page tree
Skip to end of metadata
Go to start of metadata

A C-Cross order is processed as follows:

  • CME Globex automatically publishes an RFQ (tag 35-MsgType=R) message with tag 54-Side equal  to '8' (Cross) upon receipt of the Request for Cross (tag 35-MsgType=s) message. No Request for Quote (tag 35-MsgType=R) message is required.
  • Extended Pre-Cross state
  • Better Price Match (BPM) guaranteed execution - BPM is a certain percentage of the quantity on the RFC that will cross at the RFC price.
  • In a rejection scenario, the RFC message will be rejected with a Business Level Reject (tag 35-MsgType=j) message or an Execution Report Reject (tag 35-MsgType=8, tag 39-OrdStatus=8) message.

Please see the Market Regulation Advisory Notice for a complete description of each exchange-supported crossing protocol.

The list of eligible products and cross types is available here.

Cross trade scenarios are outlined here.

Contents

Testing and Certification

  • Client systems certified to standard RFC functionality in AutoCert+ do not need to certify for C-Cross.
  • New and uncertified customers intending to use C-Cross must certify to iLink and C-Cross.

Overview of Committed Cross Process

Submitting a Cross order is a staged process between the client system and CME Globex. The table below outlines the C-cross implementation and the related messages by comparison to the standard RFC implementation for CME FX options and CME and CBOT Interest Rate and Equity Index options.

   R-Cross RFC Process   C-Cross RFC Process

Cross Eligibility        

Tag 871-InstAttrbType=24 and tag 872-InstAttrbValue (Bit 13 set to 1=RFQ Cross Eligible) 

Tag 871-InstAttrbType=24 and tag 872-InstAttrbValue (Bit 13 set to 1=RFQ Cross Eligible) 

Cross Process Trigger

New Order Cross (35=s) message after RFQ message 

New Order Cross (35=s) message to initiate Cross sequence

RFQ Requirement

Regulatory mandate to send RFQ before submitting Cross Order

RFQ is not required.

RFQ is allowed (no regulatory penalty or messaging reject)

Pre-Cross Period

0 (zero) seconds

5 seconds

Better Price Match Percentage (BPM%)

0% for all cross eligible contracts

Equity Options: BPM = 0%

FX Options: BPM = 20%

Interest Rate Options: BPM = 35%

Interest Rates Futures (Deliverable Swap Future): BPM =  40%

Interest Rates Futures: BPM = 0%

CME Globex Invoice Spreads: BPM = 50% or 0%

CME FX Futures: BPM = 40% or 0% 

Eligible Markets

All Cross eligible options contracts except Equity, FX and Interest Rate Options

Equity Options

FX Options

Interest Rate Options

Interest Rate Futures

CME FX Futures

CME Globex Invoice Spreads

Cross Process

1. Submit RFQ during Open/Continuous Trading State
2. Mandatory wait period
3. Submit RFC
4. RFC receipt immediately triggers MDP RFQ and Pre-Cross State, duration 0   seconds
5. Immediate transition to Cross State
6. BPM allocation - 0%
7. Matching
8. Resume (Normal) Trading State

1. Submit RFC during Open/Continuous Trading State
2. RFC receipt immediately triggers MDP RFQ and Pre-Cross State, duration 5   seconds
3. Transition to Cross State
4. BPM allocation - product-configured value
5. Matching
6. Resume (Normal) Trading State

 

Notes

 Tag 871-InstAttrbType=24 and tag 872- InstAttrbValue (Bit 13 set to 1=RFQ Cross Eligible) in the Security Definition (tag 35-MsgType=d) message are used to identify instruments that are eligible for cross orders.

  • Only one Cross order is allowed during the Cross sequence for the given instrument; any subsequent Cross order will be rejected until the state returns to 'Resume Trading'.

  • The Pre-Cross state initiates and persists for 5 seconds

  • The committed Cross sent for these instruments allows pre-execution communications, and does NOT require a Request For Quote (tag 35-MsgType=R) prior to submission of the Cross (tag 35-MsgType=s) order.

See here for supported iLink functionality for Cross orders.

Better Price Match (BPM) Allocation - New Percentages

The submission of a C-Cross order immediately triggers the Pre-Cross state. If the cross price betters the existing market at the time of entry to Globex, and new orders submitted during the Pre-Cross do not improve on the C-Cross price, the C-Cross order will be eligible for a Better Price Match allocation at the beginning of the Cross-Period.

For BPM Percentages refer to the list of eligible products and cross types.

C-Cross Messaging and Book Update Example

The following diagram provides a generic example of the message flow and book updates for the C-Cross process.

C Cross

Committed Cross Scenarios

Example 1: Partial trade with aggressing order

BPM: 20%

Pre-cross duration: 5 seconds

  1. Market is 6 - 8
  2. New Order Cross (RFC) entered for 100 at 7
  3. Pre-Cross starts
  4. BidA entered for 50 at 7
  5. Pre-Cross ends
  6. Cross matches 20 at 7
    • Since the RFC price betters the resting bid and ask prices upon receipt and no aggressing order improved the RFC price at the conclusion of the Pre-Cross state, the BPM is applied first.
  7. Cross’ ask side is matched with the BidA for 50 at 7
  8. Cross matches remaining quantity of 30
    • Ask side is completely filled
    • Bid side is partially filled
  9. Cross bid side rests or eliminates 50 at 7 (depending on RFC tag 962-SideTimeInForce value)

Example 2: Full trade with aggressing order

BPM: 20%

Pre-cross duration: 5 seconds

  1. Market is 6 - 8
  2. New Order Cross (RFC) entered for 100 at 7
  3. Pre-Cross starts
  4. BidB entered for 100 at 7
  5. Pre-Cross ends
  6. Cross matches 20 at 7
    • Since the RFC price betters the resting bid and ask prices upon receipt and no aggressing order improved the RFC price at the conclusion of the Pre-Cross state, the BPM is applied first. 
    • Cross’ ask side is matched with the BidB for 80 at 7
  7. Cross’ bid side rests or eliminates 80 at 7 (depending on RFC tag 962-SideTimeInForce setting)
  8. BidB rests 20 at 7

Example 3: Partial trade with aggressing order

BPM: 0%

Pre-cross duration: 5 seconds

  1. Market is 6 - 8
  2. New Order Cross (RFC) entered for 100 at 7
  3. Pre-Cross starts
  4. BidC entered for 50 at 7
  5. Pre-Cross ends
  6. Cross’ ask side is matched with BidC for 50 at 7
    • Since the BPM is 0% and an aggressing order meets the RFC price, the Cross is first matched with the aggressing order
  7. Cross matches remaining 50

Cross bid side rests or eliminates 50 at 7 (depending on RFC tag 962-SideTimeInForce setting)

Example 4: Aggressing order betters the market

BPM: 20%

Pre-cross duration: 5 seconds

  1. Market is 5 - 8
  2. New Order Cross (RFC) entered for 100 at 6
  3. Pre-Cross starts
  4. BidD entered for 50 at 7
  5. Pre-Cross ends
  6. Cross’ ask side is matched with BidD for 50 at 7
    • Since the cross does not better the bid and ask prices upon receipt, and the aggressing order bettered the market over the RFC price at the conclusion of the Pre-Cross state, the BPM is not applied.
  7. Cross matches remaining 50
  8. Cross bid side rests or eliminates 50 at 6 (depending on RFC tag 962-SideTimeInForce setting)

Feature Files

Expand the Feature File below for a logical example of each type of Committed Cross scenario.

RFCOption.feature
  # Scenarios:
  # Eliminate RFC if there is any state change intervention during pre cross
  # During Pre cross state, Non RFC order matching will continue
  # RFC is best upon entry, but not at better bid due to orders during pre cross  so it is not BPM eligible
  # RFC trades as BPM, resting order and BMG with BPM set as 25%, pre cross duration as 5 seconds & BMG as 100%
  # RFC trades with eligible resting order and BMG, no BPM trades when BPM % set to zero

  Background:
    Given the following:
      * Instrument Group Configurations:
        | groupName |
        | E2        |

      * Contracts:
        | symbol      |
        | GE2U1 P9225 |

      * the following attributes are updated for contract(s):
        | securityDescription | settlementPrice |
        | GE2U1 P9225         | 175.0           |

  Scenario: Eliminate RFC if there is any state change intervention during pre cross
    Given update instrument group with RFC configuration:
      # duration in seconds
      | group | preCrossDuration | crossDuration | bmgPercentage | bpmPercentage |
      | E2    | 5                | 0             | 100           | 25            |

    #RFC entered
    And these "rfc" message(s) are sent to Globex:
      | Identifier | securityDescription | price | timeInForce | ordType |
      | cross1     | GE2U1 P9225         | 175.0 | session     | limit   |
    And with orders for rfc:
      | sideForRfc | side | orderQty |
      | cross1     | bid  | 100      |
      | cross1     | ask  | 100      |

    #During pre cross, close group
    When the group(s) "E2" is put in "closed" with reset statistics "off"

    Then expect execution message(s) with values:
      | messageType | securityDescription | price | side | orderQty | leavesQty |
      | rfc ack     | GE2U1 P9225         | 175.0 | bid  | 100      | 100       |
      | rfc ack     | GE2U1 P9225         | 175.0 | ask  | 100      | 100       |

    # Due to group close RFC is eliminated, buy & sell eliminations are sent
    And expect execution message(s) with values:
      | messageType       |  OrderQty |  Side |SecurityDescription   |  OrdStatus | Price |
      | order elimination |  100      |  bid  |  GE2U1 P9225         |  C         | 175   |
      | order elimination |  100      |  ask  |  GE2U1 P9225         |  C         | 175   |

  #_______________________________________________________________________________________________


  Scenario: During Pre cross state, Non RFC order matching will continue

    # pre cross duration set to 5 seconds
    Given update instrument group with RFC configuration:
      | group | preCrossDuration | crossDuration | bmgPercentage | bpmPercentage |
      | E2    | 5                | 0             | 100           | 25            |

    # Resting buy order@176
    And these "new order" message(s) are sent to Globex:
      | securityDescription | price | side | orderQty | timeInForce | identifier |
      | GE2U1 P9225         | 176.0 | bid  | 10       | SESSION     | newOrder1  |

    When the following events occur:

        # RFC is entered @175, state change to pre-cross
    * these "rfc" message(s) are sent to Globex:
      | Identifier | securityDescription | price | timeInForce | ordType |
      | cross1     | GE2U1 P9225         | 175.0 | session     | limit   |
    * with orders for rfc:
      | sideForRfc | side | orderQty |
      | cross1     | bid  | 100      |
      | cross1     | ask  | 100      |

        # Sell order @176 is entered during pre cross
    * these "new order" message(s) are sent to Globex:
      | securityDescription | price | side | orderQty | timeInForce | identifier |
      | GE2U1 P9225         | 176.0 | ask  | 10       | SESSION     | newOrder2  |

        # Resting Buy and Incoming Sell will trade @176
    Then expect execution message(s) with values:
      | messageType | securityDescription | price | side | leavesQty | lastqty |
      | fill        | GE2U1 P9225         | 176.0 | ask  | 0         | 10      |
      | fill        | GE2U1 P9225         | 176.0 | bid  | 0         | 10      |

     # End of cross RFC trades with itself
    And expect execution message(s) with values:
      | messageType | securityDescription | price | side | leavesQty | lastqty |
      | rfc fill    | GE2U1 P9225         | 175.0 | bid  | 0         | 100     |
      | rfc fill    | GE2U1 P9225         | 175.0 | ask  | 0         | 100     |

  #_______________________________________________________________________________________________


  Scenario: RFC is best upon entry, but not at better bid due to orders during pre cross so it is not BPM eligible

    Given update instrument group with RFC configuration:
      | group | preCrossDuration | crossDuration | bmgPercentage | bpmPercentage |
      | E2    | 5                | 0             | 100           | 25            |

    When the following events occur:

      # RFC entered - state change to pre-cross
      # 100@175, which is best upon entry as there were no resting orders
    * these "rfc" message(s) are sent to Globex:
      | Identifier | securityDescription | price | timeInForce | ordType |
      | cross1     | GE2U1 P9225         | 175.0 | session     | limit   |
    * with orders for rfc:
      | sideForRfc | side | orderQty |
      | cross1     | bid  | 100      |
      | cross1     | ask  | 100      |

         # Enter a buy order - 10@176 during pre cross
         # RFC is not equal to or better on buy side
         # RFC is not eligible for BPM
    * these "new order" message(s) are sent to Globex:
      | securityDescription | price | side | orderQty | timeInForce | identifier |
      | GE2U1 P9225         | 176.0 | bid  | 10       | SESSION     | newOrder1  |

    # RFC sell trades with the resting buy order for qty 10
    Then expect execution message(s) with values:
      | messageType      | securityDescription | price | side | orderQty | leavesQty | lastqty |
      | fill             | GE2U1 P9225         | 176.0 | bid  | 10       | 0         | 10      |
      | rfc partial fill | GE2U1 P9225         | 175.0 | ask  | 100      | 90        | 10      |
      # remaining 90 of RFC sell as BMG
      | rfc partial fill | GE2U1 P9225         | 175.0 | bid  | 100      | 10        | 90      |
      | rfc fill         | GE2U1 P9225         | 175.0 | ask  | 100      | 0         | 90      |

  #_______________________________________________________________________________________________


  Scenario: RFC trades as BPM, resting order and BMG with BPM set as 25%, pre cross duration as 5 seconds & BMG as 100%

    # pre cross duration of 5 seconds with BPM % set to 25
    Given update instrument group with RFC configuration:
      | group | preCrossDuration | crossDuration | bmgPercentage | bpmPercentage |
      | E2    | 5                | 0             | 100           | 25            |

    When the following events occur:

      # RFC - 100@175 state change to pre cross
    * these "rfc" message(s) are sent to Globex:
      | Identifier | securityDescription | price | timeInForce | ordType |
      | cross1     | GE2U1 P9225         | 175.0 | session     | limit   |
    * with orders for rfc:
      | sideForRfc | side | orderQty |
      | cross1     | bid  | 100      |
      | cross1     | ask  | 100      |

        # Sell order - 20@175 placed during pre cross
    * these "new order" message(s) are sent to Globex:
      | securityDescription | price | side | orderQty | timeInForce |
      | GE2U1 P9225         | 175.0 | ask  | 20       | SESSION     |

      # RFC is best upon entry & at better price at the end of pre cross
      # RFC trades with iteself for a qty of 25 (BPM)
    Then expect execution message(s) with values:
      | messageType      | securityDescription | price | side | leavesQty | lastqty |
      | rfc partial fill | GE2U1 P9225         | 175.0 | bid  | 75        | 25      |
      | rfc partial fill | GE2U1 P9225         | 175.0 | ask  | 75        | 25      |
      # Then RFC buy trades with resting sell for qty 20
      | rfc partial fill | GE2U1 P9225         | 175.0 | bid  | 55        | 20      |
      | fill             | GE2U1 P9225         | 175.0 | ask  | 0         | 20      |
      # The remaining RFC qty trades with itself as part of BMG (which is 100%)
      | rfc fill         | GE2U1 P9225         | 175.0 | bid  | 0         | 55      |
      | rfc partial fill | GE2U1 P9225         | 175.0 | ask  | 20        | 55      |

  #_______________________________________________________________________________________________


  Scenario: RFC trades with eligible resting order and BMG, no BPM trades when BPM % set to zero

      # BPM % set to 0 with pre cross duration of 5 seconds
    Given update instrument group with RFC configuration:
      | group | preCrossDuration | crossDuration | bmgPercentage | bpmPercentage |
      | E2    | 5                | 0             | 100           | 0             |

    When the following events occur:

      # RFC - 100@175 state change to pre cross
    * these "rfc" message(s) are sent to Globex:
      | Identifier | securityDescription | price | timeInForce | ordType |
      | cross1     | GE2U1 P9225         | 175.0 | session     | limit   |
    * with orders for rfc:
      | sideForRfc | side | orderQty |
      | cross1     | bid  | 100      |
      | cross1     | ask  | 100      |

      # Sell order - 20@175 placed during pre cross
    * these "new order" message(s) are sent to Globex:
      | securityDescription | price | side | orderQty | timeInForce |
      | GE2U1 P9225         | 175.0 | ask  | 20       | SESSION     |

      # RFC is best upon entry & at better price at the end of pre cross
      # RFC is BPM eligible but BPM % is set to zero, so no BPM trades
      # RFC buy trades with resting sell for qty 20
    Then expect execution message(s) with values:
      | messageType      | securityDescription | price | side | orderQty | leavesQty | lastqty |
      | rfc partial fill | GE2U1 P9225         | 175.0 | bid  | 100      | 80        | 20      |
      | fill             | GE2U1 P9225         | 175.0 | ask  | 20       | 0         | 20      |
      # The remaining RFC qty trades with itself as part of BMG (which is 100%)
      | rfc fill         | GE2U1 P9225         | 175.0 | bid  | 100      | 0         | 80      |
      | rfc partial fill | GE2U1 P9225         | 175.0 | ask  | 100      | 20        | 80      |

  #_______________________________________________________________________________________________

  • No labels