AsxItchMarketDataFeedClient
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 the ASX Trade Open Interface manuals.
Feed Partitioning
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.
Configuration
Each feed is configured via a YAML file (config.yml) with the following structure:
service_locator: # The address of the Service Locator (host:port). address: "10.0.0.5:20000" # The account username used to authenticate with the Service Locator. username: market_data_feed # The password for the Service Locator account. password: [REQUIRED] # Rate at which market data snapshots are sampled and forwarded to the # Market Data Server. A higher rate reduces load at the cost of latency. sampling: 100ms # Multicast group address and port for the ITCH feed. host: "239.0.0.1:21801" # Network interface to join the multicast group on. interface: "0.0.0.0:0" # UDP socket receive buffer size in bytes (default: 128 MB). receive_buffer: 134217728 # Maximum datagram size (MTU) in bytes (optional; defaults to system MTU). mtu: 1500 # Enable logging of every received message (off by default; verbose when enabled). enable_logging: false # Whether this partition carries time and sales data. is_time_and_sale: false # Venue display name (e.g., "XASX") this feed services. venue: "XASX" # Default MPID assigned to messages that do not carry their own MPID. mpid: "" # Whether to consolidate multiple MPIDs into the default MPID. consolidate_mpids: false # GLIMPSE snapshot server address (SoupBinTCP). glimpse_host: "203.0.113.10:21803" # Timeout for the GLIMPSE login handshake. glimpse_timeout: "00:00:10" # GLIMPSE login credentials. username: glimpse_user password: [REQUIRED]
The sampling, host, interface, glimpse_host, username, and password fields are required. All other fields have defaults.
Management
The AsxItchMarketDataFeedClient contains the standard suite of scripts used to manage each individual feed.
start.sh- Starts a feed. Accepts a single feed identifierpartition[N]as a command line argument to start one feed, orallto start every configured feed.stop.sh- Stops a currently running feed. Accepts the same arguments asstart.sh.list_feeds.sh- Outputs all currently running feeds.create_softlinks.sh- Used when first setting up the feeds, or when a new feed is added, to create the necessary softlinks for each partition.
Logging
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.
