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
macOS:
brew install boost cmake libuv pkg-config
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:
make install
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:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
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
- NASDAQ TotalView-ITCH 5.0
- Nordic Equity TotalView-ITCH 2.02.2
- MoldUDP
- MoldUDP64
- BinaryFILE
- SoupFILE
- Parity
- PMD
Copyright © 2015 Pekka Enberg
Helix is distributed under the 2-clause BSD license. See LICENSE for the full license text.