Single-Price Auction
In an auction session, new orders may be entered and will be placed in the order book, but no matching will occur. This means that the order book may become 'crossed', meaning that the best buy order may have a higher price than the best sell order. The purpose of an auction is to conduct fair price discovery during a highly volatile phase of trading, such as pre-open or pre-close.
When an InstrumentMarket exits an auction session, the system calculates the matching price that will cause the greatest volume of trades (by lots traded) to be executed, based on the orders in the order book at that time. It then matches the orders in the OrderBook using a price-time priority algorithm to produce a sequenced series of trades.
While an InstrumentMarket is in an auction session, the system will calculate an indicative match price (IMP) at a preconfigured interval (usually every few seconds). The IMP is the price at which orders would be executed were the auction be closed at that time. The IMP is distributed with Level One data for the InstrumentMarket.
Market orders and pegged-price orders, as well as expiry types FOK (Fill or Kill) and FAK (Fill and Kill) are not accepted during an auction since they require matching to be done immediately.
Example
The following example auction order book shows that bids and asks accumulated to create a crossed book. The minimum of the Bid Sum and Ask Sum columns (cumulative) gives the volume that will trade at each price point (the Maximum Executable Volume or MEV). The maximum MEV is 290 at a price of $12,400.
| Bid Sum | Bid Vol | Price | Ask Vol | Ask Sum | MEV |
|---|---|---|---|---|---|
| 13100 | 35 | 520 | |||
| 45 | 45 | 13000 | 50 | 485 | 45 |
| 140 | 95 | 12900 | 10 | 435 | 140 |
| 165 | 25 | 12800 | 15 | 425 | 165 |
| 200 | 35 | 12700 | 10 | 410 | 200 |
| 225 | 25 | 12600 | 20 | 400 | 225 |
| 280 | 55 | 12500 | 90 | 380 | 280 |
| 480 | 200 | 12400 | 155 | 290 | 290 |
| 560 | 80 | 12300 | 125 | 135 | 135 |
| 620 | 60 | 12200 | 10 | 10 | 10 |
If the auction were to be closed at this point, the quantity of each order that is crossed will be executed, leaving only the unmatched residual balances in the book. The following table shows the resulting uncrossed book, with the auction closing price highlighted.
| Bid Sum | Bid Vol | Price | Ask Vol | Ask Sum |
|---|---|---|---|---|
| 13100 | 35 | 230 | ||
| 13000 | 50 | 195 | ||
| 12900 | 10 | 145 | ||
| 12800 | 15 | 135 | ||
| 12700 | 10 | 120 | ||
| 12600 | 20 | 110 | ||
| 12500 | 90 | 90 | ||
| 190 | 190 | 12400 | ||
| 270 | 80 | 12300 | ||
| 330 | 60 | 12200 |
Standard volume-maximising algorithm
The standard auction price determination algorithm seeks to have the maximum quantity of securities traded at the most competitive price at the end of the auction as shown in the examples above.
There are four stages, or sequential rules that are used to determine the price. Each rule is applied and if a single price can be determined, that becomes the auction price, otherwise, the next rule is applied, and so on, until a final single price can be determined. This is illustrated below.
graph TD
calc_mev[[Calculate Minimum Executable Volume]]-->spa1{Single Price Achievable?}
spa1--Yes-->done1([Done])
spa1--No-->calc_minsurplus[[Calculate Minimum Surplus]]
calc_minsurplus-->spa2{Single Price Achievable?}
spa2--Yes-->done2([Done])
spa2--No-->pressure[[Market Pressure]]
pressure-->spa3{Single Price Achievable?}
spa3--Yes-->done3([Done])
spa3--No-->ref_price[[Reference Price]]
ref_price([Done])
Worked example
Assume that we have the following set of Orders in the auction. Note that the order book is usually aggregated by price on each side, but here we are showing each individual order quantity.
The area of overlapping prices (from best bid down to best ask) indicates the price range in which the auction may execute.
| Bids | Bid Sum | Bid Vol | Price | Ask Vol | Ask Sum | Asks |
|---|---|---|---|---|---|---|
| 831 | 290 | 93360 | ||||
| 828 | 11420 | 93070 | ||||
| 826 | 21650 | 81650 | ||||
| 4500 | 4500 | 825 | 8500 | 60000 | ||
| 3200 25000 | 32700 | 28200 | 824 | 16900 | 51500 | |
| 32700 | 823 | 1900 | 34600 | |||
| 34600 | 1900 | 822 | 32700 | |||
| 34600 | 821 | 32700 | ||||
| 84300 | 49700 | 820 | 17500 | 32700 | ||
| 92300 | 8000 | 819 | 3600 | 15200 | ||
| 108700 | 16400 | 818 | 11600 | 11600 | 6600 5000 | |
| 108700 | 817 | |||||
| 108700 | 816 | |||||
| 114100 | 5400 | 815 | ||||
| 115000 | 900 | 814 | ||||
| 115000 | 813 | |||||
| 119575 | 4575 | 812 |
Step 1: Calculate Maximum Executable Volume (MEV)
This step calculates the Cumulative Buy and Sell Volumes at each price and the Maximum Executable Volume at each price.
The Cumulative Buy Volume at a given price is the buy quantity at that price plus the sum of the buy quantities at all higher prices.
The Cumulative Sell Volume at a given price is the sell quantity at that price plus sum of the sell quantities at all lower prices.
The Maximum Executable Volume at each price is the lesser of the Cumulative Buy Volume and the Cumulative Sell Volume at each price.
| Bids | Bid Sum | Bid Vol | Price | Ask Vol | Ask Sum | Asks | MEV |
|---|---|---|---|---|---|---|---|
| 831 | 290 | 93360 | |||||
| 828 | 11420 | 93070 | |||||
| 826 | 21650 | 81650 | |||||
| 4500 | 4500 | 825 | 8500 | 60000 | 4500 | ||
| 3200 25000 | 32700 | 28200 | 824 | 16900 | 51500 | 32700 | |
| 32700 | 823 | 1900 | 34600 | 32700 | |||
| 34600 | 1900 | 822 | 32700 | 32700 | |||
| 34600 | 821 | 32700 | 32700 | ||||
| 84300 | 49700 | 820 | 17500 | 32700 | 32700 | ||
| 92300 | 8000 | 819 | 3600 | 15200 | 15200 | ||
| 108700 | 16400 | 818 | 11600 | 11600 | 6600 5000 | 11600 | |
| 108700 | 817 | ||||||
| 108700 | 816 | ||||||
| 114100 | 5400 | 815 | |||||
| 115000 | 900 | 814 | |||||
| 115000 | 813 | ||||||
| 119575 | 4575 | 812 |
The Maximum Executable Volume for the auction is the highest of the Maximum Executable Volume values at each price, shown here in bold in the rightmost column.
If there is only one price at which the highest Maximum Executable Volume occurs then this will be the price for the auction. Otherwise, we proceed to the next step.
In the example above, there are five prices at which the highest Maximum Executable Volume occurs: 824, 823, 822, 821, and 820. Therefore, we proceed to the next step.
Step 2: Calculate Minimum Surplus
This step calculates the price level(s) at which the unmatched quantity is a minimum. At each price, this is equal to:
abs(Cumulative Buy Volume - Cumulative Sell Volume)
We only need to calculate this for those prices at which the highest Minimum Executable Volume occurs, which is 32,700.
| Bids | Bid Sum | Bid Vol | Price | Ask Vol | Ask Sum | Asks | MEV | Surplus |
|---|---|---|---|---|---|---|---|---|
| 831 | 290 | 93360 | ||||||
| 828 | 11420 | 93070 | ||||||
| 826 | 21650 | 81650 | ||||||
| 4500 | 4500 | 825 | 8500 | 60000 | 4500 | |||
| 3200 25000 | 32700 | 28200 | 824 | 16900 | 51500 | 32700 | 18800 | |
| 32700 | 823 | 1900 | 34600 | 32700 | 1900 | |||
| 34600 | 1900 | 822 | 32700 | 32700 | 1900 | |||
| 34600 | 821 | 32700 | 32700 | 1900 | ||||
| 84300 | 49700 | 820 | 17500 | 32700 | 32700 | 51600 | ||
| 92300 | 8000 | 819 | 3600 | 15200 | 15200 | |||
| 108700 | 16400 | 818 | 11600 | 11600 | 6600 5000 | 11600 | ||
| 108700 | 817 | |||||||
| 108700 | 816 | |||||||
| 114100 | 5400 | 815 | ||||||
| 115000 | 900 | 814 | ||||||
| 115000 | 813 | |||||||
| 119575 | 4575 | 812 |
We look for the price(s) at which the minimum surplus occurs. If the minimum surplus occurs at only one price, then this will be the price for the auction. Otherwise, we proceed to the next step.
In the example above, there are three prices (highlighted in bold) at which the minimum surplus occurs: 823, 822, and 821. Therefore we proceed to the next step.
Step 3: Market Pressure
This step determines where the Market Pressure of the auction prices exist, on the buy side or the sell side.
A positive Minimum Surplus leaves a surplus on the buy side, indicating buy-side pressure.
A negative Minimum Surplus leaves a surplus on the sell side, indicating sell-side pressure.
Using the Market Pressure:
If all Market Pressure is on the buy side (i.e., all Minimum Surplus values are positive), the auction price is the highest of the potential prices.
If all Market Pressure is on the sell side (i.e., all Minimum Surplus values are negative), the auction price is the lowest of the potential prices.
If both buy and sell Market Pressure exists or if the Minimum Surplus is zero for each potential auction price we proceed to the next step.
In general, residual buy-side pressure is likely to cause the price to rise after the auction, therefore, if at this stage the surpluses are all positive, the algorithm chooses the highest of the potential prices and this becomes the auction price. If at this stage the surpluses are all negative the algorithm will opt for the lowest of the potential prices as the auction price.
In the example above, there is buy-side pressure at prices 821 and 822 and there is sell-side pressure at price 823 therefore we proceed to the next step.
Step 4: Reference Price
This step looks at the potential auction prices and their proximity to the Reference Price for the security.
The Reference Price for a security is a market-specific value. Generally, it will correspond to the last-traded price for that security, either on the previous day or on the current day if there has been trading already on the current day. For some markets, the Reference Price is fixed after the close using a principle determined by the rules for that market.
This step proceeds in two phases.
Phase One
- If the result of Step Three is a combination of buy-side and sell-side Market Pressure, the algorithm marks the two prices where the sign changes.
If the Minimum Surplus for all possible auction prices is zero, the algorithm marks the highest and lowest prices within that range as the potential auction prices to be applied.
Thus, two potential auction prices are determined.
Phase Two
If the Reference Price is equal to or greater than the higher of the two possible prices established in Phase One, then the higher price becomes the auction price.
If the Reference Price is equal to or less than the lower of the two possible prices established in Phase Two, then the lower price becomes the auction price.
If the Reference Price lies between the two possible prices established in Phase One, then the Reference Price itself becomes the auction price.
If a Reference Price does not exist the auction price becomes the lower of the two potential auction prices established in Phase One.
In the example above, if the Reference Price was 822 or lower, then the auction price would be established at 822. If the Reference Price was 823 or higher, then the auction price would be 823.
Market Orders
By default, Market Orders are allowed in the standard auction (although this can be controlled by setting the order type for the Session so that Market Orders may not be entered).
For the purposes of the price calculation algorithm, the total quantity of all buy market orders (if any) is added to the Cumulative Buy Quantity at each price and similarly, the total quantity of the sell market orders (if any) is added to the Cumulative Sell Quantity at each price.
Matching Algorithm
Once an auction price has been established, matching proceeds in the following steps:
- Buy market orders are matched against sell market orders.
- in time priority: orders entered earlier are matched before orders entered later.
- Remaining buy market Orders are matched against sell limit Orders:
- in time priority for the buy market orders.
- in price-time priority for the sell limit orders.
- Remaining Sell Market Orders are matched against Buy Limit Orders.
- in time priority for the sell market orders.
- in price-time priority for the buy limit orders.
- Remaining Buy Limit Orders are matched against remaining Sell Limit Orders.
- in price-time priority for all orders.