Samples demonstrating how to implement various features of algorithmic trading solutions.
- Linux (x86-64, AArch64)
- macOS (x86-64)
Note! The Windows Subsystem for Linux (WSL) is NOT supported. Reason can be found here.
- Abseil-C++ (Apache 2.0 License)
- FlatBuffers (Apache 2.0 License)
- fmt (MIT License)
- range-v3 (BSL 1.0 License)
- span-lite (BSL 1.0 License)
- roq-api (MIT License)
- roq-logging (MIT License)
- roq-web (Commerical License, free to use)
- roq-client (Commerical License, free to use)
Optional
- Google Benchmark (Apache 2.0 License)
- Google Test (BSD 3-Clause License)
The project is primarily designed to be compatible with the conda package manager.
wget -N https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh -b -u -p ~/conda
~/conda/bin/conda install -y \
'gxx_linux-64>=12'
wget -N https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh
bash Miniforge3-Linux-aarch64.sh -b -u -p ~/conda
~/conda/bin/conda install -y \
'gxx_linux-aarch64>=12'
wget -N https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-x86_64.sh
bash Miniforge3-MacOSX-x86_64.sh -b -u -p ~/conda
~/conda/bin/conda install -y \
'clang_osx-64>=14'
wget -N https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh
bash Miniforge3-MacOSX-arm64.sh -b -u -p ~/conda
~/conda/bin/conda install -y \
'clang_osx-arm64>=14'
source ~/conda/bin/activate
conda install -y \
git \
make \
cmake \
abseil-cpp \
flatbuffers \
nlohmann_json \
tomlplusplus \
libevent
conda install -y --channel https://roq-trading.com/conda/stable \
roq-client \
roq-web \
roq-oss-range-v3
cmake .
make -j4
- Example 1
- Connect to market gateway
- Subscribe using regex patterns
- Example 2
- Manage disconnect
- Process incremental market data update
- Maintain a market depth view
- Update a simple model
- Example 3
- Maintain positions
- Place limit orders
- Deal with order acks and updates
- Historical simulation
- Live trading
- Example 4
- Subscribe and nothing else
- Example 5
- Transfer
CustomMessage
from a secondary thread
- Transfer
- Import
- Convert any data source to an event-log
- Encoding has header-only dependencies
Simulation requires you to either use your own event logs (automatically captured when you're running a gateway) or use sample data
conda install -y --channel https://roq-trading.com/conda/stable \
roq-data
Data can now be found in the $CONDA_PREFIX/share/roq-data/
directory.
conda install -y --channel https://roq-trading.com/conda/stable \
roq-deribit
It is easiest to start from a config file template
cp $CONDA_PREFIX/share/roq-deribit/config.toml ~/deribit.toml
Edit this file and update with your Deribit API credentials (link).
You should look for these lines and replace as appropriate
login = "YOUR_DERIBIT_LOGIN_GOES_HERE"
secret = "YOUR_DERIBIT_SECRET_GOES_HERE"
Launch the gateway
roq-deribit \
--name "deribit" \
--config_file ~/deribit.toml \
--client_listen_address ~/deribit.sock
conda install -y --channel https://roq-trading.com/conda/stable \
roq-coinbase-pro
It is easiest to start from a config file template
cp $CONDA_PREFIX/share/roq-coinbase-pro/config.toml ~/coinbase-pro.toml
Edit this file and update with your Coinbase Pro API credentials (link).
You should look for these lines and replace as appropriate
login = "YOUR_COINBASE_PRO_API_KEY_GOES_HERE"
password = "YOUR_COINBASE_PRO_PASSPHRASE_GOES_HERE"
secret = "YOUR_COINBASE_PRO_SECRET_GOES_HERE"
Launch the gateway
roq-coinbase-pro \
--name "coinbase-pro" \
--config_file ~/coinbase-pro.toml \
--client_listen_address ~/coinbase-pro.sock
The project is released under the terms of the BSD 3-Clause license.