Академический Документы
Профессиональный Документы
Культура Документы
Bulletin 17/12
ASX Trade Open Interface users are advised that ASX intends to upgrade ASX
Trade to provide functional enhancements to the system. These changes are
planned to be implemented into the production environment in November 2012.
The following enhancements will be introduced:
Reading List
Authorised by
John Williams
ASX contact
Market Access
MarketAccess@asx.com.au
1800 663 053
ASX Limited
ABN 98 008 624 691
Exchange Centre
20 Bridge Street
Sydney NSW 2000
PO Box H224
Australia Square NSW 1215
Telephone 61 3 9617 7834
Facsimile 61 3 9614 7124
Internet: http://www.asx.com.au
DX 10427 Stock Exchange Sydney
No responsibility is accepted for any
inaccuracies contained in the matter
published.
Page 1
Summary of Changes
Proposed Functional Enhancements
Implementation of the proposed functional enhancements will result in the introduction of a new Auction
Imbalance order type. Additionally the Market Maker Protection functionality introduces one new
transaction, one new query and two new broadcasts for Market Makers.
Test Environments
An upgraded Participant Test Environment will be available to users from the second half of September
2012.
Implementation
The current planned production implementation of these changes will occur in November 2012.
Where and when can I get more information?
Changes to Market Rules, Procedures and Guidance Notes will be released once regulatory
clearance has been obtained.
Release notes and updates to the ASX Trader Workstation Reference Manual will be available in
early Q4 2012.
The rule changes needed for implementation of the functional enhancements are subject to
regulatory clearance. ASX will advise users when regulatory clearance has been obtained.
If you have any queries regarding this Bulletin, please contact Market Access either via email on
MarketAccess@asx.com.au or phone 1800 663 053 (or on +612 9227 0372 from outside Australia).
Page 2
Order Type
Price
Only allowed with time validity Fill and Kill (time_validity_n = 0 and
block_n = 1)
Trading Times / Session Only allowed to be entered during non-matching session states that result
States
in auctions (e.g. PRE_OPEN, PRE_NR, PRE_CSPA)
Ranking / Matching
Order/Trade Indicators
User Access
Page 3
Page 4
Bid
10,000 @ 3240 cents
7,800 @ 3240 cents
5,000 @ 3239 cents
19,700 @ 3239 cents
300 @ 3239 cents
1,000 @ 3238 cents
400 @ 3237 cents
Ask
1,000 @ 3238 cents
15,000 @ 3239 cents
4,000 @ 3239 cents
1,000 @ 3240 cents
1,000 @ 3241 cents
20,000 @ 3243 cents
A1
A2
A3
A4
A5
A6
ASX Trade disseminates the calculated Auction Price (Equilibrium Price, EP) as 3239 cents and the
Surplus Volume as 22,800 on the Bid side.
The following Auction Imbalance Orders have been entered for ZZA in the given sequence (i.e. the
given sequence reflects the time priority ranking for the sell orders):
1. Participant 1: Sell 10,000 @ Imbalance
2. Participant 2: Sell 15,000 @ Imbalance
3. Participant 3: Sell 3,000 @ Imbalance
4. Participant 4: Buy 5,000 @ Imbalance
When the market moves from PRE_OPEN to OPEN, the following trades are executed in the auction for
ZZA:
Trade 1
Trade 2
Trade 3
Trade 4
Trade 5
At this point, the auction has left a Surplus Volume of 22,800 on the Bid side. The Sell Auction
Imbalance Orders will now be executed against this Surplus Volume as follows:
Trade 6
Trade 7
Trade 8
Trade 9
Page 5
2.
3.
4.
5.
The ASX MM Protection parameters can be changed intraday and changes will take effect
immediately. When one or several parameters are changed, the calculated quantity and delta
protection values for the affected underlying are re-set to zero and the rolling calculation starts
afresh. This is indicated to the Market Maker with a BO38 broadcast.
When the ASX MM Protection parameters are changed, the new values are disseminated in the
BU87 broadcast. Parameter settings can also be queried, using the new DQ87 query.
Trades from matched orders entered by the Market Maker. Orders are defined as being entered
by the following API transactions: MO1 and MO31.
Trades entered by the Market Maker using other transactions, such as trade reports (MO75
and MO76).
Trades from matched orders and quotes entered by the Market Maker in Combinations, such
as TMCs.
Quotes trading with own Market Makers quotes are not included in the calculation.
Trades from matched quotes in auctions are not included in the calculation.
The calculated quantity and delta values for each underlying are disseminated to the Market Maker in
the new BO38 broadcast every time they change.
Page 8
Market Maker A has the following quotes in the market for BHP ETOs:
June 2013 Call at strike $41.00
Bid
20 @ 30 cents
Ask
20 @ 32 cents
Ask
30 @ 165 cents
Ask
30 @ 42 cents
Ask
50 @ 310 cents
Within the last 8 seconds, a total quantity of 460 in Market Maker As quotes across BHP ETO series
has traded.
In the 9th second a Buy order comes in for the BHP June 2013 Put at strike $30.50 for 75 @ 310 cents.
This Buy order trades out Market Maker As Ask quote in that series completely.
The total quantity of Market Maker As quotes across BHP ETO series that has traded within the last 9
seconds is now 510, which exceeds the set Quantity Protection threshold of 500 in the given Exposure
Time Interval of 10 seconds.
All of Market Maker As remaining quotes in BHP ETO series are automatically deleted.
The Quotation Frozen Period starts and lasts 5 seconds. During that time, all new quotes entered by
Market Maker A for BHP ETO series will be rejected.
After 5 seconds, Market Maker A can continue to quote in BHP and the quantity protection threshold
calculation starts afresh.
Page 9
Page 10
Description
change_reason_c
uint8_t
Indicates the reason for the change. Possible values:
1=Order deleted
3=Deal
4=Order inactivated
5=Order altered
6=Order added
8=Order price changed
9=Order deleted by central system
10=Order deleted by proxy
13=Hidden volume order recalculated
15=Order deleted due to changed price limits
19=Central system deleted order
21=Inactivated by system due to Instrument Session change
23=Inactivated due to Purge
24=Inactivate day orders
25=Inactivated due to de-list
26=Inactivated due to Expiry
27=Inactivated due to Price away from the market
28=Order transferred from one user to another
29=Entered central inactive order
30=Order reload at normal system start
31=Order reload at intraday Market Place restart
34=Cancelled After Auction
39=Convert undisclosed order to normal order - for active orders falling
below min order value due to trading
40=A passive order partially traded and the value of the remaining order
falls below the minimum trade value and the order is centrally
inactivated
41=Quote deleted because Market Maker Quantity Protection limit
has been reached
42= Quote deleted because Market Maker Delta Protection limit
has been reached
47=Remaining quantity of partially traded Sweep Limit order has been
placed in the CLOB as a Limit order.
48=Remaining quantity of partially traded Sweep Market to Limit Order
has been placed in the CLOB as a Limit order.
49=Centre Point Block order with Minimum Acceptable Quantity
(MAQ) has traded below the MAQ, therefore the MAQ has been
changed to zero by the system.
Page 11
Variable
order_type_c
Description
uint8_t
Order Type a combination of this field and the premium_i field
signify different types of orders. Possible values:
1 = Limit price order (premium_i = an integer).
2 = Market order (premium_i = 0).
3 = Market-to-Limit order (premium_i = 0).
17 = Best-Limit order (premium_i = 0, time_validity_n != 0).
66 = Auction Imbalance order (premium_i = 0, time_validity_n = 0,
block_n = 1)
Used in conjunction with values in the field exch_order_type_n to
determine Undisclosed and Centre Point orders.
omniapi_tx_ex
EP0
query_mm_protection_t
true
false
DA87
DA87
answer_mm_protection_t
true
query_mm_protection_t
Variable
Description
transaction_type
transaction_type_t
Set the structure to the following: {D, Q, 87}
series
series_t
Not used for this query. Always 0.
segment_number_n
uint16_t
Indicates which segment the user wishes to receive, typically starting
at 1. The reply structure has a segment number field too, which
indicates which segment is returned.
filler_2_s
char[2]
Ignore. Used for byte alignment.
Page 12
answer_mm_protection_t
Variable
Description
transaction_type
transaction_type_t
Contains the following: {D, A, 87}
segment_number_n
uint16_t
Indicates the segment for this particular reply. A value of 0 means
that there are no more segments.
items_n
uint16_t
The number of items held in the array.
item
answer_mm_protection_item_t[500]
See answer_mm_protection_item_t sub structure below.
2.3.1.4.2
answer_mm_protection_item_t
Variable
Description
quantity_protection_q
int64_t
Specifies the limit of the total traded contracts per underlying within
the exposure time interval when Market Maker Protection is
triggered.
When this value is reached or exceeded the system automatically
removes all quotes for the instruments connected to the underlying.
A value of 0 means that no Quantity Protection exists.
delta_protection_q
int64_t
Specifies the limit of the delta value per underlying within the
exposure time interval when Market Maker Protection is triggered.
When this value is reached or exceeded the system automatically
removes all quotes for the instruments connected to the underlying.
A value of 0 means that no Delta Protection exists.
exposure_time_interval_i int32_t
Specifies the rolling time interval in milliseconds used in
Quantity/Delta Protection calculations.
The provided value when used by the system will be rounded up to
the nearest multiple of 1,000, therefore the practical minimum value
is 1,000ms.
A value of 0 means that Market Maker Protection functionality is
turned off for the applicable underlying.
frozen_time_i
int32_t
Specifies the time interval in milliseconds when quotes are rejected
after Market Maker Protection has been triggered.
A value of 0 means that quotes are considered as frozen for the rest
of the day.
Page 13
Variable
commodity_n
Description
uint16_t
The code for the underlying that the Market Maker Protection
parameters returned in this item apply to.
country_id_s
char[2]
For ASX Trade this field is always set to "AU", indicating the
Australian exchange.
ex_customer_s
char[5]
This is the unique identifier assigned to a customer of the exchange.
For ASX trading participants this is typically a 3-digit number
whereas information vendors have an alphanumeric identifier. The
combination of the country_id_s field and this field uniquely define a
trading participants firm.
include_futures_c
uint8_t
Specifies if Futures and Forwards are to be included in the Delta
Protection calculation.
The group_type_c of the instrument group definition determines
whether an instrument is a Future or Forward (i.e. group_type_c
equals 2 or 3).
Possible values:
1 = Yes, include Futures and Forwards in the Delta Protection
calculation
2 = No, do not include Futures and Forwards in the Delta Protection
calculation
filler_2_s
char[2]
Ignore. Used for byte alignment.
omniapi_read_event_ext_ex
market_maker_protection_info_t
Dedicated
Page 14
market_maker_protection_info_t
Variable
Description
broadcast_type
broadcast_type_t
Contains the following: {B, O, 38}
trading_code
trading_code_t
Indicates the Market Makers participant identifier.
See trading_code_t sub structure
series
series_t
The series to which this information relates.
calc_quantity_protection_q int64_t
Calculated quantity value for Market Maker Protection.
Set to 0 when the Market Maker Protection has been triggered or
the Market Maker Protection parameters have been changed.
calc_delta_protection_q
2.4.1.2.2
int64_t
Calculated delta value for Market Maker Protection.
Set to 0 when the Market Maker Protection has been triggered or
the Market Maker Protection parameters have been changed.
trading_code_t
Variable
Description
country_id_s
char[2]
For ASX Trade this is always set to AU, indicating the Australian
exchange.
ex_customer_s
char[5]
This is the unique identifier assigned to a customer of the exchange.
For ASX trading participants this is typically a 3-digit number whereas
information vendors have an alphanumeric identifier. The combination
of the country_id_s field and this field uniquely define a trading
participants firm.
user_id_s
char[5]
The unique identifier of an ASX Trade user.
Not used in this broadcast.
Page 15
omniapi_read_event_ext_ex
mm_protection_update_t
Dedicated
mm_protection_update_t
Variable
Description
broadcast_type
broadcast_type_t
Contains the following: {B, U, 87}
chg_type_n
uint16_t
The type of change indicated in this broadcast. Possible values:
1 = Add
2 = Delete
3 = Alter
filler_2_s
char[2]
Ignore. Used for byte alignment.
da87
da87_t
See da87_t sub structure below.
2.4.2.2.2
da87_t
Variable
Description
quantity_protection_q
int64_t
Specifies the limit of the total traded contracts per underlying within
the exposure time interval when Market Maker Protection is
triggered.
When this value is reached or exceeded the system automatically
removes all quotes for the instruments connected to the underlying.
A value of 0 means that no Quantity Protection exists.
delta_protection_q
int64_t
Specifies the limit of the delta value per underlying within the
exposure time interval when Market Maker Protection is triggered.
When this value is reached or exceeded the system automatically
removes all quotes for the instruments connected to the underlying.
A value of 0 means that no Delta Protection exists.
Page 16
Variable
Description
exposure_time_interval_i int32_t
Specifies the rolling time interval in milliseconds used in
Quantity/Delta Protection calculations.
The provided value when used by the system will be rounded up to
the nearest multiple of 1,000, therefore the practical minimum value
is 1,000ms.
A value of 0 means that Market Maker Protection functionality is
turned off for the applicable underlying.
frozen_time_i
int32_t
Specifies the time interval in milliseconds when quotes are rejected
after Market Maker Protection has been triggered.
A value of 0 means that quotes are considered as frozen for the rest
of the day.
commodity_n
uint16_t
The code for the underlying that the Market Maker Protection
parameters returned in this item apply to.
country_id_s
char[2]
For ASX Trade this field is always set to "AU", indicating the
Australian exchange.
ex_customer_s
char[5]
This is the unique identifier assigned to a customer of the exchange.
For ASX trading participants this is typically a 3-digit number
whereas information vendors have an alphanumeric identifier. The
combination of the country_id_s field and this field uniquely define a
trading participants firm.
include_futures_c
uint8_t
Specifies if Futures and Forwards are to be included in the Delta
Protection calculation.
The group_type_c of the instrument group definition determines
whether the instrument is a Future or Forward (i.e. group_type_c
equals 2 or 3).
Possible values:
1 = Yes, include Futures and Forwards in the Delta Protection
calculation
2 = No, do not include Futures and Forwards in the Delta Protection
calculation
filler_2_s
char[2]
Ignore. Used for byte alignment.
omniapi_tx_ex
EP0
set_mm_protection_t
false
set_mm_protection_t
Variable
transaction_type
Description
transaction_type_t
Set the structure to the following: {D, C, 87}
series
series_t
Not used for this transaction. Always 0.
da87
da87_t
See da87_t sub structure below.
2.5.1.2.2
da87_t
Variable
quantity_protection_q
Description
int64_t
Specifies the limit of the total traded contracts per underlying within
the exposure time interval when Market Maker Protection is
triggered.
When this value is reached or exceeded the system automatically
removes all quotes for the instruments connected to the underlying.
A value of 0 means that no quantity protection exists.
delta_protection_q
int64_t
Specifies the limit of the delta value per underlying within the
exposure time interval when Market Maker Protection is triggered.
When this value is exceeded the system automatically removes all
quotes for the instruments connected to the underlying.
A value of 0 means that no Delta Protection exists.
exposure_time_interval_i int32_t
Specifies the rolling time interval in milliseconds used in
Quantity/Delta Protection calculations.
The provided value when used by the system will be rounded up to
the nearest multiple of 1,000, therefore the practical minimum value
is 1,000ms.
A value of 0 means that Market Maker Protection functionality is
turned off for the applicable underlying.
frozen_time_i
int32_t
Specifies the time interval in milliseconds when quotes are rejected
after Market Maker Protection has been triggered.
A value of 0 means that quotes are considered as frozen for the rest
of the day.
Page 18
Variable
commodity_n
Description
uint16_t
The code for the underlying that the Market Maker Protection
parameters in this item apply to.
country_id_s
char[2]
For ASX Trade this field is always set to "AU", indicating the
Australian exchange.
ex_customer_s
char[5]
This is the unique identifier assigned to a customer of the exchange.
For ASX trading participants this is typically a 3-digit number
whereas information vendors have an alphanumeric identifier. The
combination of the country_id_s field and this field uniquely define a
trading participants firm.
include_futures_c
uint8_t
Specifies if Futures and Forwards are to be included in the Delta
Protection calculation.
The group_type_c of the instrument group definition determines
whether the instrument is a Future or Forward (i.e. group_type_c
equals 2 or 3).
Possible values:
1 = Yes, include Futures and Forwards in the Delta Protection
calculation
2 = No, do not include Futures and Forwards in the Delta Protection
calculation
filler_2_s
char[2]
Ignore. Used for byte alignment.
Page 19