xyang619 / 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://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh

bash Miniconda3-latest-Linux-x86_64.sh -b -u -p ~/miniconda3

source ~/miniconda3/bin/activate

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

conda install -y --channel https://roq-trading.com/conda/stable \
    roq-oss-flatbuffers \
    roq-oss-fmt

Building

git submodule update --init --recursive

cmake .

make -j4

make test

Using

Please note that many of the interfaces are being auto-generated and the source files are therefore only accessible once the project has been built or installed.

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++ 73.7%Language:CMake 14.0%Language:Python 10.6%Language:C 0.9%Language:Shell 0.8%Language:Batchfile 0.0%