GithubHelp home page GithubHelp logo

coolsnake / roq-api Goto Github PK

View Code? Open in Web Editor NEW

This project forked from roq-trading/roq-api

0.0 1.0 0.0 11.06 MB

The Roq C++17 API used for Live Cryptocurrency Algorithmic and High-Frequency Trading as well as for Back-Testing and Historical Simulation

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

License: MIT License

Shell 0.13% C++ 95.69% Batchfile 0.01% C 0.23% Python 1.65% CMake 2.30%

roq-api's Introduction

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.
  • 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 (x86-64, AArch64)
  • macOS (x86-64)

Library/Package Dependencies

Optional

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

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

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

Install Dependencies

source ~/conda/bin/activate

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

conda install -y --channel https://roq-trading.com/conda/stable \
    roq-oss-range-v3 \
    roq-oss-span-lite

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++

Although the API is open source, certain solutions are closed source.

You can download the client library like this

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

Samples can be found here.

C++ design

FlatBuffers

FlatBuffers is primarily used for the event-log storage format.

FlatBuffers design

License

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

Links

roq-api's People

Contributors

thraneh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.