Helix is an ultra low-latency market data feed handler written in C++. It provides an API to trading applications that normalizes market data updates from multiple feeds.
Helix core does not include networking functionality and expects applications to provide raw packet data.
- libuv 1.0 or later
- Boost libraries
brew install boost cmake libuv pkg-config
Building and Installing
To build Helix:
cmake . make
To build a debug version of Helix that enables AddressSanitizer:
mkdir -p build/debug cd build/debug cmake -DCMAKE_BUILD_TYPE=debug ../..
To install Helix:
Please note that Helix generates a
pkg-config file so you can use
pkg-config to integrate Helix with your project build system. If you installed Helix in the default location
/usr/local/, you need to set the
PKG_CONFIG_PATH environment variable as follows:
To convert a NASDAQ TotalView-ITCH 5.0 file to CSV:
./helix-trace -i 07302015.NASDAQ_ITCH50 -s AAPL -c nasdaq-binaryfile-itch50 -f csv -o AAPL.csv
Please note that Helix only works with uncompressed files.
- C++ API
- C binding
- Order book view
- Data normalization
- Data filtering
- Retransmission requests
- Order book aggregation
- Synthetic NBBO
- NASDAQ TotalView-ITCH 5.0
- Nordic Equity TotalView-ITCH 2.02.2
Copyright © 2015 Pekka Enberg
Helix is distributed under the 2-clause BSD license. See LICENSE for the full license text.