roq-samples
roq-samples copied to clipboard
Example projects demonstrating how to use Roq's C++23 APIs.
roq-samples
Samples demonstrating how to implement various features of algorithmic trading solutions.
Operating Systems
- Linux (x86-64, AArch64)
- macOS (x86-64)
Note! The Windows Subsystem for Linux (WSL) is NOT supported. Reason can be found here.
Library/Package Dependencies
- 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)
Prerequisites
The project is primarily designed to be compatible with the conda package manager.
Download and Install Miniforge
Linux / x86_64
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'
Linux / aarch64
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'
macOS / x86_64
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'
macOS / arm64
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'
Install Dependencies
source ~/conda/bin/activate
conda install -y \
git \
make \
cmake \
abseil-cpp \
flatbuffers \
nlohmann_json \
tomlplusplus
conda install -y --channel https://roq-trading.com/conda/stable \
roq-web \
roq-client
Building
cmake .
make -j4
Using
-
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 Data (install)
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.
Gateways (install, configure, run)
Deribit
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
Coinbase Pro
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
License
The project is released under the terms of the BSD 3-Clause license.
Links
- Roq GmbH
- Documentation
- Contact us