iLink Execution Report - Fill Messaging Behavior

This topic describes iLink Execution Report - Fill messaging behavior for aggressing and resting orders in FIFO and Non-FIFO markets and also describes additional Execution Report - Fill considerations. 

Contents

Summary of iLink Execution Report - Fill Messaging Behavior

ScenarioBehavior
Aggressing OrderOne fill sent per trade price and per liquidity source regardless of how many counter-parties traded with
Resting Order (FIFO Market)For all order types other than Display Quantity, no change from today.
Resting Order (Non-FIFO Market)One fill sent with trade quantity aggregated from all match algorithm steps
Display Quantity (DQ) OrderOne fill sent with trade quantity aggregated from all refreshes

Opening Trade

All bids and asks receive one fill for each order in alternating sequence (i.e., BUY/SELL, BUY/SELL, etc.)

View a video of iLink Execution Report - Fill Messaging Behavior.

Fills for Aggressing Orders

When an aggressing order matches with multiple resting orders at the same price level, Execution Report - Fill messages are sent to the aggressor:

  • per aggressor order
  • per trade price
  • per liquidity source

Execution Report - Fill messages are sent to resting order clients per trade per price level with the exceptions noted below in non-FIFO markets and for Display Quantity orders.

Liquidity Source

A liquidity source is the order or orders that provide the matching quantity to the aggressing order.

  • Multiple customer orders at the same price level are considered a single liquidity source.
  • An implied order may have multiple liquidity sources.

Example - Multiple Liquidity Sources

In this example, the total GEZ9 bid size is 1500, 1000 of which is customer order resting quantity. The other 500 lots are implied from two other liqudity sources.

The liquidity sources are:

  1. GEZ9 resting, 1000 lots
  2. GEZ9-GEH0 and GEH0, 200 lots
  3. GEZ9-GEM0 and GEM0, 300 lots


Example - Aggressor Matches at Two Price Levels

This examples depicts a basic matching scenario showing Execution Report - Fill messages sent for aggressing and resting orders.

When the aggressor order matches with the resting orders in the order book, each counterparty receives Execution Report - Fill messages as follows:

Trader X

  • Fill Report 40 @ 1.0
  • Fill Report 60 @ 2.0

Trader A

  • Fill Report 10 @ 1.0
  • Fill Report 50 @ 2.0

Trader B

  • Fill Report 10 @ 1.0
  • Fill Report 10 @ 2.0

Trader C

  • Fill Report 20 @ 1.0

For stop orders, each triggered stop order is treated as a new aggressor, and the order fills will be sent based on trade price and liquidity source.

Example: Aggressor Matches with Implied Orders

Given the markets below, with an aggressing Bid for 180 @9805 in GEH9:

  • The aggressing order matches with multiple orders at price level 9805.
  • The liquidity sources are:
    • customer orders A and B
    • implied order i1
    • implied order i2

When the aggressor order matches with the resting orders in the order book, each counterparty receives Execution Report - Fill messages as follows:

Liquidity Source 1 (customer orders A and B):

  • Trader X - GEH9 Fill Report 100 @ 9805
  • Trader A - GEH9 Fill Report 60 @ 9805
  • Trader B -GEH9 Fill Report 40 @ 9805

Liquidity Source 2 (implied order i1):

Trader X

  • GEH9 Fill Report 50 @ 9805

Trader E

  • GEM9 Fill Report 15 @ 9802

Trader F

  • GEM9 Fill Report 35 @ 9802

Trader C

  • GEH9-GEM9 Fill Report 50 @ 3.0
  • GEH9 Fill Report 50 @ 9805
  • GEM9 Fill Report 50 @ 9802

Liquidity Source 3 (implied order i2):

Trader X

  • GEH9 Fill Report 30 @ 9805

Trader J

  • GEU9 Fill Report 30 @ 9803

Trader G

  • GEH9-GEU9 Fill Report 10 @ 2.0
  • GEH9 Fill Report 10 @ 9805
  • GEU9 Fill Report 10 @ 9803

Trader H

  • GEH9-GEU9 Fill Report 20 @ 2.0
  • GEH9 Fill Report 20 @ 9805
  • GEU9 Fill Report 20 @ 9803

An off-tick implied is considered a different liquidity source from an on-tick implied order that is from the same spread + outright combination. For example:

SIH9 and SIM9 with a tick of 5 and SIH9-SIM9 spread with a tick of 1

Buy SIM9@10 + Buy spread@2 generate an implied bid in SIH9@12 which is rounded down to 10
Buy SIM9@10 + Buy spread@3 generate an implied bid in SIH9@13 which is rounded down to 10

Although the same spread and leg combination is used to generate multiple implieds at the same price, these are not consolidated and considered as a different liquidity source.

Example: Aggressor Matches with Implied Orders in Pro Rata Market

Given the markets below, with an aggressing Ask for 60 @ 9802 in ZCU1:

  • The aggressing order matches with multiple orders at price level 9802.
  • The liquidity sources are:
    • customer orders G and H (20)
    • implied order i1 (24)
    • implied order i2 (16)

TraderTrade qty & priceDescriptionLiquidity Source

Trader X

24@9802 (ZCU1)

Aggressor

Implied1 Source

Trader B

16@9805 (ZCN1)

Within leg1 orders, 24 is allocated on a pro rata basis and the sequence is based on higher pro rata qty


Trader A

8@9805 (ZCN1)



Trader C

24@3 (ZCN1-ZCU1)

Spread



24@9805 (ZCN1)

Leg1 of spread



24@9802 (ZCU1)

Leg2 of spread


Trader X

20@9802 (ZCU1)

Aggressor

Customer Source

Trader H

12@9802 (ZCU1)

Within leg2 Customer orders, 20 is allocated on a pro rata basis and the sequence is based on higher pro rata qty


Trader G

8@9802 (ZCU1)



Trader X

16@9802 (ZCU1)

Aggressor

Implied2 Source

Trader D

16@9800 (ZCZ1)

Leg3


Trader F

12@2 (ZCU1-ZCZ1)

Spread



12@9802 (ZCU1)

Leg of the spread



12@9800 (ZCZ1)

Leg of the spread


Trader E

4@2 (ZCU1-ZCZ1)

Spread



4@9802 (ZCU1)

Leg of the spread



4@9800 (ZCZ1)

Leg of the spread


Aggressor Matches with Implied Orders in Pro Rata Market - Market Data Trade Summary Message

This diagram illustrates the market data Trade Summary generated from the match shown in the example above.

Tag 48-SecurityID  for the corresponding instruments:

  • 37891=ZCU1
  • 292835=ZCN1
  • 517954=ZCN1-ZCU1
  • 85982=ZCZ1
  • 517955-ZCU1-ZCZ1

The MDP 3.0 - Trade Summary message will always report trade information from an aggressor order first. See Aggressor Matches with Implied Orders in Pro Rata Market - Trade Summary Message for an example.

Fills for Resting Orders

This section describes the behavior of Execution Report - Fill messaging for resting orders.

FIFO vs Non-FIFO

Execution Report - Fill messages behave as follows for FIFO vs. Non-FIFO maekets.

  • For all order types other than Display Quantity in First-In First-Out (FIFO) markets, Execution Report - Fill messages are sent per client per transaction per price level.

  • For resting orders filled in non-FIFO markets, for all order types, a single Execution Report - Fill will be sent with the trade quantity aggregated from all match algorithm steps.
Resting order fills in non-FIFO markets are aggregated per aggressor order, trade price, and liquidity source.

Example - TOP/Pro Rata/FIFO

In the following example, these steps are used to match trades:

  • TOP - 100%
  • Pro-Rata with a minimum allocation
  • FIFO for any residual quantity

When the Trader X aggressor order to Buy 250 @ 9710 arrives at the order book:

  • 1st Step - TOP

    • Trader A (TOP Order) = 200

    2nd Step - Pro rata

    • Trader C (50/85 x 50) = 29
    • Trader B (25/85 x 50) = 14
    • Trader D (10/85 x 50) = 5

    3rd Step - FIFO

    The 2-lot is assigned to the order with the highest priority, which is Trader B.

    • Trader B = 2

When the aggressor order matches with the resting orders in the order book, each counterparty receives Execution Report - Fill messages as follows:

Trader X

  • Fill Report 250 @ 9710 (Aggressor)

Trader A

  • Fill Report 200 @ 9710 (TOP)

Trader B

  • Fill Report 16 @ 9710 (Pro-rata + FIFO)

Trader C

  • Fill Report  29@ 9710 (Pro-rata)

Trader D

  • Fill Report 5 @ 9710 (Pro-rata)

Display Quantity Orders

With this release, in any matching scenario involving Display Quantity orders, the Execution Report - Fill messages for the Display Quantity order will be aggregated and sent after the non-display quantity order fills resulting from the match.

Display Quantity resting order fills are sent per aggressor order, trade price and liquidity source.

Example: Hidden Quantity Filled

In this example an incoming aggressor order matches with 2 resting orders, including a Display Quantity order and a regular order.

When the aggressor order matches with the resting orders in the order book, each counterparty receives Execution Report - Fill messages as follows:

Trader X

  • 1 Fill Report  100 @ 1.0 (Instead of 10 Fill Reports 10 @ 1.0)

Trader B

  • 1 Fill Report  10 @ 1.0

Trader A (Display Quantity Order)

  • 1 Fill Report  90 @ 1.0 (Instead of 9 Fill Reports 10 @ 1.0)

    • Display Quantity Order gets the fill report after regular order fills regardless of their display quantity refresh status

Example: Aggressor Quantity Equals Price Level Displayed Quantity

In this example an incoming aggressor order matches with multiple resting orders and the aggressor quantity equals the total displayed quantity.

Given the following order book:

iLink fills will be sent in the following order:

Trader A - 7 @ 1.0 (Aggressor)
Trader C - 1 @ 1.0
Trader D - 5 @ 1.0
Trader B - 1 @ 1.0

Example: Aggressor Total Quantity Equals Price Level Total Quantity

In this example an incoming aggressor order matches with multiple resting orders and the aggressor quantity equals the price level total book quantity, including hidden quantity.

Given the following order book:

iLink fills will be sent in the following order:

Trader A - 8 @ 1.0 (Aggressor)
Trader C - 1 @ 1.0
Trader D - 5 @ 1.0
Trader B - 2 @ 1.0

Example: Display Quantity Refresh

In this example an incoming aggressor order matches with 2 Display Quantity resting orders.

Given the following order book:

iLink fills will be sent in the following order:

Trader A - 20 @ 1.0

Trader C - 3 @ 1.0

Trader D - 7 @ 1.0

Trader B - 4 @ 1.0

Trader E - 6 @ 1.0

Opening Trade

For the opening trade, BUY and SELL Execution Report - Fill messages are sent for each order in alternating sequence (i.e., BUY/SELL, BUY/SELL, etc.).

Example

Beginning with the following order book:

With an Indicative Opening Price (IOP) of 100, Bid 1, Bid 2, Ask 1 and Ask 2 are completely filled, Ask 3 is partially filled for qty 12.

  • Bid1 Fill 8@100
  • Ask1 Fill 5@100
  • Bid2 Fill 15@100
  • Ask2 Fill 6@100
  • Ask3 Fill 12@100

RFC Order

For an aggressor matching with an RFC order, aggressor fills are not sent per trade price per liquidity source, but per discrete order quantity filled.

iLink Execution Report - Fill Message Publishing Sequence

This table gives the iLink Execution Report - Fill message publishing sequence for the matching scenarios that may occur on CME Globex.

Outright TradesSpread Outright TradesImplied Trades (Aggressor Outright Contract)Implied Trades (Aggressor Spread Contract)Resting Orders
  • AGGRESSOR order fills always published first
  • RESTING order fills published based on match algorithm allocation steps
  • AGGRESSOR spread order fills and their legs always published first
  • RESTING spread order fills and their legs published based on match algorithm allocation steps


  • AGGRESSOR order fills always published first per liquidity source
  • RESTING order fills on other outright contracts published next
  • RESTING spread order fills and their leg fills published last


  • AGGRESSOR spread order fills and their legs always published first per liquidity source
  • RESTING order fills on other outright contracts published next
  • RESTING order fills on other spread contracts and their leg fills published last

  • For Non-Display Quantity order fills,
    • FIFO → Sequenced by time priority

    • TOP → TOP order always published first
    • LMM → Sequenced by time priority
    • Pro-Rata → Sequenced by size
  • Display Quantity order fills always published last after the non-display quantity order fills



How was your Client Systems Wiki Experience? Submit Feedback

Copyright © 2024 CME Group Inc. All rights reserved.