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
- 5.1 Split Example
- 6 Leveling
- 6.1 Leveling Example
- 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 |
|
|
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.