Simple code that reads raw market data (currently only ITCH) and builds a real-time book. Various stats can be recorded and this project essentially acts as a testbed for experimentation in optimization.
git clone --recursive https://gitlab.com/btmcg/protocol-parser.git
or
git clone https://gitlab.com/btmcg/protocol-parser.git
git submodule update --init --recursive
The raw itch data files can be found here.
First, build the cppgen binary for c++ code generation. Then run make as specified below.
go build -o golang/cppgen golang/cppgen.go
make -j
Using gcc, build all targets with full optimizations, including benchmarks and tests (if available).
make COMPILER=clang -j
Using clang, build all targets with full optimizations, including benchmarks and tests (if available).
make DEBUG=1 -j
Using gcc, build all targets with no optimizations and debug assertions included.
make DEBUG=1 COMPILER=clang parser -j
Using clang, build only the parser (and dependencies) with no optimizations and debug assertions included.
See README.dev.