Welcome to the Low-Latency Programming Repository, a project aimed to serve both academics and industry practitioners in the realm of High-Frequency Trading (HFT). With a focus on optimizing latency-critical code, this repository provides comprehensive insights, techniques, design patterns, and best practices that are statistically benchmarked to mitigate latency in HFT systems.
- Comprehensive guide on low-latency programming techniques such as Cache Warming, Constexpr, Loop Unrolling, Lock-Free Programming, and Short-circuiting.
- Market-neutral statistical arbitrage pairs trading strategy optimized for low-latency.
- Implementation of the Disruptor pattern in C++ optimized for speed and scalability.
Clone this repository to your local machine to get started.
git clone https://github.com/arhamgarg/imperial-hft.git
cd imperial-hft
- C++ Compiler with C++11 support or higher
- CMake version 3.10 or higher
- Google Benchmark
After Google Benchmark has been installed and the benchmark folder is in the same directory as the mybenchmark.cc file, the user can compile the mybenchmark.cc file using the makefile provided in the repository.
g++ mybenchmark.cc -std=c++20 -isystem benchmark/include -Lbenchmark/build/src -lbenchmark -lpthread -o mybenchmark
All techniques and strategies are rigorously benchmarked for latency reduction, cache efficiency, and overall performance. The benchmark/
directory contains all benchmarking scripts.