Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This topic describes price limits and banding. Price limits and banding ensure pricing integrity for all products traded on the platform.

Contents

Table of Contents

Price Limits

The maximum price range permitted a contract during one trading session. Trading limits are set by the exchange for certain contracts. Price limits should not be considered to be an effective tool to ensure convergence and, in fact, they could actually inhibit convergence if they remain in place during the expiration period of a contract. While CME Group specifies daily price limits for many of its futures contracts that are based on physical commodities (e.g., corn, wheat and soybeans), these limits are removed during the delivery month to ensure that futures settlement prices accurately reflect the value of the underlying commodity at the delivery location.

...

  • AG DLA
    Instruments in certain product groups, for example, Agriculture (AG), are required to have high/low limits removed within a certain time period prior to expiration.

GTC or GTD Submitted Outside Daily Limits

Products that have daily limits, based on prior session settlement, cannot trade outside of those daily limits. However, a GTC or GTD order may be entered in most products (Big Equities being the exception) on CME Globex outside of the daily limit. Once accepted, the GTC/GTD will not be actionable until the price comes within the daily (hard) limits of a trading session.

...

  1.  A GTD or GTC order to buy 10 ZCZ1 @ 5600 is entered.

    • The current daily price limits are 5612 minimum and 6212 maximum.

    • The GTD or GTC order is placed on the book.

  2. The market closes and reopens on the next day with price limits of 5412 for the minimum and 6012 for the maximum. The order is now inside the daily range.

  3.  A sell order comes into the book to sell 10 ZCZ1 @ 5600 which matches against the buy order at 5600. (For purposes of this example, we assume that at time of entry, this incoming order is within current price bands.)

Price Banding

To ensure market integrity, CME Globex has a price banding mechanism which subjects all orders to price validation and rejects orders outside the given band. This mechanism prevents antagonistic or erroneous orders, such as limit bids at prices well above the market or limit offers at prices well below the market, from transacting market-moving trades that require subsequent cancellations.

...

Although banding does not prevent order entry, for products with price limits or circuit breakers, order entry may be prevented by the price limits or circuit breakers which take precedence over price banding.

Price Banding with Market Limit Orders

Banding does not affect market orders so the price banding logic will not prevent the entry of market orders. A market order only has the potential to match the market price to the best bid or offer in the book but not beyond.

...

Banding will protect for the conversion of market orders into limit orders outside of the host at prices that would run through the book. An order under those conditions would be rejected.

Price Banding with Stop Orders

Stop orders are processed relative to the price banding parameters. If the buy (sell) price is farther from the trigger price than the banding parameter then the order is rejected. Therefore, for all accepted Stop orders, if the stop price is hit, the limit order will be at a price within the band.

Price Band Variation

Based on the market state and trading activity, a Price Band Variation (PBV) will be applied above and below the instrument's reported reference price to establish the Price Band Variation Range (PBVR). The PBV is a static value that varies by product. It is symmetrically applied at both the upside (for bids) and downside (for offers) levels with each price change and enforced during the trading session.

...

It is important to note that the Daily Trading Limits always take precedence over PBVR in rejecting orders with erroneous prices. Price bands are monitored throughout the day by the CME Global Command Center (GCC) and are adjusted when necessary.

Futures Banding

With each price change the PBVR is recalculated and the new range is applied. The CME Globex platform rejects all bids and offers outside the PBVR. Applying the PBV to a reference price determines the PBVR.

...

The PBVR adjusts dynamically as the CME Globex Last Price changes for a given product.

Feature File

Expand the box below to view a Price Banding logical scenario.

...

Code Block
languagegherkin
Feature: Price Banding during PCP Pre-Open

  Background: 
    Given the following:
        * Instrument Group Configurations:
           | groupName | clearingFormat |
           | 6B        | M1             |
        * Contracts:
           | symbol |
           | 6BM2   |
        
        * the following attributes are updated for contract(s) in real time:
           | securityDescription | settlementPrice | futureBandValue | bandSwitch |
           | 6BM2                | 2000.00         | 975             | true       |

  Scenario: future outside bands during pre-open when pre-open multiplier is set at group level with bandingMultiplier equals to 2
    When the following events occur:
        * these "new order" message(s) are sent to Globex:
           | securityDescription | price  | side | orderQty | timeInForce |
           | 6BM2                | 2000.0 | bid  | 1        | session     |
           | 6BM2                | 2000.0 | ask  | 1        | session     |
        * the group(s) "6B" is put in "preOpen" with reset statistics "off"
        * "bandingMultiplier" of group "6B" is changed to "2"
        * these "new order" message(s) are sent to the Globex:
           | securityDescription | price  | side | orderQty | timeInForce |
           | 6BM2                | 2000.0 | bid  | 20       | session     |
           | 6BM2                | 2000.0 | ask  | 20       | session     |
           | 6BM2                | 2025.0 | bid  | 20       | session     |
           | 6BM2                | 3975.0 | bid  | 1        | session     |
           | 6BM2                | 49.0   | ask  | 1        | session     |
    Then the following should happen:
        * expect execution message(s) with values:
           | messageType  | securityDescription | price  | side | orderQty |
           | order ack    | 6BM2                | 2000.0 | bid  | 1        |
           | order ack    | 6BM2                | 2000.0 | ask  | 1        |
           | order ack    | 6BM2                | 2000.0 | bid  | 20       |
           | order ack    | 6BM2                | 2000.0 | ask  | 20       |
           | order ack    | 6BM2                | 2025.0 | bid  | 20       |
           # expect rejects due to price outside of high and low bands
           | order reject | 6BM2                | 3975.0 | bid  | 1        |
           | order reject | 6BM2                | 49.0   | ask  | 1        |

  Scenario: future outside bands during PCP when reserve multiplier is set at group level with bandingMultiplier equals to 2
    When the following events occur:
        * these "new order" message(s) are sent to Globex:
           | securityDescription | price  | side | orderQty | timeInForce |
           | 6BM2                | 2000.0 | bid  | 1        | session     |
           | 6BM2                | 2000.0 | ask  | 1        | session     |
        * the instrument(s) "6BM2" is put in "reserve"
        * "bandingMultiplierForReservedState" of group "6B" is changed to "2"
        * these "new order" message(s) are sent to the Globex:
           | securityDescription | price  | side | orderQty | timeInForce |
           | 6BM2                | 2000.0 | bid  | 20       | session     |
           | 6BM2                | 2000.0 | ask  | 20       | session     |
           | 6BM2                | 2025.0 | bid  | 20       | session     |
           | 6BM2                | 3975.0 | bid  | 1        | session     |
           | 6BM2                | 49.0   | ask  | 1        | session     |
    Then the following should happen:
        * expect execution message(s) with values:
           | messageType  | securityDescription | price  | side | orderQty |
           | order ack    | 6BM2                | 2000.0 | bid  | 1        |
           | order ack    | 6BM2                | 2000.0 | ask  | 1        |
           | order ack    | 6BM2                | 2000.0 | bid  | 20       |
           | order ack    | 6BM2                | 2000.0 | ask  | 20       |
           | order ack    | 6BM2                | 2025.0 | bid  | 20       |
           # expect rejects due to price outside of high and low bands
           | order reject | 6BM2                | 3975.0 | bid  | 1        |
           | order reject | 6BM2                | 49.0   | ask  | 1        |

  Scenario: future outside bands during pre-open when pre-open multiplier is set at group level with bandingMultiplier equals to 3
    When the following events occur:
        * these "new order" message(s) are sent to Globex:
           | securityDescription | price  | side | orderQty | timeInForce |
           | 6BM2                | 2000.0 | bid  | 1        | session     |
           | 6BM2                | 2000.0 | ask  | 1        | session     |
        * the group(s) "6B" is put in "preOpen" with reset statistics "off"
        * "bandingMultiplier" of group "6B" is changed to "3"
        * these "new order" message(s) are sent to the Globex:
           | securityDescription | price  | side | orderQty | timeInForce |
           | 6BM2                | 2000.0 | bid  | 20       | session     |
           | 6BM2                | 2000.0 | ask  | 20       | session     |
           | 6BM2                | 2025.0 | bid  | 20       | session     |
           | 6BM2                | 3975.0 | bid  | 1        | session     |
           | 6BM2                | 49.0   | ask  | 1        | session     |
    Then the following should happen:
        * expect execution message(s) with values:
           | messageType | securityDescription | price  | side | orderQty |
           | order ack   | 6BM2                | 2000.0 | bid  | 1        |
           | order ack   | 6BM2                | 2000.0 | ask  | 1        |
           | order ack   | 6BM2                | 2000.0 | bid  | 20       |
           | order ack   | 6BM2                | 2000.0 | ask  | 20       |
           | order ack   | 6BM2                | 2025.0 | bid  | 20       |
           | order ack   | 6BM2                | 3975.0 | bid  | 1        |
           | order ack   | 6BM2                | 49.0   | ask  | 1        |

  Scenario: future outside bands during PCP when reserve multiplier is set at group level with bandingMultiplier equals to 4
    When the following events occur:
        * these "new order" message(s) are sent to the Globex:
           | securityDescription | price  | side | orderQty | timeInForce |
           | 6BM2                | 2000.0 | bid  | 1        | session     |
           | 6BM2                | 2000.0 | ask  | 1        | session     |
        * the instrument(s) "6BM2" is put in "reserve"
        * "bandingMultiplierForReservedState" of group "6B" is changed to "4"
        * these "new order" message(s) are sent to the Globex:
           | securityDescription | price  | side | orderQty | timeInForce |
           | 6BM2                | 2000.0 | bid  | 20       | session     |
           | 6BM2                | 2000.0 | ask  | 20       | session     |
           | 6BM2                | 2025.0 | bid  | 20       | session     |
           | 6BM2                | 3975.0 | bid  | 1        | session     |
           | 6BM2                | 49.0   | ask  | 1        | session     |
           | 6BM2                | 5902.0 | bid  | 1        | session     |
    Then the following should happen:
        * expect execution message(s) with values:
           | messageType  | securityDescription | price  | side | orderQty |
           | order ack    | 6BM2                | 2000.0 | bid  | 1        |
           | order ack    | 6BM2                | 2000.0 | ask  | 1        |
           | order ack    | 6BM2                | 2000.0 | bid  | 20       |
           | order ack    | 6BM2                | 2000.0 | ask  | 20       |
           | order ack    | 6BM2                | 2025.0 | bid  | 20       |
           | order ack    | 6BM2                | 3975.0 | bid  | 1        |
           | order ack    | 6BM2                | 49.0   | ask  | 1        |
           # expect rejects due to price outside of bands
           | order reject | 6BM2                | 5902.0 | bid  | 1        |

Video

View this video for an overview of Futures Price Banding.

Options Banding

Price Banding for options is enforced in consideration of the following:

...