Вы находитесь на странице: 1из 19

ASX TRADE Technical

Bulletin 17/12

ASX TRADE TECHNICAL BULLETIN 17/12


ASX TRADE RELEASE Q4 2012
FUNCTIONAL ENHANCEMENTS

Date: 23 August 2012


Key topics:
1. ASX Trade Release Q4 2012
2. Functional Enhancements

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

Developers of ASX Trade


Open Interface Applications
Users of ASX Trade Open
Interface Applications

New Auction Imbalance Order Type.


Auction Imbalance Orders are entered during non-matching session
states that result in auctions and execute against any Surplus
Volume from the auction.

Support of time validity Fill and Kill in non-matching session states.


Orders can be entered with time validity Fill and Kill in non-matching
session states that result in auctions. Any balance not filled in the
auction is then cancelled automatically.

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.

Enhanced functionality for Market Makers with the introduction of


ASX MM Protection.
ASX MM Protection aims to prevent too many simultaneous trade
executions on quotes provided by Market Makers, offering
additional control of market risk.
All new functionality will remain subject to formal regulatory clearance from
ASIC. As a result of that process, or other factors, further changes may
eventuate prior to launch. For the avoidance of doubt this means that while
development work needs to commence now and be completed for the current
planned go live date in November 2012, the intended trading functionality
changes will not go-live from a users perspective until ASX is notified that
regulatory clearance has been given.
The changes detailed in the attached appendices will require changes to the
ASX Trade Open Interface for the Market Maker Protection functionality. Users
of ASX Trade that will not use this functionality will not be required to recompile
the latest version of the ASX Trade API.
Details of the changes to the ASX Trade Open Interface to cater for the
enhancements are included in Appendix 1 and 2. These changes can be
categorised into the following:

Page 1

Key Characteristics of Functional Enhancements (Appendix 1)

Draft API changes (Appendix 2)

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

1 APPENDIX 1 Enhancement Details


1.1 Auction Imbalance Order Type
1.1.1 Key Characteristics of Auction Imbalance Orders
Key Trading Parameters Auction Imbalance Order Type
/ Features
Applicable Instruments

Equities traded in ASX TradeMatch Equity Markets Group 1-5


Interest Rate Market (with the exception of the Wholesale and
Government Loan instruments)
Cash-like instruments located in the ASX TradeMatch Listed Funds
Warrants & St Prods market
Cash-like instruments in the Practice Market

Order Type

Order Type Auction Imbalance Order (order_type_c = 66)


Can be entered with the order condition short sell if required
(exch_order_type_n = 2)

Price

Entered without a price (premium_i = 0)

Order Time Validity

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

Ranked in time priority


If the quantity of an entered Auction Imbalance Order is amended up,
the order loses time priority
Auction Imbalance Orders will execute against any Surplus Volume
from the auction, at the auction price. Any unfilled balance not traded
is then cancelled automatically

Pre & Post Trade


Disclosure/ Anonymity
Rules

Auction Imbalance Orders are pre-trade anonymous, i.e. not publicly


disseminated in the BO2 Order Book Broadcast and associated queries.
Participant users may only view their own participant Auction Imbalance
Orders.
Trades from Auction Imbalance Orders are disseminated to all users as per
existing Participant ID (broker number) anonymity rules.

Order/Trade Indicators

Orders - New order type 66 available in the order_type_c field.


NB: May also be combined with existing condition SHL.
Trades from Auction Imbalance Orders will not be flagged with a special
condition code. The deal source in the trade broadcast will indicate that
the trade was part of the auction (deal_source_c = 20).
NB: Existing indicators, such as XT also apply to trades from Auction
Imbalance Orders.

User Access

All existing Cash/Equity users

Page 3

1.1.2 Auction Imbalance Order Entry


Auction Imbalance Orders are entered without a price and are only accepted with time validity Fill and
Kill.
They can only be entered in non-matching session states that result in auctions, such as PRE_OPEN,
PRE_NR and PRE_CSPA.
Auction Imbalance Orders will only execute against any Surplus Volume from the auction and are only
filled once all other orders have been filled at the auction price. Any unfilled balance not traded is then
cancelled automatically.
Auction Imbalance Orders are not carried over to the next business day, any orders left in the Order
Book at the end of the day are deleted overnight.

1.1.3 Order Priority


Auction Imbalance Orders are entered in Time Priority only.

1.1.4 Equilibrium Price (EP) Calculations


Auction Imbalance Orders are not taken into account in the EP and Surplus Volume calculation.

1.1.5 Central Inactive Order


It is not possible to enter Auction Imbalance Orders as Central Inactive.

1.1.6 Public Information Dissemination


The public order book broadcasts (BO1 and BO2) are not disseminated for Auction Imbalance Orders.
Likewise, the public order book query (MQ7) does not include Auction Imbalance Orders in the
answer, neither from the own participant nor from others.

1.1.7 Amending Orders


Increasing the quantity of an Auction Imbalance Order will result in a loss of priority.

1.1.8 Trade Broadcasts


Trades from Auction Imbalance Orders will not be flagged with a special condition code.
The deal source in the trade broadcast will indicate that the trade happened as part of the auction.

1.1.9 Trade Statistics


All Trade Statistics are updated from Auction Imbalance trades.

Page 4

1.1.10 Auction Imbalance Order Example


Order Book for ZZA in PRE_OPEN:
B1
B2
B3
B4
B5
B6
B7

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

1,000 @ 3239 cents (Order B1 trades with Order A1)


9,000 @ 3239 cents (Order B1 trades with Order A2)
6,000 @ 3239 cents (Order B2 trades with Order A2)
1,800 @ 3239 cents (Order B2 trades with Order A3)
2,200 @ 3239 cents (Order B3 trades with Order A3)

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

2,800 @ 3239 cents (Order B3 trades with Imbalance Order 1)


7,200 @ 3239 cents (Order B4 trades with Imbalance Order 1)
12,500 @ 3239 cents (Order B4 trades with Imbalance Order 2)
300 @ 3239 cents (Order B5 trades with Imbalance Order 2)

The remaining Auction Imbalance Orders are handled as follows:


Imbalance Order 2 remains with a balance of 2,200. This balance is cancelled automatically.
Imbalance Order 3 has not traded, as there was not enough Surplus Volume on the Bid side. It
is cancelled automatically.
Imbalance Order 4 has not traded, as the Auction Surplus Volume was on the Bid side, not the
Ask side. The order is cancelled automatically.

Page 5

1.2 Fill and Kill Orders in Non-matching Session States


With the introduction of Auction Imbalance Orders, the order time validity Fill and Kill will be generally
allowed in non-matching session states that result in auctions.
For example a normal Limit order will be able to be entered with time validity Fill and Kill in PRE_OPEN.
When a Fill and Kill order is partially executed in the auction, the unfilled balance is then cancelled
automatically.
When a Fill and Kill order is not executed in the auction, the whole order is then cancelled
automatically.
Fill and Kill will be allowed in the following non-matching sessions states:
PRE_OPEN
PRE_NR
PRE_CSPA
TRADING_HALT
REG_HALT
INTERNATIONAL_HALT
PRE_NIGHT-TRADING
Fill and Kill orders entered in those session states are included in the EP (Equilibrium Price) and Surplus
Volume calculation as normal (with the exception of Auction Imbalance Orders, which are not included
in the calculation).

1.3 ASX MM Protection


1.3.1 Overview
ASX MM Protection is aimed at preventing too many simultaneous trade executions on quotes
provided by Market Makers, offering additional control of market risk.
The basic principle can be envisioned as a rolling counter, counting the number of traded contracts per
underlying on the Market Makers quotes within a given time frame that the Market Maker can define.
If the counter reaches or exceeds a threshold level defined by the Market Maker, all remaining quotes
in the underlying are automatically pulled from the market. Market Makers can define two threshold
values in the counter:
Quantity: total number of contracts traded
Delta: absolute number of [(bought future contracts + bought call option contracts + sold put
option contracts) (sold future contracts + sold call option contracts + bought put option
contracts)]. It is configurable whether Futures are included in the delta calculation or not.

1.3.2 ASX MM Protection Parameters


Market Makers will be able to set the following parameters per underlying, using the new API
transaction DC87:
1. Exposure Time Interval
This parameter is set in milliseconds and defines the rolling time interval for determining if a
threshold value has been reached or exceeded. Please note that the provided value when used
by the system will be rounded up to the nearest multiple of 1,000, therefore the practical
Page 6

2.

3.

4.

5.

minimum value is 1,000ms.


In practice, the length of the time interval used to determine if a threshold has been reached or
breached will never smaller than this parameter and never more than 10% higher than this
parameter.
A value of zero means that Market Maker Protection is not turned on for this underlying.
Quotation Frozen Time
This parameter is set in milliseconds and defines the time period that the Market Maker cannot
enter quotes for an underlying after Market Maker Protection has been triggered.
A value of zero means that quotes are considered as frozen for the rest of the day.
Quantity Protection
This parameter defines the quantity threshold, i.e. the maximum number of traded quotes for
an underlying that the Market Maker is willing to accept within the Exposure Time Interval. If
the quantity threshold is reached or breached in the given Exposure Time Interval, Market
Maker Protection triggers and all the Market Makers remaining quotes in the underlying are
automatically pulled from the market.
A value of zero means that there is no Quantity Protection set for this underlying.
Delta Protection
This parameter defines the delta threshold, i.e. the maximum number of traded quotes
expressed as delta for an underlying that the Market Maker is willing to accept within the
Exposure Time Interval. If the delta threshold is reached or breached in the given Exposure
Time Interval, Market Maker Protection triggers and all the Market Makers remaining quotes
in the underlying are automatically pulled from the market.
A value of zero means that there is no Delta Protection set for this underlying.
Delta is calculated as follows:
Absolute number of [(bought future contracts + bought call option contracts + sold put option
contracts) (sold future contracts + sold call option contracts + bought put option contracts)].
It is configurable whether Futures are included in the delta calculation or not with the fifth
configuration parameter.
Include Futures
This parameter determines whether bought and sold Futures contracts are included in the delta
protection calculation or not. It can be set to yes or no.

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.

1.3.3 Trades Included in the Protection Calculation


The following trades are included into the Quantity and Delta Protection calculation:
Trades from matched quotes provided by the Market Maker in Derivatives instrument series.
Quotes are defined as being entered by the following API transactions: MO36 and MO37.
Trades from matched quotes with own Market Makers orders are included in the calculation.
The following trades are not included into the Quantity and Delta Protection calculation:
Page 7

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.

1.3.4 Market Maker Protection Trigger


When Market Maker Protection is triggered by reaching or breaching the Quantity or Delta Protection
threshold within the given Time Exposure Interval, all the Market Makers quotes in the instrument
series belonging to the affected underlying are automatically deleted by the system. Quotes are
defined as being entered by the following API transactions: MO36 and MO37.
Orders placed by the Market Maker in instrument series and orders and quotes in Combinations will
not be automatically deleted.
The Market Maker will receive one BO5 Firm Order Book broadcast per deleted quote. The BO5 will
include a change reason showing why the quote was deleted (i.e. either due to quantity protection or
due to delta protection).
As soon as Market Maker Protection has triggered, the configured Quotation Frozen Time starts.
During this time period, any new quotes entered by the Market Maker for instrument series belonging
to the affected underlying will be rejected. The Market Maker can continue to enter orders in
instrument series and orders and quotes in Combinations during this period.
When Market Maker Protection has triggered and quotes have been automatically deleted, 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.

1.3.5 Market Maker Protection Trigger through Block Quotes


If a Block Quote (MO36) is sent by a Market Maker which immediately results in trades, the Block
Quote will be processed as multiple single transactions instead of one transaction. This implies that if
the Market Maker Protection threshold of the Market Maker is breached for example by the first Block
Quote item, the Market Maker Protection is triggered after the first item has been entered, and the
remaining items in the Block Quote belonging to the affected underlying will be rejected with a reason
code of Market Maker Protection. Rejected Block Quote items are reported through the existing
BO99 broadcast.
If a Block Quote is sent by Market Maker A which results in hitting several quotes provided by Market
Maker B, the Block Quote will be processed as multiple single transactions instead of one transaction.
This implies that if the Market Maker Protection of MM_B is breached after processing for example
the first item in MM_As Block Quote, MM_ Bs Market Maker Protection is triggered, and the
remaining items in MM_ As Block Quote will be processed after MM_Bs quotes for the affected
underlying have been deleted.

Page 8

1.3.6 ASX MM Protection Example


Market Maker A has the following ASX MM Protection configuration for BHP:
Exposure Time Interval
Quotation Frozen Period
Quantity Protection
Delta Protection
Include Futures

10,000 milliseconds (10 seconds)


5,000 milliseconds (5 seconds)
500
0 (no delta protection)
No

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

June 2013 Call at strike $35.00


Bid
30 @ 160 cents

Ask
30 @ 165 cents

March 2013 Put at strike $21.00


Bid
30 @ 40 cents

Ask
30 @ 42 cents

June 2013 Put at strike $30.50


Bid
50 @ 300 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

2 APPENDIX 2 Draft API Changes


2.1 Summary
The following API changes are being introduced for the new functionality described in this Open
Interface Bulletin.

2.1.1 Auction Imbalance Order


A new value 66 is introduced for the existing variable order_type_c to specify an order as
Auction Imbalance.
Auction Imbalance Orders are entered with a price of zero (premium_i = 0) and time validity Fill
and Kill (time_validity_n = 0 and block_n = 1).

2.1.2 ASX MM Protection


One new transaction, one new query and two new broadcasts are introduced for ASX MM
Protection functionality:
Transaction DC87 to set ASX MM Protection parameters for an underlying
Query DQ87 to query the current ASX MM Protection parameters
Broadcast BU87 which disseminates changes to the ASX MM Protection parameters for
an underlying
Broadcast BO38 which disseminates the calculated quantity and delta protection values
for a particular underlying, whenever those values change. When the Market Maker
Protection is triggered or the Market Maker changes the Protection parameters, the
calculated values are disseminated (or re-set) as zero.
Additionally, two new values 41 and 42 are introduced for the existing variable
change_reason_c to indicate when quotes are deleted due to Market Maker Protection having
triggered for a particular underlying.
When quotes are deleted due to Market Maker Protection, a BO5 is disseminated for each
deleted quote, with the variable change_reason_c indicating why the quote was deleted:
change_reason_c = 41
Quantity protection has been reached or exceeded
change_reason_c = 42
Delta protection has been reached or exceeded

Page 10

2.2 Changes to existing API variables


New values for the existing variables change_reason_c and order_type_c are introduced, as
highlighted in bold.
Variable

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.

2.3 New Query


2.3.1 DQ87 Market Maker Protection Query
This query is used to retrieve information about the Market Maker Protection parameters defined
by the Market Maker for each applicable underlying.
2.3.1.1 Query Properties
Function call
Facility
Struct Name
Segmented
Partitioned
Answers

omniapi_tx_ex
EP0
query_mm_protection_t
true
false
DA87

2.3.1.2 Answer properties


Transaction Type
Struct Name
Segmented

DA87
answer_mm_protection_t
true

2.3.1.3 Message Structure


2.3.1.3.1

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

2.3.1.4 Answer Structure


The answer received contains details about the Market Maker Protection parameters defined by
the Market Maker for each applicable underlying.
2.3.1.4.1

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.

2.4 New Broadcasts


2.4.1 BO38 Market Maker Protection Information Broadcast
This broadcast disseminates the calculated Quantity and Delta Protection values for a particular
underlying, whenever those values change. When the Market Maker Protection is triggered or
the calculated values are re-set to zero because a Market Maker has changed the Protection
parameters via DC87, the calculated values are disseminated as zero.
2.4.1.1 Broadcast Properties
Function call
Struct Name
Information type

omniapi_read_event_ext_ex
market_maker_protection_info_t
Dedicated

Page 14

2.4.1.2 Message Structure


2.4.1.2.1

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

2.4.2 BU87 Market Maker Protection Update Broadcast


This broadcast is sent when the Market Maker Protection parameters have been updated for a
particular underlying.
2.4.2.1 Broadcast Properties
Function call
Struct Name
Information type

omniapi_read_event_ext_ex
mm_protection_update_t
Dedicated

2.4.2.2 Message Structure


2.4.2.2.1

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.

2.5 New Transaction


2.5.1 DC87 Set Market Maker Protection Transaction
This transaction is used by Market Makers to set and change Market Maker Protection
parameters for an underlying.
Page 17

2.5.1.1 Transaction Properties


Function call
Facility
Struct Name
Partitioned

omniapi_tx_ex
EP0
set_mm_protection_t
false

2.5.1.2 Message Structure


2.5.1.2.1

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

Вам также может понравиться