This section describes the opening
procedure in ASX under the old system SEATS trading engine which was operating
until 2 October 2006.The SEATS
opening every morning involves orders carried over from the previous trading
day, and new orders entered from 7.30 am to 10.00.
Opening prices for the market are
established during the market opening phase at
Before the market is called, new orders can be entered, existing orders can be deleted, and the price and quantity associated with existing orders can be amended. Price and time precedence still applies to orders entered or amended during, although overlapping orders do not execute.
An opening algorithm is used to execute overlapping orders at a sequence of different prices. The algorithm involves the following steps:
· Step 1: When there are overlapping bids and offer, trade the priority bid against the priority offer at the weighted average price to the extent that the security is available.
· Step 2: Repeat Step 1 until there is no price overlap.
· Step 3: Open the security for normal trading.
The way SEATS establishes the opening price for the market during the opening phase that is calculated using the following formula:
(Bid
Quantity * the Bid Price) + (Offer Quantity * the Offer Price)
Bid
Quantity + Offer Quantity
This is best described using an example as follows.
Table 2 shows the orderbook
for HIJ security immediately prior to the opening phase.
Table 2: Bid/Offer Schedule in HIJ immediately prior to the opening phase
|
OFFER |
||||
Broker |
Quantity |
Price (c) |
Price (c) |
Quantity |
Broker |
111 |
400 |
423 |
420 |
6,000 |
777 |
222 |
2,000 |
422 |
421 |
800 |
888 |
333 |
10,000 |
422 |
422 |
8,000 |
900 |
444 |
5,000 |
422 |
423 |
1,000 |
950 |
555 |
5,000 |
420 |
424 |
600 |
999 |
Table 3 shows the sequence of trades in security HIJ that SEATS automatically performs during opening. The official opening price reported by SEATS is the first price generated by the opening algorithm. As can be seen from Table 3, the opening price in HIJ is 420.2.
Table 3: Sequence of opening prices for HIJ
Trade No |
Buyer |
Seller |
Quantity |
Average Price Calculation |
Trade Price (rounded) |
1 |
111 |
777 |
400 |
400*423 + 6000 * 420 = 420.19 6400 |
420.2 |
2 |
222 |
777 |
2,000 |
2000*422 + 5600*420 = 420.53 7600 |
420.5 |
3 |
333 |
777 |
3,600 |
10000*422 + 3600*420 = 421.47 13600 |
420.5 |
4 |
333 |
888 |
800 |
6400*422 + 800*421 = 421.89 7200 |
421.9 |
5 |
333 |
900 |
5,600 |
Limit Prices are Equal |
422.0 |
6 |
444 |
900 |
2,400 |
Limit Prices are Equal |
422.0 |
Table 4 shows the orderbook for HIJ immediately after the opening.
Table 4: Bid/Offer Schedule for HIJ following opening
|
OFFER |
||||
Broker |
Quantity |
Price (c) |
Price (c) |
Quantity |
Broker |
444 |
2,600 |
422 |
423 |
1,000 |
950 |
555 |
5,000 |
420 |
424 |
600 |
999 |
Important notes on opening algorithm:
1. The sequences of opening trade prices are rounded to one-tenth of a cent, which results in opening trades at prices in tenths of a cent. This is equal to the smallest minimum tick enforced on SEATS during normal trading.
2. The opening price is a function of the size of overlapping orders as well as their price. This opening price is not continuously calculated by SEATS during the Pre-opening phase, and hence there is an element of uncertainty associated with the opening price. Further the opening algorithm causes bids (asks) to be traded at a price less than (greater than) or equal to the price attached to these orders. This also generated uncertainty regarding the price at which a bid or ask will be executed.
Consider the following orders file:
Opening algorithm starts here
In this case, all orders are submitted during a preopening phase where no matching algorithm is exercised. The last line indicates the opening of the call market using the opening algorithm where all trades will be generated according to a call auction.
The corresponding
output for this example is the following:
And the corresponding orderbook is the following:
ORDERBOOK FOR SECURITY
Best bid=832.0, Best ask=835.0
Ask[5047], 835.0, vol:500.0,
[1127193705767590]
<--spread=3.0-->
Bid[5050], 832.0, vol:1300.0, [160695464670030]
Bid[5049], 831.0, vol:500.0,
[1265162355224700]
Bid[5051], 829.0, vol:2000.0, [1207277960876310]
Bid[5052], 828.0, vol:2000.0, [950274482642464]
Bid[5054], 827.0, vol:2000.0, [722686986640687]
Bid[5053], 827.0, vol:2000.0, [1174784694812760]
ORDERBOOK FOR SECURITY
Consider the following input.csv file:
(preOpening
phase)
(Opening phase)
(Continuous phase)
(preopening phase)
(Opening phase)
In this case, the first 6 orders are submitted during a PreOpening phase where no matching algorithm is exercised. Then the call market is exercised using the Opening phase algorithm where all possible trades are generated. Then the Normal phase is started where continuous market is started allowing the matching algorithm to be exercised whenever the spread becomes equal or less than zero. Three orders in this example are submitted during the Normal phase. Then, a PreOpening phase is started again where no matching algorithm is exercised. Two orders are submitted during this PreOpening phase. Finally, Then the call market is exercised using the Opening (which plays the role of a Closing phase) algorithm where all possible trades are generated.
The corresponding output for this example
is the following:
And the corresponding orderbook text file is the following:
ORDERBOOK FOR
SECURITY
Best bid=832.0,
Best ask=835.0
Ask[5076], 835.0,
vol:500.0, [1127193705767590]
<--spread=3.0-->
Bid[5082], 832.0,
vol:1500.0, [160695464670030]
Bid[5078], 831.0,
vol:300.0, [1265162355224700]
Bid[5084], 829.0,
vol:2000.0, [1207277960876310]
Bid[5085], 828.0,
vol:2000.0, [950274482642464]