Skip to content

Latest commit

 

History

72 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ITCH Order Book

Low-latency NASDAQ ITCH 5.0 market data pipeline built in C++26. Replays binary feed files through a lock-free SPMC ring buffer into per-symbol order books. Reconstructed L2 price-level depth.

Architecture

FileSource (mmap) → FeedHandler → SPMCRingBuffer → MarketDataHandler × N
                                                         ↓
                                               OpenAddressMap (order records)
                                                         ↓
                                               LimitedDepthOrderBook (top 10 levels)
  • Feed: memory-mapped file source, dispatch via SPMC disruptor
  • Queue: lock-free single-producer multi-consumer ring buffer, cache-line aligned control blocks
  • Deserializer: reflection-based zero-copy ITCH message parser (stse), skips ignored fields at compile time
  • Order tracking: open-addressing hash map keyed by order reference number
  • Order book: bounded sorted array (top 10 price levels per side), contiguous in memory

Build

# optimised release
make release

# w/ latency instrumentation
make instrumented

# sanitizers
make asan
make ubsan
make tsan

Run

make run_release ARGS=path/to/12302019.NASDAQ_ITCH50
make run_instrumented ARGS=path/to/12302019.NASDAQ_ITCH50

Performance (TSLA, 527k messages)

Metric p50 p99 p99.9
Market event 320ns 1.5µs 4.0µs
Order book insert 20ns 80ns 420ns
Order book remove 20ns 70ns 270ns
OAM lookup 230ns 960ns 1.6µs

Requirements

  • GCC 16+ (C++26, P2996 reflection)
  • Linux (epoll, mmap, pthread affinity)
  • NASDAQ TotalView-ITCH 5.0 binary feed file

About

Low-latency NASDAQ ITCH 5.0 market data pipeline

Resources

Stars

5 stars

Watchers

0 watching

Forks

Contributors

Languages