Implied options are available on demand for a configurable time interval during a market’s trading session. Implied functionality for options is triggered by an RFQ (customer-initiated or engine-generated) for that instrument, and implied matching is available for the duration of the time interval.
Implied options functionality differs from that for futures instruments as follows:
- implied matching is typically available to eligible futures markets during the entire trading session as opposed to a configured interval
- all implied options orders must be built directly from customer orders; implied orders cannot be used to create another implied order (second generation implied).
Implied IN and Implied OUT orders are available.
- Implied IN: Two customer outright orders create an implied order in the spread book.
- Implied OUT: Customer spread and outright orders create an implied order in an outright book.
Contents
Product Availability
- An instrument is implied eligible if the market data Security Definition message (tag 35-MsgType=d) contains tag 872-InstAttribValue bit 19-Implied Matching Eligible=1.
- Recognized User Defined Spreads (UDS) are eligible for Options Implied Functionality if the market data Security Definition message (tag 35-MsgType=d) contains tag 872-InstAttribValue bit 19-Implied Matching Eligible=1.
- Implied options are initiated by customers via Request for Quote (RFQs) for a time interval which is configurable, by the GCC, per product.
Market and Instrument States
Implied ON/OFF Security Status messages (tag 35-MsgType = f) WILL NOT be sent for Implied Options.
Implied functionality will be indicated by the dissemination of Implied Book Messages (35=X, 269=E and F) for options outrights and options spreads and combinations.
Spread Leg Eligibility
Implied functionality can only be turned on if all instruments in the Product Group are in an OPEN state.
- If the trading engine receives an RFQ on a UDS while it's in any other state than OPEN, implieds will not turn on and the timer will be cancelled.
- If the trading engine receives an RFQ on a UDS and any leg is not in OPEN, implieds will not turn on and the timer will be cancelled.
Manual or Automatic State Changes
While implieds are active, if at any point an implied options spread or options outright contract transitions from an open state to another state, implieds will be turned off and the timer will be cancelled.
Implied Options Book Dissemination
Only the best implied price for best bid and best offer is disseminated for Implied Options Books via the Market Data Incremental (tag 35=X) message with tag 269=E (Implied Bid) or F (Implied Offer).
Initiating Implied Options Functionality
Implied functionality can be initiated in the following ways:
The following examples illustrate initialization of implied functionality.
Implied Options Market Initiated by Request for Quote
Client systems can initiate implied functionality for implied-eligible options spreads and combinations by submitting Quote Request (35=R) messages. Only Quote Requests (35=R) on the spread will trigger implied functionality. Quote Requests (35=R) on the legs will have no effect on the implied state of the contract.
- The client system submits a Quote Request (35=R) message for the options spread UD:U$: VT0606922873.
Note: The RFC timer may be set to 0 seconds. - CME Globex sends a Request for Quote (35=R) message to market participants.
The waiting period timer begins.
- The waiting period timer ends.
- The implied timer begins.
- CME Globex sends an Implied Book Update (35=X, 269=E or F) to market participants.
- If orders are matched; Trades, Volume, Book Updates, Statistics, and Implied Book Updates are sent to client systems.
- When the implied timer ends, Implied Book Update Delete messages are sent to client systems to remove the implied orders from the Implied Books.
Implied Options Market Initiated during UDS Creation
Client systems can initiate implied functionality for options instruments by creating a UDS.
- From the Security Definition data file, the client system obtains market data for the March 2023 SOFR 9562 Call and March 2023 SOFR 9575 Call outright options.
- The client system submits an iLink Order Entry Security Definition Request (35=c) message to create the UDS, with each outright option as a leg of the desired spread: Implied Vertical (VT) options spread UD:U$VT0606922873.
- CME Globex sends a market data Security Definition (35=d) message containing instrument attributes for the Vertical (VT) options spread UD:U$: VT0606922873 to market participants.
- CME Globex sends a Request for Quote (35=R) message indicating the creation of the implied Vertical (VT) options spread UD:U$: VT0606922873 to market participants.
- The waiting period timer begins.
- The waiting period timer ends.
- The implied timer begins.
- CME Globex sends Implied Book Updates (35=X, 269=E or F) to market participants.
- If orders are matched; Trades, Volume, Book Updates, Statistics, and Implied Book Updates are sent to client systems.
- When the implied timer ends, Implied Book Update Delete messages are sent to client systems to remove the implied orders from the implied books.
Implied Options Market during Request for Cross
The duration of the Waiting Period determines whether implied prices will affect the Request for Cross matching.
- If the Implied Options waiting period interval is greater than the period that it takes to execute the RFC, implied options will not factor into the RFC matching.
- If the Implied Options waiting period interval is equal to zero or less than the RFC period, implied options may participate in the match.
The following are examples of where the waiting period is configured to be greater than the RFC period and the waiting period is equal to zero.
Waiting Period > RFC Period
in this scenario a Request for Cross completes before implieds are turned on.
- The client system submits a Quote Request (35=R) message for the desired Vertical (VT) options spread UD:U$: VT0606922873.
- CME Globex sends a Request for Quote (35=R) with tag 54-Side=8 (Cross) message for the Vertical (VT) options spread UD:U$: VT0606922873 to market participants.
- The wait period timer begins.
- The client system sends a New Order Cross (35=s) to initiate Cross process.
- CME Globex sends a Security Status (35=f) message with tag 326-SecurityTradingStatus=24 (Pre-cross).
- CME Globex sends a Security Status (35=f) message with tag 326-SecurityTradingStatus=25 (Cross).
- The waiting period timer ends.
- The implied timer for the Vertical (VT) options spread UD:U$: VT0606922873 begins.
- CME Globex sends Implied Book Updates (35=X, 269=E or F) to market participants.
- If orders are matched; Trades, Volume, Book Updates, Statistics, and Implied Book Updates are sent to client systems.
- When the implied timer ends, Implied Book Update Delete messages are sent to client systems to remove the implied orders from the implied books.
Waiting Period = 0
A Request for Cross generates an RFQ (35=R) that triggers implied functionality and can match with implied orders.
- The client system submits a Quote Request (35=R) message with Cross instructions for the desired Vertical (VT) options spread UD:U$: VT0606922873.
- CME Globex sends a Request for Quote (35=R) with tag 54-Side=8 (Cross) message for the Vertical (VT) options spread UD:U$: VT0606922873 to market participants.
- The implied timer for the Vertical (VT) options spread UD:U$: VT0606922873 begins.
- CME Globex sends Implied Book Updates (35=X, 269=E or F) to market participants.
- The client system sends a New Order Cross (35=s) to initiate Cross process.
- CME Globex sends a Security Status (35=f) message with tag 326-SecurityTradingStatus=24 (Pre-cross).
- In this example, one of the orders intended to be crossed is partially traded with an implied order and Trade Message, Volume, Statistics, and Implied Book Updates for the Event are sent.
- CME Globex sends a Security Status (35=f) message with tag 326-SecurityTradingStatus=25 (Cross).
- If additional orders are matched; Trades, Volume, Book Updates, Statistics, and Implied Book Updates are sent to client systems.
- When the implied timer ends, Implied Book Update Delete messages are sent to client systems to remove the implied orders from the implied books.
Feature Files
Expand the Feature Files below for a logical example of each Implied Options scenario.
RFC trades based on BPM with resting implieds and customer orders and then trades BMG with the other side
#Description: Scenario verifies RFC trades happen correctly in an Implied Market based on BPM 1st and then BMG next
#Steps:
# Implied Trading turned on for the UDS Contract
# 2 orders create an Implied ask on the UDS at Price 18 and Qty 10
# 2 more orders create an Implied bid on the UDS at Price 16 and Qty 10
# After 2 additional orders are placed , the order book for the UDS has the following orders
# Bid Side -> 1 Implied at price 16 and Qty 10 ; 1 Customer order at price 11 and Qty 10
# Ask Side -> 1 Implied at price 18 and Qty 10 ; 1 Customer order at price 19 and Qty 5
# Wait for Implied to be Turned off
# RFQ on the UDS turns on Implieds on the UDS immediately
# RFC placed on the Bid Side Trades with the resting order book
# 1st trades with Implied Ask at price 18 and Qty 10
# 2nd trades with customer Ask at price 19 and Qty 5
# 3rd the remaining Qty of the RFC Bid side trades with the RFC Ask side at price 20 and Qty 5
Background:
* Instrument Group Configurations:
| groupName |
| NR |
| ON |
* Contracts:
| symbol |
| ONF2 C10100 |
| ONF2 P10100 |
* the following attributes are updated for contract(s) in real time:
| bandSwitch | securityDescription | lowLimit | settlementPrice | highLimit |
| false | ONF2 P10100 | 0 | 150 | 999990000 |
| false | ONF2 C10100 | 0 | 230 | 999990000 |
Scenario: RFC trades based on BPM with resting implieds and customer orders and then trades BMG with the other side
Given the following:
* realtime update following implied Units states:
| impliedUnitName | state |
| Implied NR ON | true |
* realtime update for implied Group delay and duration:
| startTime | productGroup | impliedDuration |
| 0 | NR | 2 |
* update instrument group with RFC configuration:
| group | preCrossDuration | crossDuration | bmgPercentage | bpmPercentage |
| NR | 0 | 0 | 100 | 100 |
| ON | 0 | 0 | 100 | 100 |
When the following events occur:
# Implied Trading is immediately turned on for the UDS Contract created below
* these "uds" message(s) are sent to Globex:
| identifier | SenderCompID | TraderID | eventID | SecurityReqID | NoLegs | securitySubType |
| 22619669 | C11691N | TC11 | BC118h14rhq4 | C11534622 | 2 | COMBO |
* with legs for "uds": "22619669"
| LegSymbol | LegSecurityDesc | LegRatioQty | LegSide |
| ON | ONF2 C10100 | 1 | bid |
| ON | ONF2 P10100 | 1 | bid |
# The 2 orders below create an Implied ask on the UDS at Price 18 and Qty 10
* these "new order" message(s) are sent to Globex:
| SecurityDescription | Side | Price | TimeInForce | OrderQty |
| ONF2 C10100 | ask | 6 | session | 10 |
| ONF2 P10100 | ask | 12 | session | 10 |
# The 2 orders below create an Implied bid on the UDS at Price 16 and Qty 10
* these "new order" message(s) are sent to Globex:
| SecurityDescription | Side | Price | TimeInForce | OrderQty |
| ONF2 C10100 | bid | 5 | session | 12 |
| ONF2 P10100 | bid | 11 | session | 10 |
# After the 2 orders below are placed , the order book for the UDS has the following orders
# Bid Side -> 1 Implied at price 16 and Qty 10 ; 1 Customer order at price 11 and Qty 10
# Ask Side -> 1 Implied at price 18 and Qty 10 ; 1 Customer order at price 19 and Qty 5
* these "new order" message(s) are sent to Globex:
| SecurityDescription | Side | Price | TimeInForce | OrderQty |
| 22619669 | ask | 19 | session | 5 |
| 22619669 | bid | 11 | session | 10 |
# Wait for Implied to be Turned off
* wait for market data state change message
# RFQ on the UDS turns on Implieds on the UDS immediately
* these "rfq" message(s) are sent to Globex:
| identifier | SenderCompID | TraderID | eventID | QuoteType |
| 22619683 | C11691N | TC11 | BC118h14rhqp | indicative |
* with contracts for rfq: "22619683"
| SenderSubID | SenderLocationID | QuoteReqID | Symbol | Side | SecurityDescription | SecurityType |
| dummy | Brio | C11534629 | NR | bid | 22619669 | OPT |
# RFC placed below on the Bid Side Trades with the resting order book as below
# 1st trades with Implied Ask at price 18 and Qty 10
# 2nd trades with customer Ask at price 19 and Qty 5
# 3rd the remaining Qty of the RFC Bid side trades with the RFC Ask side at price 20 and Qty 5
* these "rfc" message(s) are sent to Globex:
| identifier | OrdType | SecurityDescription | Price | crossType | NoSides |
| 22619687 | limit | 22619669 | 20 | 3 | 2 |
* with orders for rfc:
| ClOrdID | sideForRfc | CustomerOrFirm | CTICode | SideTimeInForce | OrderQty | Side |
| B | 22619687 | 1 | 3 | 0 | 20 | bid |
| S | 22619687 | 1 | 3 | 0 | 20 | ask |
Then the following should happen:
* expect execution message(s) with values:
| messageType | LastPx | LastQty | Side | SecurityDescription | LeavesQty | crossType |
| rfc partial fill | 18 | 10 | bid | 22619669 | 10 | 3 |
* expect execution message(s) with values:
| messageType | LastPx | LastQty | Side | SecurityDescription |
| fill | 6 | 10 | ask | ONF2 C10100 |
| fill | 12 | 10 | ask | ONF2 P10100 |
* expect execution message(s) with values:
| messageType | LastPx | LastQty | Side | SecurityDescription | LeavesQty | crossType |
| rfc partial fill | 19 | 5 | bid | 22619669 | 5 | 3 |
* expect execution message(s) with values:
| messageType | LastPx | LastQty | Side | SecurityDescription | LeavesQty |
| fill | 19 | 5 | ask | 22619669 | 0 |
* expect execution message(s) with values:
| messageType | identifier | LastPx | LastQty | Side | SecurityDescription | LeavesQty | crossType |
| rfc fill | 244630 | 20 | 5 | bid | 22619669 | 0 | 3 |
* expect execution message(s) with values:
| messageType | identifier | LastPx | LastQty | Side | SecurityDescription | LeavesQty | crossType |
| rfc partial fill | 244636 | 20 | 5 | ask | 22619669 | 15 | 3 |
Feature: Orders on Leg Resting bfr UDS Type ST is created and verify user RFQ Activates Implieds
#Description:
#Wait until auto-RFQ expired, send RFQ and this re-activates implieds for 2 more seconds.
Background:
* Instrument Group Configurations:
| groupName |
| NR |
| ON |
* Contracts:
| symbol |
| ONF2 C10100 |
| ONF2 P10100 |
* the following attributes are updated for contract(s) in real time:
| highLimit | bandSwitch | settlementPrice | lowLimit | securityDescription |
| 999990000 | false | 150 | 0 | ONF2 P10100 |
| 999990000 | false | 230 | 0 | ONF2 C10100 |
Scenario: 19339969 - ST - Legs Resting bfr Sprd Creation User RFQ Activate Impl
Given the following:
* realtime update following implied Units states:
| impliedUnitName | state |
| Implied NR ON | true |
* realtime update for implied Group delay and duration:
| startTime | impliedDuration | productGroup |
| 0 | 2 | NR |
When the following events occur:
* these "new order" message(s) are sent to Globex:
| SecurityDescription | Side | Price | TimeInForce | OrderQty | OrdType |
| ONF2 C10100 | bid | settle | session | 100 | limit |
* these "new order" message(s) are sent to Globex:
| SecurityDescription | Side | Price | TimeInForce | OrderQty | OrdType |
| ONF2 P10100 | bid | settle | session | 100 | limit |
# This UDS creation turns on implieds and creates an implied bid on the UDS of Type ST , from the resting outright orders
* these "uds" message(s) are sent to Globex:
| identifier | SenderCompID | TraderID | securitySubType |
| 22594058 | C11691N | TC11 | COMBO |
* with legs for "uds": "22594058"
| LegSymbol | LegSecurityDesc | LegRatioQty | LegSide |
| ON | ONF2 C10100 | 1 | bid |
| ON | ONF2 P10100 | 1 | bid |
# Wait for Implieds to be turned off
* wait "2" seconds
# Send market order to verify Implieds are off. Market order is rejected since there is no order on the opposite side
* these "new order" message(s) are sent to Globex:
| SecurityDescription | Side | Price | TimeInForce | OrderQty | OrdType |
| 22594058 | ask | -- | session | 100 | market |
# RFQ turns on implieds on the UDS contract
* these "rfq" message(s) are sent to Globex:
| identifier | SenderCompID | TraderID | eventID | QuoteType |
| 22594066 | C11691N | TC11 | BC116gqta8gq | indicative |
* with contracts for rfq: "22594066"
| SenderSubID | SenderLocationID | QuoteReqID | Symbol | Side | SecurityDescription | SecurityType |
| dummy | Brio | C111020891 | NR | bid | 22594058 | OPT |
# This Ask on the UDS trades with resting Implied Bid from the Outright Contracts
* these "new order" message(s) are sent to the Globex:
| SecurityDescription | Side | Price | TimeInForce | OrderQty | OrdType |
| 22594058 | ask | 380 | session | 100 | limit |
Then the following should happen:
* expect execution message(s) with values:
| messageType | SecurityResponseType | securitySubType | identifier |
| sde response | 2 | COMBO | 22594058_4287185 |
* with legs for UDS Ack: "22594058_4287185"
| LegSymbol | LegStrikePrice | LegSecurityDesc | LegSide |
| ON | 10100.0 | ONF2 C10100 | bid |
| ON | 10100.0 | ONF2 P10100 | bid |
* expect execution message(s) with values:
| messageType | OrderQty | OrdType | Side | SecurityDescription | text | OrdRejReason |
| order reject | 100 | market | ask | 22594058 | Market price orders not supported by opposite limit | 2013 |
* expect execution message(s) with values:
| messageType | LastPx | LastQty | Side | SecurityDescription | AggressorIndicator |
| fill | 380 | 100 | ask | 22594058 | Y |
* expect execution message(s) with values:
| messageType | LastPx | LastQty | Side | SecurityDescription |
| fill | 230 | 100 | ask | ONF2 C10100 |
| fill | 150 | 100 | ask | ONF2 P10100 |
| fill | 230 | 100 | bid | ONF2 C10100 |
| fill | 150 | 100 | bid | ONF2 P10100 |
Feature: Implied trading for SG spread
#Description:
# Verify Implied Trading for a Buy-Buy spread with spread code SG
#Steps:
#1 Ensure Groups are available for trading and Set Implied Delay = 0, Implied Duration = 20 Sec
#2 Create a UDS of type SG -> With Implied Delay set to 0 , this turns on Implieds for that contract immediately
#3 Enter Ask Orders on the Outrights using which the SG is created -> This creates Implied Bid on SG
#4 Enter a Ask Order on the SG UDS
#5 Enter an Bid Order on the SG UDS -> This trades with Implied Bid 1st and then Regular SG UDS spread order.
Background:
* Instrument Group Configurations:
| groupName |
| NR |
| ON |
* Contracts:
| symbol |
| ONF2 C10150 |
| ONF2 P10100 |
* the following attributes are updated for contract(s) in real time:
| settlementPrice | lowLimit | highLimit | securityDescription | bandSwitch |
| 50 | 0 | 999990000 | ONF2 P10100 | false |
| 50 | 0 | 999990000 | ONF2 C10150 | false |
Scenario: Implied Trade on SG spread
Given the following:
* realtime update following implied Units states:
| impliedUnitName | state |
| Implied NR ON | true |
#1 Ensure Groups are available for trading and Set Implied Delay = 0, Implied Duration = 20 Sec
* realtime update for implied Group delay and duration:
| startTime | productGroup | impliedDuration |
| 0 | NR | 20 |
When the following events occur:
#2 Create a UDS of type SG -> With Implied Delay set to 0 , this turns on Implieds for that contract immediately
* these "uds" message(s) are sent to Globex:
| identifier | SenderCompID | TraderID | SecurityReqID | NoLegs | securitySubType |
| my-uds-order | C11691N | TC11 | C11977981 | 2 | COMBO |
* with legs for "uds": "my-uds-order"
| LegSymbol | LegSecurityDesc | LegRatioQty | LegSide |
| ON | ONF2 P10100 | 1 | bid |
| ON | ONF2 C10150 | 1 | bid |
#3 Enter Ask Orders on the Outrights using which the SG is created -> This creates Implied Bid on SG
* these "new order" message(s) are sent to Globex:
| SecurityDescription | Side | Price | TimeInForce | OrderQty | OrdType | TraderID | SenderCompID |
| ONF2 P10100 | ask | settle | session | 5 | limit | TC11 | C11691N |
| ONF2 C10150 | ask | settle | session | 15 | limit | TC11 | C11691N |
#4 Enter a Ask Order on the SG UDS
#5 Enter an Bid Order on the SG UDS -> This trades with Implied Bid 1st and then Regular SG UDS spread order.
* these "new order" message(s) are sent to Globex:
| SecurityDescription | Side | Price | TimeInForce | OrderQty | OrdType | TraderID | SenderCompID |
| my-uds-order | ask | 100 | session | 8 | limit | TC11 | C11691N |
| my-uds-order | bid | 100 | session | 10 | limit | TC11 | C11691N |
Then the following should happen:
* expect execution message(s) with values:
| messageType | SecurityResponseType | securitySubType | identifier |
| sde response | 2 | COMBO | my-uds-ack |
* with legs for UDS Ack: "my-uds-ack"
| LegSymbol | LegSecurityIDSource | LegMaturityMonthYear | LegStrikePrice | LegSecurityDesc | LegRatioQty | LegSide |
| ON | 4 | 201201 | 10100.0 | ONF2 P10100 | 1 | bid |
| ON | 4 | 201201 | 10150.0 | ONF2 C10150 | 1 | bid |
* expect execution message(s) with values:
| messageType | LastPx | LastQty | OrderQty | OrdStatus | Side | SecurityDescription | LeavesQty | AggressorIndicator |
| partial fill | 100 | 5 | 10 | 1 | bid | my-uds-order | 5 | Y |
| fill | 50 | 5 | 5 | 2 | ask | ONF2 P10100 | 0 | N |
| partial fill | 50 | 5 | 15 | 1 | ask | ONF2 C10150 | 10 | N |
| fill | 100 | 5 | 10 | 2 | bid | my-uds-order | 0 | Y |
| partial fill | 100 | 5 | 8 | 1 | ask | my-uds-order | 3 | N |
Mass Quote Protections
Implied trades are included in Mass Quote Protection (MQP) valuations.
- MQP is evaluated and incremented after each trade.
- Offsetting positions (buy/sell + delta protections) are always evaluated at the end of an event, as long as all transactions take place during the same event.
Variable Tick Table (VTT) Products
This section contains information for variable tick products.
VTT Rounding
Variable tick products that create prices across ranges will use the following rounding rules to ensure on-tick price continuity:
- Implied Off-tick Bids are rounded down.
- Implied Off-tick Offers are rounded up.
Example: Implied Off-Tick Bid
- Tick Size = 10
- Price = 9705
- Rounded down to 9700
Example: Implied Off-Tick Offer
- Tick size = 25
- Price = 9720
- Rounded up to 9725
VTT Market Data
When trades take place using rounded implied prices, the following messages will be sent for market data and order entry acknowledgments.
- Market Data for trades is sent at the on-tick rounded price.
- Order Entry for trades reflects the actual fill prices.
Cabinet Prices
Cabinet Prices are not used to create implied market data or matches. If an outright leg's best bid or offer is priced at cabinet, implieds are effectively disabled. The implied timer will still be active, and implication can resume if/when the cabinet price is no longer the best price.
Comparison of Futures Implied Processing and Options Implied Processing
The following table compares the behavior of implied processing of futures to the behavior of implied processing for options:
Feature | Futures | Options |
---|
Implied Book Levels Disseminated | 2 | 1 (best implied price only) |
Frequency / Pace | Streaming | On-Demand driven by RFQs, Configured with Delay + Duration |
Implication Direction | Complementary; INs + OUTs | Complementary; INs + OUTs |
Spread Scope | Exchange Defined, Ratios, > 2 Legs | User Defined, limited to 8 spreads, 1:1 ratio |
FIFO Order Priority | Customer orders always prioritized over implied orders; CME proprietary prioritization rules are applied among implied orders. | Aggregated Price / Time with no preferential treatment for customer orders |
Implied Resolution | Earliest expiring outright leg receives price improvement | spread receives price improvement |