Capital-8 / roq-api

API for algorithmic and high-frequency trading

Home Page:https://roq-trading.com/docs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

roq-api

API for algorithmic and high-frequency trading (HFT).

Note! This project does not contain the implementation of the C++ interfaces. This is due to the ultra low latency communication protocol being closed source.

Features

  • Open source interface (no need to sign an NDA to access or use).
  • Permissive license (anyone is free to copy and use for whatever purpose).
  • Unified interface for all markets.
  • Design is strongly inspired by standards and specific implementations used by major exchanges.
  • Allocation-free message decoding supported.
  • Auto-generated code based on schemas.
  • Strongly typed messages (events).
  • Asynchronous interfaces and implementations.
  • C++ for ultra low latency.
  • FlatBuffers as an optional interface when latency is not a concern.

Operating Systems

  • Linux

Library/Package Dependencies

Optional

Prerequisites

The project is 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

source ~/conda/bin/activate

conda install -y \
    git \
    cmake \
    gxx_linux-64 \
    flatbuffers \
    fmt

In addition, your system should provide clang-format (at least version 10).

Building

git submodule update --init --recursive

cmake .

make -j4

make test

Using

Documentation can be found here.

C++

The C++ interface is designed for ultra low latency and requires a closed source implementation

conda install -y --channel https://roq-trading.com/conda/stable \
    roq-client

Samples can be found here.

C++ design

FlatBuffers

The FlatBuffers interface is useful when latency is not a concern or when other programming languages than C++ are required. Furthermore, the event log storage format uses FlatBuffers and can be decoded from any language.

FlatBuffers design

WORK IN PROGRESS.

License

The project is released under the terms of the MIT license.

Links

About

API for algorithmic and high-frequency trading

https://roq-trading.com/docs

License:MIT License


Languages

Language:C++ 95.1%Language:CMake 2.6%Language:Python 2.0%Language:C 0.2%Language:Shell 0.1%Language:Batchfile 0.0%