While there is much discussion about the costs incurred from trading against algorithmic traders, prop shops, and HFTs; there is relatively little mention of another type of algorithm that could be affecting trading performance: the algorithms embedded within exchange matching engines.
What is a matching engine? Well, when exchanges like the CME moved to electronic matching of bids and offers instead of the pit traded method of yelling, hand signals, and more paper tickets on the floor than any environmentalist would ever care to see; they needed a set of rules to dictate how the matching of orders would proceed in the digital environment. An engine, if you will, for the orderly operation of orders, wherein goes the fuel of multiple bids and offers, and out comes the propulsion of neatly matched trades.
Proper understanding of the different matching engines and how participants’ orders interact on the order book has mostly been the domain of market microstructure experts and sophisticated professional traders. It’s the trading equivalent of inside baseball or how the sausage is made, with most just caring that their order was executed, not how it was.
But a lack of knowledge regarding the exchange matching algorithms can be a less obvious way traders may encounter slippage. RCM-X believes all market participants should be familiar with at least the basics of these matching engines in the name of best execution, and to better understand how the exchange treats your order after you submit it.
The CME’s matching engine operates 10 different algorithms for electronic orders. Like any algorithm, these are a set of computerized and automated directions or rules. And, in this case, the algorithms dictate how resting orders – orders on the order book that have not yet been matched – are matched with aggressor orders – orders that are willing to ‘cross the spread’ in order to execute immediately. ‘Crossing the spread’ with an aggressor order, such as a market order, generates more slippage than getting filled on a resting order.
Not all orders are treated the same in all cases. Sometimes, the Top Order is given priority, sometimes the First Order In, and so forth. The following are the basic priority settings within the matching engine, which are then used in different ways depending on the market:
- Top Order – Priority for an order which establishes a new price level
- First In First Out (FIFO)- Priority for orders based on time, which resets at any price change, increase in quantity, or change in account number; with specific handling applied to outright vs. implied matches as well as matching a single leg against multiple spreads
- Pro Rate – Priority for orders based on their percentage of the total size available at the price level, with fractional amounts, rounded down to the nearest whole contract; orders must meet a minimum pro rata allocation depending on the product
- Lead Market Maker (LMM) – Priority for orders submitted by exchange designated LMMs, configured as a set percentage per product when present
FIFO-based Matching Algorithms
The FIFO-based matching algorithms include FIFO (F, T), NYMEX FIFO with LMM (N), and FIFO with Top Order and LMM (S), with the letters in parentheses the CME matching engine tag values. If Top Order or LMM are present on the matching algorithm, priority is given to the Top Order, followed by the LMM, and finally to the regular FIFO allocation.
Major products utilizing a FIFO-based matching algorithm include most energy, equity, and metals contracts, as well as the regular and Ultra variants of the 10-Year Treasury Note and Treasury Bonds.
The example below shows the order first in the queue (time rank = 1) getting filled on their entire offer of 80 contracts, the second order in the queue getting filled on 35 of their 55 contracts offered, and the third getting none, despite offering a price the buyer is willing to pay, because they were last in the queue – showing how important speed can be.
Sell 80 Limit @ 68.25
Sell 55 Limit @ 68.25
Sell 30 Limit @ 68.25
Incoming Buy 100 CL Limit @ 68.25
Pro Rata-based Matching Algorithms
Pro Rata-based matching algorithms include Pro Rata (C), Allocation (A), Threshold Pro Rata (O), and Threshold Pro-Rata with LMM (Q), a variant of which is Eurodollar Option Algorithm (Y).
The Pro Rata algorithm applies to FX futures spreads and is a simple pro rata allocation with a minimum allocation of 2 contracts for all products. Any remaining quantity not covered by the pro rata allocation is then finished with a FIFO allocation.
The Allocation algorithm applies to Eurodollar and Euribor futures products. The first allocation goes to the Top Order, followed by a pro rata allocation, and finally a FIFO allocation for any residual quantity.
The Threshold Pro Rata algorithm applies primarily to agricultural options products. Like the Allocation algorithm, orders are allocated Top Order, pro rata, and FIFO. The minimum and maximum top order allocation differ by product.
The Threshold Pro-Rata with LMM applies primarily to interest rate options and is allocated Top Order, LMM, pro rata, and FIFO. While Top Order is generally given a 100% allocation up to the maximum allocation, the Eurodollar Option algorithm limits the Top Order to a 25% allocation.
The example below shows the Allocation Algorithm on a Eurodollar future. This product has a 100% Top Order allocation up to a maximum of 49,999 contracts. Due to this, the Top Order for 30 contracts will be filled in full. Following the Top Order, the matching price level has 4 orders left for 110 contracts to which the remaining 95 contracts are allocated on a pro-rata basis. Two contracts are left to be matched after the pro rata match due to rounding that is allocated on a FIFO basis.
(Top Priority) Sell 30 Limit @ 97.650
Sell 20 Limit @ 97.650
Sell 15 Limit @ 97.650
Sell 40 Limit @ 97.650
Sell 35 Limit @ 97.650
Incoming Buy 125 Limit @ 97.650
Split FIFO and Pro Rata
The Split FIFO and Pro Rata (K) matching algorithm have a single designation but many different variants. The allocation priority is as follows, depending on the product priority rules: Top Order, LMM, FIFO split, pro rata split, pro rata leveling, and FIFO.
Two major differences in the Split FIFO and Pro Rata algorithm are the split percentage allocations and the pro rata leveling allocation. Depending on the product, a certain percentage of each matching order gets allocated FIFO and the remainder is allocated pro rata, with additional rules due to rounding after the pro rata allocation. One such rule is the pro rata leveling allocation, which can be viewed as a sub-allocation within the algorithm. After the pro rata allocation, any orders that did not receive a pro rata fill are eligible for a one lot fill, with priority based on size as well as time in the case of multiple eligible orders for the same size.
The example below shows a Soybean future order matched using the Split FIFO and Pro Rata algorithm. This contract has a Top Order allocation of 100% up to 100 contracts, which fills the Top Order of 10 completely. The 40% FIFO pass begins with 20 contracts remaining to be matched, and 8 contracts are matched to the top FIFO order remaining, reducing its size on the order book to 47. The Pro Rata phase of the order match has 12 contracts remaining to be allocated and 207 contracts offered. Due to rounding down, 9 contracts are filled Pro Rata and the resting order for 10 contracts receives a 1 lot Leveling fill since it did not participate in the Pro Rata phase. The final 2 contracts are then allocated on a FIFO basis. This example illustrates how the combined algorithm offers opportunities for resting orders to be matched both on a size and speed basis, as well as the opportunity for passive fills in the leveling stage that market participants may be overlooking.
(Top Priority) Sell 10 Limit @ 1009’6
Sell 55 Limit @ 1009’6
Sell 10 Limit @ 1009’6
Sell 65 Limit @ 1009’6
Sell 85 Limit @ 1009’6
Incoming Buy 30 Limit @ 1009’6
The CME maintains information pertaining to these algorithms in the CME Globex Product Reference guide. Market participants with a proper understanding of the matching algorithms, such as RCM-X and its suite of execution algorithms, give themselves a better chance at achieving passive fills, thus reducing their trading costs.
Call Mike Aufmann at 312-870-1537 to discuss your current execution practices and how RCM-X can help drive performance gains in that area.