protocol-parser

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.

Cloning repo and submodules

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

Data source

The raw itch data files can be found here.

Building and running

First, build the cppgen binary for c++ code generation. Then run make as specified below.

go build -o golang/cppgen golang/cppgen.go

build options

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.

Development

See README.dev.