Support for ASX Trade ITCH market data is provided by the AsxItchMarketDataFeedClient. This market data feed can be used by Spire to populate the security database for ASX listed securities, BBO quotes, time and sales, book quotes and order imbalances. In addition to real time market data, ASX Trade ITCH also provides a market data snapshot used for data recovery along with retransmission of dropped packets, both of which are fully supported.
For more information about the ASX ITCH protocol and connectivity, refer to https://www.asxonline.com/public/documents/asx-trade-open-interface-manuals.html
By default ASX ITCH is split into multiple feeds each handling a range of securities. Each feed is placed in its own directory and named
N = 1 representing the first feed. Each feed also has its own configuration file structured as follows:
--- service_locator: # The Service Locator to authenticate with. address: 127.0.0.1:20000 # The market data feed's username. username: market_data_feed # The market data feed's password. password: 1234 # Whether to log all packets. enable_logging: false # The market code (MIC) to publish. market: ASX # Whether to synthetically publish time and sales # based on matched orders. is_time_and_sale: true # Specifies how frequently to publish updates to # the market data server. sampling: 100ms # The multicast group to join. host: 220.127.116.11:12345 # The network interface to use to join # the multicast group. interface: 192.168.0.1:30000 # The GLIMPSE host to connect to for # snapshot retrieval. glimpse_host: 18.104.22.168:30000 # How long to wait for a snapshot before # timing out. glimpse_timeout: 5s # The GLIMPSE username. username: glimpse101 # The GLIMPSE password. password: 1234 ...
The AsxItchMarketDataFeedClient contains the standard suite of scripts used to manage each individual feed.
start.sh script is used to start either a single feed by specifying the feed's unique identifier
partition[N] as a command line argument or used to start all feeds by passing
all as a command line argument. Similarly the
stop.sh script is used to stop a currently running feed. The
list_feeds.sh will output all currently running feeds and the
create_softlinks.sh script is used when first setting up the feeds, or when a new feed is added.
On startup a log file is created with the name
srv_[YYYY][MM][DD]_[HH]_[MM]_[SS].log and is used to record dropped packets, any error messages or warnings, and if logging is enabled in the configuration file, a dump of every received message.