Skip to content

blaizard/trader-public

Repository files navigation

Trader

Trader is a flexible pair trading platform. It is developped to run custom strategies on crypto currencies exchanges. The backend is written in C++11 while the frontend is in Javascript and based on Vue.js.

Screenshot

Front-end screenshot

Features

  • Robust order tracking (support exchanges with buggy APIs)
  • Chainable orders in all sorts (for example: market -> limit -> withdraw)
  • Allow multiple custom strategies to run in parallel
  • Support market orders, limit orders and withdrawing
  • Support for REST API, Websocket (Pusher) and Json parsing
  • Responsive HTML front-end (can optionally be used with a custom frontend through a REST API interface)
  • Record rates, transactions and profits

Implemented Exchanges

Exchange Support Withdraw Note
Bitfinex Read Only (1)
Bitstamp Read Only (1)
Coinbase Read Only (1)
Kraken Full
Wex Full
Test Full A dummy exchange for test purpose only

(1) Only supports read-only activities, any private functionality such as order placing, balance inquiry, etc are disabled.

Disclaimer

USE THE SOFTWARE AT YOUR OWN RISK. YOU ARE RESPONSIBLE FOR YOUR OWN MONEY. PAST PERFORMANCE IS NOT NECESSARILY INDICATIVE OF FUTURE RESULTS. THE AUTHORS AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR TRADING RESULTS.

Compile & Run

Prerequisites

You need the following libraries:

C++ requires g++ version 5.3 or later.

Get the sources

Download the source from github with:

git clone git://github.com/blaizard/trader.git

Build

A script is available to automate the build, it will also fetch dependant git submodules.

First you need to intialize the source directory. To do so, simply run the following command from the root directory:

./build.sh -s

Then the followign will compile the source code:

./build.sh release

Run

All binaries generated are located within the build/bin/ directory.

./build/bin/main

Output

Trader logs various data that can be found in the output directory (by default within the build/bin/output sub-directory). This consists of the following records:

  • transactions.csv: Contains all transactions, with their timestamp, type and rates.
  • profit.csv: Contains all recorded profits from the strategies in place.
  • /[echanges]/: Sub-directories containing all the rate changes in CSV format for all available currency pairs for the various exchanges.

Todo

  • Block balance changes for a certain period of time to ensure fund availability for the next order (implemented/in testing)
  • Disable pair if it did not get any update (or if update is invalid, rate equals 0 for example)
  • Improve the unit test coverage

Releases

No releases published

Packages

No packages published