ASX ITCH

From Spire Trading Inc.
Revision as of 19:00, 28 July 2020 by Kman (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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

Configuration

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 asxitch_partition[N] with 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: 233.0.0.0: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: 122.100.100.1:30000

# How long to wait for a snapshot before
# timing out.
glimpse_timeout: 5s

# The GLIMPSE username.
username: glimpse101

# The GLIMPSE password.
password: 1234
...

Operations

The AsxItchMarketDataFeedClient contains the standard suite of scripts used to manage each individual feed.

The 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.