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
Scenario | Behavior |
---|---|
Aggressing Order | One 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) Order | One 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:
- GEZ9 resting, 1000 lots
- GEZ9-GEH0 and GEH0, 200 lots
- 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)
Trader | Trade qty & price | Description | Liquidity 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.
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 Trades | Spread Outright Trades | Implied Trades (Aggressor Outright Contract) | Implied Trades (Aggressor Spread Contract) | Resting Orders |
---|---|---|---|---|
|
|
|
|
|
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.