Coder Social home page Coder Social logo

uzbekdev1 / roq-samples Goto Github PK

View Code? Open in Web Editor NEW

This project forked from roq-trading/roq-samples

0.0 0.0 0.0 9.83 MB

Demonstrates how to use the Roq C++17 API 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: BSD 3-Clause "New" or "Revised" License

Shell 1.90% C++ 90.72% CMake 7.37% Batchfile 0.01%

roq-samples's Introduction

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

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 \
    make \
    cmake \
    abseil-cpp

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

Building

git submodule update --init --recursive

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
  • 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-samples's People

Contributors

jangob avatar thraneh avatar viciouspotato 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.