This project is a concurrent trading message processing system, which does order execution, order management, account management as well as market info such as orderbook and ticker price.
The code base includes mainly three parts.
- A C++ implementation of full API of 6 exchanges RESTful and websockets for Binance. These exchanges are Binance, Bitfinex, Bittrex, Bitstamp, Coinbase, Kraken
- A C++ API wrapper that provides standard API endpoints to interact with any 3rd party code. In our case, a HTML/Javascript UI.
- A middleware which relays the JSON message from front-end to backend trading engine. Currently this is coded in Node.JS. A GO version is under development.
This is the C++ implementation of exchange API. To compile the libraries, run the following:
$HOME/API/src/build.sh
# For example, to compile API for Kraken
thundercore/API/krakcpp/src/build.sh
This will build and generate the libraries which you can use for any other projects.
This is where the header files are stored.
This is where the compiled libraries are stored.
This is where the middleware program are stored.
This is where the trading engine API wrapper and utilities code stored.
$HOME/src/trading: all the trading engine API wrapper stored
This is where the test code are stored.
This is where the trade signals are stored.
- build new exchange API $HOME/API
- add compiled lib to $HOME/lib
- add headers to $HOME/include
- add new interface in main.cpp
- add new exchange path in run.template.sh
- add exchange API wrapper in src/trading/modules/exchange_name