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

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

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:

  1. Increase of working quantity of the order.
  2. Change of price.
  3. Change of account number.

Good Til 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:

  1. Orders in the below table are at the same price on the buy side.
  2. Earliest timestamp is Order 1, then order 2, etc.
  3. The sell aggressor is at the same price as the buy orders.
  4. 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:

  1. Orders in the below table are at the same price on the buy side.
  2. Earliest timestamp is Order 1, then order 2, etc.
  3. The sell aggressor is at the same price as the buy orders.
  4. The sell aggressor is a 50 lot.
  5. 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

9

0

3

21

3

57

21

4

4

4

4

4

5

28

5

28

28

6

300

6

300

300

2

10

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:

  1. Orders in the below table are at the same price on the buy side.
  2. Earliest timestamp is Order 1, then order 2, etc.
  3. The sell aggressor is at the same price as the buy orders.
  4. The sell aggressor is a 50 lot.
  5. 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:

  1. LMMs do not exist in futures products at CME Group.
  2. LMM percentages are proprietary between the designated party and CME Group.
  3. Products can have multiple LMMs assigned.
  4. 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%.
  5. LMMs, by participating, are guaranteed their percentage of the match quantity rounded down to no less than one lot.
  6. 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:

  1. Orders in the below table are at the same price on the buy side.
  2. Earliest timestamp is Order 1, then order 2, etc.
  3. The sell aggressor is at the same price as the buy orders.
  4. The sell aggressor is a 50 lot.
  5. Order 2 is placed by LMM A whose percentage is 5%.
  6. 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:

  1. Orders in the below table are at the same price on the buy side.
  2. Earliest timestamp is Order 1, then order 2, etc.
  3. The sell aggressor is at the same price as the buy orders.
  4. The sell aggressor is a 1 lot.
  5. Order 2 is placed by LMM A whose percentage is 5%.
  6. 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:

  1. There are no lots distributed to orders during this step.
  2. The Split step is only present in the Configurable K algorithm (configured as Split FIFO/Pro Rata).
  3. Split is expressed in a percentage of FIFO/Pro Rata totaling 100%.
  4. 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:
    1. A one lot will be Split to FIFO.
    2. A two lot will be Split one lot to FIFO, and one lot to Pro Rata.
    3. A three lot will be Split two lots to FIFO, and one lot to Pro Rata.
    4. 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:

  1. The order must have participated in the preceding Pro Rata step. This means:
    1. The order had working quantity at the time of the match.
    2. A calculation was made to determine what quantity it would receive via Pro Rata.
  1. 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:

  1. Working quantity of the order at the time of distribution.
  2. 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:

  1. 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.
  2. An order enters the market and improves the market (tightens the bid ask spread).
  3. 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:

  1. Increasing the working quantity.
  2. Changing the price.
  3. 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 at the time of entry, however only the initial display quantity of the order shall be considered for TOP status.  All refreshes of the Display Quantity order will not have TOP unless the refresh satisfies all TOP requirements.  An example for this follows:

  1. Quantity exists at the best bid price level.  There is a TOP order present that is also a Display Quantity order.
  2. An aggressing sell order arrives and takes out all visible quantity of the best bid price level, but not more quantity than what exists at the price level (this quantity includes hidden quantity from Display Quantity orders).
  3. Upon refresh, the Display Quantity order would become TOP again provided:
  4. As a result of the match, the market was two ticks wide.
  5. The Display Quantity order would be first in at the (vacated bid) price level.
  6. The Display Quantity order would improve the market from two ticks to one tick.

The shown quantity of the Display Quantity order would need to be at least as large as the TOP Min parameter for the contract.

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:

  1. Its displayed quantity is ≥ TOP Min for the product, and
  2. 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.  All lots filled on that order, regardless of step (this includes initial aggressed quantity as well) count against the running total compared to TOP Max. 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 Percentage (TOP %) – This parameter is not currently used by CME Globex.  It 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

CME Globex is able to provide an efficiency to market participants in the event certain conditions are true. If an aggressing order matches all quantity at a price level from all sources, including all hidden quantity from working Display Quantity orders, CME Globex will use FIFO in lieu of the algorithm designated for the product. Fills are distributed to resting orders prioritized by best price then earliest time (best priced, earliest timestamped order is filled first, followed by the best priced, next earliest timestamped order, etc.).

FIFO Exception Example

  1. Aggressor quantity on one order in one event equals or exceeds resting quantity at a price level from all sources.
  2. Resting quantity includes unfilled hidden quantity from all Display Quantity orders.

CME Globex will disregard the current algorithm for the instrument and instead fill it via FIFO. Any quantity that remains unfilled from the aggressor will become a new bid or offer at the respective price level.

  • FIFO as an exception to the normal algorithm can cascade through multiple price levels. In this case, conditions 1 and 2 above are repeated for each price level until aggressing quantity is less than resting quantity at a price level (in which case the proper algorithm is used), or until the last price level on the aggressing order is reached.
  • GTC orders have no bearing on use of the FIFO Exception.
  • Display Quantity orders are treated as their full remaining quantity (working displayed plus hidden) if the FIFO Exception is used.
  • In such a case, FIFO is used for every resting order at the affected price level until allocation complete.