https://github.com/d-d-roshan/trade-system
https://github.com/d-d-roshan/trade-system
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/d-d-roshan/trade-system
- Owner: D-D-Roshan
- Created: 2025-01-21T06:06:51.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-21T06:12:18.000Z (over 1 year ago)
- Last Synced: 2025-01-21T07:19:28.254Z (over 1 year ago)
- Language: C++
- Size: 88.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Trade system
A high-performance order execution and management system to trade on [Deribit Test](https://test.deribit.com/).
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
* Cpp
* [Boost](https://www.boost.org/)
* [Websocketpp](https://www.zaphoyd.com/projects/websocketpp/)
### Table of Contents
Table of Contents
## 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.
## Results
### Average and Individual E2E latency while making sync request [WebSocket++].

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

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

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

### Averages and Standard Deviation

## 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](https://github.com/))
### Installation
* Clone the repo
```bash
git clone https://github.com/D-D-Roshan/Trade-system
```
Make sure you have both Boost Beast and Websocket++ libraries then you can call make by going into directories having Makefile
```bash
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
```bash
cd test/test_latency/
make
./test_latency.exe
```
```bash
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