Skip to content

A high-performance order execution and management system to trade on Deribit Test

License

Notifications You must be signed in to change notification settings

Talkative-Banana/Trading-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trading System

A high-performance order execution and management system to trade on Deribit Test.

This Project implement and justify optimization techniques for memory management, network communication, data structure selection, thread management and CPU optimization. It covers all supported symbols and instrument coverage include support for Spot, Future, and Options.

Built With

Table of Contents

Table of Contents
  1. About The Project
  2. Documentation
  3. Results
  4. Getting Started
  5. Contributing
  6. Contact
  7. Acknowledgements

Documentation

Main idea

The project aims to develop a high-performance order execution and management system for trading on the Deribit Test platform. It leverages C++ to achieve low-latency performance while ensuring robust functionality and scalability.

Key features of the system include:

  • Order Management: Seamless order placement, cancellation, and modification for a variety of trading instruments, including Spot, Futures, and Options.
  • Real-Time Market Data Streaming: Implements a WebSocket server to provide continuous and efficient updates of market data, supporting multiple client subscriptions.
  • Market Coverage: Comprehensive support for all symbols available on the Deribit platform.
  • Performance Optimization: Incorporates techniques for memory management, efficient data structure usage, and network communication to minimize latency.
  • Error Handling and Logging: Ensures reliability and traceability through robust error management and detailed logging.

This system is designed to meet the demands of algorithmic trading by focusing on speed, accuracy, and scalability, making it a suitable solution for real-world financial markets.

The method

Two Implementaion of the sockets are currently supported. Boost beast implementation and Websocket++ implementation. These implementations in turn can make both sync and async calls to remote api.

Trader supporting various functionalities. image

Results

Average and Individual E2E latency while making sync request [WebSocket++].

image

Average and Individual E2E latency while making sync request [Boost Beast].

image

Average and Individual E2E latency while making async requests [Boost Beast]

image

Average and Individual E2E latency while making async requests [WebSocket++]

image

Averages and Standard Deviation

image

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

  • Basic understanding of CPP
  • Boost and Websocket++ library
  • GitHub Account (Sign Up)

Installation

  • Clone the repo

    git clone https://github.com/Talkative-Banana/Trading-System.git

    Make sure you have both Boost Beast and Websocket++ libraries then you can call make by going into directories having Makefile

    cd src/
    make
    ./algo.exe

    Make cahnges in the Api.cpp to switch implementations of socket and make changes in tes_latency.cpp to switch between sync or async

    cd test/test_latency/
    make
    ./test_latency.exe
    cd test/test_throughput/
    make
    ./test_throughput.exe

Roadmap

  • Clone the repo and open it in suitable IDE for complete project source code. You can also fix the issues and hence contribute.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch
  3. Commit your Changes
  4. Push to the Branch
  5. Open a Pull Request

Contact

Email ID - [email protected]

Acknowledgements

Lakshay Bansal [email protected]

About

A high-performance order execution and management system to trade on Deribit Test

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published