CME Globex Matching Algorithm Steps
CME Globex uses several steps to allocate fills to resting orders when an aggressing order arrives at the order book. These allocation steps are grouped into an order of operations called a Matching Algorithm.
The trading engine assigns the algorithm applied to the given product. Depending upon matching conditions, a step can be omitted from an algorithm, or included multiple times within the sequence. The rules for each step are consistent across all algorithms.
Algorithm steps are sequenced such that all quantity is allocated by the end of the algorithm process. If there is more quantity aggressing than available (resting), CME Globex uses FIFO as an exception to the algorithm in place.
Contents
- 1 Algorithm Matrix
- 2 FIFO
- 3 Pro Rata
- 4 LMM
- 5 Split
- 6 Leveling
- 7 TOP
- 8 FIFO - Exception
Algorithm Matrix
This matrix delineates the individual steps followed by CME Globex during allocation.
Algorithm | Operational Name | Step | ||||||
---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
A | Allocation Algorithm (Pro Rata w/ Top) | TOP | Pro Rata | FIFO | ||||
C | Currency Roll (Pro Rata w/o Top) | Pro Rata | FIFO | |||||
F | FIFO | FIFO | ||||||
K | Configurable (Split FIFO/Pro Rata with LMM) | TOP | LMM | Split | FIFO* | Pro Rata* | Leveling* | FIFO |
O | Pro Rata w/ Top and parameters | TOP | Pro Rata | FIFO | ||||
Q | Pro Rata w/ Top, Parameters, and LMM | TOP | LMM | Pro Rata | FIFO | |||
S | LMM w/ Top | TOP | LMM | FIFO | ||||
T | LMM w/o Top | LMM | FIFO |
*FIFO and Pro Rata percentages are determined by CMEG and calculated during Split. Leveling can be optionally on or off for K.
FIFO
FIFO stands for First In, First Out. During FIFO, resting orders are matched in timestamp order only. All orders are matched in the timestamp order in which they were received (i.e. earliest timestamp is first, followed by next earliest, etc.).
Order Modification Loss of Timestamp Priority with FIFO
A modified order loses its timestamp priority when any of these values are modified:
Increase of working quantity of the order.
Change of price.
Change of account number.
Good Till Cancel Orders (GTC) with FIFO
A GTC order will retain its timestamp over subsequent trading sessions from initial entry (assuming no modifications that would cause loss of previous timestamp).
Display Quantity Orders with FIFO
A Display Quantity order is filled according to the working displayed quantity for its current timestamp. After a match event is complete, a Display Quantity order is refreshed with the lesser quantity of either:
1. The Display Quantity of the Order.
2. The remainder of the order if equal to or less than the Display Quantity.
3. The remainder of the Display Quantity in the event of a partial fill on that Display Quantity.
In addition, the Display Quantity order’s priority is refreshed to be the lowest of the remaining orders at the price level (order is placed at the end of the queue).
FIFO Example 1
Given:
Orders in the below table are at the same price on the buy side.
Earliest timestamp is Order 1, then order 2, etc.
The sell aggressor is at the same price as the buy orders.
The sell aggressor is a 50 lot.
The aggressing quantity is allocated to orders 1 + 2 (filling them). Order 3 receives a partial fill and will have 21 lots remaining after the match. The other orders receive no fill quantity.
Order | Working Quantity Before step | Remaining quantity after step |
---|---|---|
1 | 5 | 0 |
2 | 9 | 0 |
3 | 57 | 21 |
4 | 4 | 4 |
5 | 28 | 28 |
6 | 300 | 300 |
FIFO Example 2
Given:
Orders in the below table are at the same price on the buy side.
Earliest timestamp is Order 1, then order 2, etc.
The sell aggressor is at the same price as the buy orders.
The sell aggressor is a 50 lot.
Order 2 is a Display Quantity order with 90 additional unfilled lots displaying 10 at a time.
The aggressing quantity is allocated to orders 1 + 2 (filling them). Order 3 receives a partial fill and will have 21 lots remaining after the match. The other orders receive no fill quantity. After the match, order 2 would be refreshed to its display quantity of 10 at the lowest priority.
Order | Working Quantity Before step | Remaining quantity after step | Order # priority after the match | Quantity for each order after the match |
---|---|---|---|---|
1 | 5 | 0 | n/a | n/a |
2 | 10 | 0 | n/a | n/a (90 hidden quantity) |
3 | 57 | 22 | 1 | 22 |
4 | 4 | 4 | 2 | 4 |
5 | 28 | 28 | 3 | 28 |
6 | 300 | 300 | 4 | 300 |
2 | 10 | 10 | 5 | 10 (80 hidden quantity) |
Pro Rata
This step fills by proportion of the working order quantity compared to the entire quantity present at the price level at the time of a match. Therefore, larger orders will receive a larger percentage of a fill in this step.
Pro Rata is never the last step of an algorithm due to the required rounding; the Pro Rata step will always be followed by either a FIFO step or Leveling and FIFO steps.
Pro Rata Minimum (PR Min)
The Pro Rata step includes a parameter called Pro Rata Minimum. This is configured by CME Group as the minimum allocation eligible to participate in the Pro Rata step. Any orders that would execute less quantity than the PR Min will not get any fills in the Pro Rata step.
Allocation of lots to resting orders is done according to the following formula:
{Displayed working quantity of an order} / {Total working lots present} * {Match quantity} ≥ PR Min = allocation
Fractional lots received are rounded down prior to allocation.
GT Order with Pro Rata
GT Orders are treated the same as every other order at the price level during this step.
Display Quantity Orders with Pro Rata
Display Quantity orders only participate in Pro Rata based on their working displayed quantity.
Pro Rata Example
Given:
Orders in the below table are at the same price on the buy side.
Earliest timestamp is Order 1, then order 2, etc.
The sell aggressor is at the same price as the buy orders.
The sell aggressor is a 50 lot.
The Pro Rata Minimum for this contract is 2.
The aggressing quantity is allocated based on the size of the resting orders. The largest order receives the largest allocation, followed by the second largest order, etc.
If any of these orders were Display Quantity with more quantity hidden, the calculation would not change.
Order | Working Quantity Before step | Math formula used to distribute lots | Results | Rounded down | Allocated lots | Remaining quantity after step |
---|---|---|---|---|---|---|
1 | 5 | 5/403*50 | 0.62 | 0 | 0 | 5 |
2 | 9 | 9/403*50 | 1.11 | 1 | 0 | 9 |
3 | 57 | 57/403*50 | 7.07 | 7 | 7 | 50 |
4 | 4 | 4/403*50 | 0.49 | 0 | 0 | 4 |
5 | 28 | 28/403*50 | 3.47 | 3 | 3 | 25 |
6 | 300 | 300/403*50 | 37.22 | 37 | 37 | 263 |
LMM
The Lead Market Maker (LMM) step allocates a portion of a match event quantity to designated participants. Lead Market Makers have an agreement with CME to provide liquidity in certain products. In return for this liquidity, working orders or mass quotes in these products are entitled to a percentage of the match quantity during the LMM step.
Rules pertaining to the LMM percentage are:
LMMs do not exist in futures products at CME Group.
LMM percentages are proprietary between the designated party and CME Group.
Products can have multiple LMMs assigned.
The total LMM percentage assigned a product will not exceed a certain value. This value is proprietary to CME Group, differs by product, and is less than 50%.
LMMs, by participating, are guaranteed their percentage of the match quantity rounded down to no less than one lot.
If there is not enough quantity available to satisfy rule #5 above for all participating LMMs, the tiebreak is based on entry times of the participating orders. The earlier timestamp(s) will receive the fill.
GTC Orders with LMM
GTC orders placed by an LMM are treated the same as any other LMM orders at their price level, according to the rules above.
Display Quantity Orders with LMM
Display Quantity Orders placed by LMMs are only entitled to their fill percentage on their displayed working quantity at the time of match.
LMM Example1
Given:
Orders in the below table are at the same price on the buy side.
Earliest timestamp is Order 1, then order 2, etc.
The sell aggressor is at the same price as the buy orders.
The sell aggressor is a 50 lot.
Order 2 is placed by LMM A whose percentage is 5%.
Order 3 is placed by LMM B whose percentage is 6%.
The aggressing quantity is multiplied by the LMM percentages to determine their allocation in this step. The value is rounded down to no less than one lot.
Order | Working Quantity Before step | Math formula used to distribute lots | Results | Rounded down | Allocated lots | Remaining quantity after step |
---|---|---|---|---|---|---|
1 | 5 | 5 | ||||
2A | 9 | 50*.05 | 2.5 | 2 | 2 | 7 |
3B | 57 | 50*.06 | 3 | 3 | 3 | 54 |
4 | 4 | 4 | ||||
5 | 28 | 28 | ||||
6 | 300 | 300 |
LMM Example 2
Given:
Orders in the below table are at the same price on the buy side.
Earliest timestamp is Order 1, then order 2, etc.
The sell aggressor is at the same price as the buy orders.
The sell aggressor is a 1 lot.
Order 2 is placed by LMM A whose percentage is 5%.
Order 3 is placed by LMM B whose percentage is 6%.
The aggressing quantity is multiplied by the LMM percentages to determine their allocation in this step. The value is rounded down to no less than one lot. In this example, after rounding we have two eligible LMMs but only one lot to distribute. Since there is a tie, the allocated lot goes to the earlier timestamped order.
Order | Working Quantity Before step | Math formula used to distribute lots | Results | Rounded down | Allocated lots | Remaining quantity after step |
---|---|---|---|---|---|---|
1 | 5 | 5 | ||||
2A | 9 | 1*.05 | .05 | 1 | 1 | 8 |
3B | 57 | 1*.06 | .06 | 1 | 0 | 57 |
4 | 4 | 4 | ||||
5 | 28 | 28 | ||||
6 | 300 | 300 |
Split
The Split step is unique due to the following:
There are no lots distributed to orders during this step.
The Split step is only present in the Configurable K algorithm (configured as Split FIFO/Pro Rata).
Split is expressed in a percentage of FIFO/Pro Rata totaling 100%.
Lots designated to FIFO will be at least the percentage expressed for FIFO, with the remainder designated to be distributed via Pro Rata. As an example, the designated percentages of a product are 40/60. Given this:
A one lot will be Split to FIFO.
A two lot will be Split one lot to FIFO, and one lot to Pro Rata.
A three lot will be Split two lots to FIFO, and one lot to Pro Rata.
The results of this calculation instruct CME Globex to distribute lots via the next two steps in the K algo, those two steps being FIFO and Pro Rata in that order.
Split Example
In all cases 49 lots need to be designated for FIFO and Pro Rata by the Split step.
Note the rounding in the two middle examples below. In both cases, FIFO is rounded up to the whole lot just above the designated percentage for FIFO.
Scenario | Split % | Lots to FIFO | Lots to PR |
---|---|---|---|
1 | 100/0 | 49 | 0 |
2 | 20/80 | 10 | 39 |
3 | 40/60 | 20 | 29 |
4 | 0/100 | 0 | 49 |
Leveling
The Leveling step is a means by which remainders from rounding during an immediately preceding Pro Rata step are distributed to participating orders. Leveling is unique to the K algorithm (configured as Split FIFO / Pro Rata).
To qualify for a Leveling allocation, an order must satisfy two criteria:
The order must have participated in the preceding Pro Rata step. This means:
The order had working quantity at the time of the match.
A calculation was made to determine what quantity it would receive via Pro Rata.
The result of this calculation from 1b above caused the order to not receive any lots.
Assuming an order qualifies, it will receive at most one lot during the Leveling step. Tiebreaks for Leveling are, in order:
Working quantity of the order at the time of distribution.
Earliest Timestamp.
Leveling Example
This example uses the step from the previous Pro Rata example.
In the example below, 3 orders that participate in Pro Rata do not receive an allocation. These are orders 1, 2, and 4. Of the 50 lots originally designated for Pro Rata, the PR step only distributed 47 (this is the total number of lots from the “Allocated Lots” column, 7+3+37). This leaves 3 lots left to distribute.
Leveling will attempt to distribute lots to the qualifying orders. Since there are three lots available, each qualifying order can receive its maximum allocation of one lot. The order of distribution for these would be order 2, then order 1, and then order 4, due to their working quantity sizes at the time. As a result, if there had only been two lots to allocate, order 4 would not have received any allocation (as the smallest order).
Order | Allocated lots from PR | Remaining quantity after Pro Rata step | Lots allocated via Leveling | Remaining Quantity after Leveling step |
---|---|---|---|---|
1 | 0 | 5 | 1 | 4 |
2 | 0 | 9 | 1 | 8 |
3 | 7 | 50 | 50 | |
4 | 0 | 4 | 1 | 3 |
5 | 3 | 25 | 25 | |
6 | 37 | 263 | 236 |
TOP
The TOP step entitles one order to all fills up to its Top MAX parameter provided the order is TOP at the time of each match.
An order becomes TOP in one of the following ways:
The order buys or sells out all resting quantity in the book and has a remainder left over that will rest on the book at a new bid or offer price.
An order enters the market and improves the market (tightens the bid ask spread).
The displayed quantity of the order must be greater than or equal to the TOP Min.
An order loses TOP status by being modified in any of the following ways:
Increasing the working quantity.
Changing the price.
Changing the account number.
Cancelling an order does not convey TOP status to the next eligible order. The TOP check is made on order entry only. Likewise, an order loses TOP by being canceled or by having a new TOP order enter the market on the same side as it is. An order can also lose TOP status by having its TOP Max satisfied.
GTC Orders and TOP
GTC Orders can become TOP at time of entry (like other orders). GTC orders do not maintain TOP over a weekend. Upon the resumption of trading for the week, a new order that satisfies TOP requirements can become TOP.
Display Quantity Orders and TOP
A Display Quantity order can become TOP only at the time of entry, and only the initial display quantity of the order is considered for TOP status. The quantity displayed on this order must be at least as large as the TOP Min parameter for the contract. All refreshes of the Display Quantity order will not have TOP status.
CME Globex uses three different parameters that pertain to TOP Orders:
TOP Min – This parameter is a qualifier for TOP. While most markets at CME that utilize TOP have this value set to 1, some products use a higher value, i.e. grain options use a value of 10. This means (for grain options) that for an order to obtain TOP, it must be placed with a displayed quantity equal to or greater than 10 lots. An order entered after a price level is established without a TOP order can be assigned TOP status if:
Its displayed quantity is ≥ TOP Min for the product, and
There has not been a TOP order at that price level since it was established.
TOP Max – This parameter limits the number of lots a TOP order can receive in the TOP step. Only lots filled after the order rests in the market count against the running total compared to TOP Max (this excludes initial aggressed quantity). An order that loses TOP status as a result of TOP Max being equaled or exceeded still maintains its timestamp.
It is possible for an aggressing order to match enough quantity on entry (match qty ≥ TOP Max) to not be granted TOP status.
TOP MAX Examples
Example 1: An incoming aggressor order is matched with a resting order in the order book (match qty ≥ TOP Max)
Given:
Top Min =3
Top Max =40
Orders in the Market:
BID QTY | BID PRICE | OFFER PRICE | OFFER QTY |
---|---|---|---|
45 | 100 |
Aggressing Offer 50@100 matched resting bid at limit price 100 – Match 45@100,
Aggressor Offer will be get TOP status for the remaining 5 contracts. TOP Max quantity should be counted only after the order has rested in the market
BID QTY | BID PRICE | OFFER PRICE | OFFER QTY |
---|---|---|---|
100 | 5 (TOP Order) |
Example 2: An incoming aggressor order is matched with a resting order with TOP in the order book
Given:
Top Min =3
Top Max =40
Orders in the Market:
BID QTY | BID PRICE | OFFER PRICE | OFFER QTY |
---|---|---|---|
45 | 100 | 102 | 25 (TOP order) |
Aggressing Offer 200@100 matched resting bid at limit price 100 – Match 45@100,
Aggressor Offer will get TOP status for the first 40 lot fills against the remaining 155@100. Resting Offer (25@102) will lose TOP status.
BID QTY | BID PRICE | OFFER PRICE | OFFER QTY |
---|---|---|---|
100 | 155 (TOP Order) | ||
102 | 25 |
TOP Percentage (TOP %) – This parameter is a limiter to quantity being matched against a TOP order. Aggressing quantity is multiplied by this parameter, and the result (rounded down) is allocated to a TOP order. Unmatched quantity would then proceed to the next step of the algorithm.
FIFO - Exception
In the scenario where an aggressing order quantity is greater than or equal to the displayed quantity in an instrument at a given price level, for matching efficiency, CME Globex applies FIFO in lieu of the designated product algorithm. Quantity is allocated to resting orders according to best price and earliest timestamp.
This exception applies during the actual match in an instrument, not during predetermination.
FIFO Exception Steps
1. An aggressing order arrives for a quantity greater than or equal to that displayed at the given price level for the instrument.
2. CME Globex fills the resting orders via FIFO, including hidden quantity from display quantity orders.
Display Quantity orders are treated as their full remaining quantity (working displayed plus hidden). This prevents a display quantity order from being traded through without filling completely.
The FIFO exception can match through multiple price levels. In such a case case, market conditions are checked for each price level until:
Aggressing quantity is less than resting quantity at a price level (in which case the designated algorithm is used), or
The last price level on the aggressing order is reached.
The GTC order qualifier has no impact on use of the FIFO Exception.
3. Any unfilled aggressor quantity remains on the book at the given price level.
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.