Skip to content
Framework to build trading applications
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
build
configs
data
deps
docs
premake
samples
sdk/include
src
tests
tools/bin/premake
.clang-format
.gitattributes
.gitignore
.gitmodules
.travis.yml
Doxyfile
PrefSets.xml
README.md
appveyor.yml
conanfile.txt
configure.ac
deb_dependencies.txt
premake5.lua
requirements.txt
vs-chromium-project.txt

README.md

trader

Build Status Build status codecov Coverity Scan Build Status Conventional Commits CII Best Practices

This project is a framework to quickly connect with cryptocurrency and traditional exchanges that utillize REST JSON, FIX or Websockets.

Documentation

Brief Markdown Documentation

Doxygen Full Documentation

Build & Run Instructions

Linux/WSL

Setup Instructions

Aptitude users

  • Run build/linux/deploy_tools.sh to install required tools

  • Run build/linux/genproj.sh once to generate makefiles for the project

  • Copy bin/.json & bin/.properties to bin/debug on bin/release and modify the config with the relevant api keys and proxy settings

Compilation

  • Tested with Ubuntu 18 on WSL

For Help

  • Run make -f generators.make help and make -f generators.make help Otherwise
  • Build Generators
    • make -f generators.make all
  • Build Trader
    • make -f trader.make all

Running

  • Run using script build/linux/run_debug_.sh

Debug

  • Run build/linux/debug_.sh

Windows

Setup Instructions

  • Run build\win\shell.cmd
  • Run build\win\deploy_tools.cmd to download necessary packages
  • Run build\win\genproj.cmd once to generate Visual Studio 2015 or Visual Studio 2017 projects

Compilation

  • Open and compile codegen.sln
  • Open and compile trader.sln

Project Structure

generator.sln

  • codegen - This is the code generator. It includes several code generators to transform, json, xml to c++ code. This needs to be built before apis, configs, databases, interface
  • apis - This runs codegen to transform the hyperschema.json files in data/apis to c++ code. Hyperschema is a proposed format to describe REST/JSON apis as json files (Hyperschema Format)
  • interfaces - This runs codegen to transform the fix api xml specs to a c++ interface that can be used to standardize the communication interface between the various modules.
  • configs - This runs codegen to transform the config.json files in data/configs to c++ code. These are used for the simple key-value pair json configs to setup api keys right now.
  • databases - This runs codegen to transform the databaseschema.json files data/databases to c++ code.
  • gencode - This re-runs premake to generate the project and solutions structure. You might need to re-run this if a new file is added or generated

trader.sln

  • genproj - This re-runs premake to generate the project and solutions structure. You might need to re-run this if a new file is added or generated
  • dataconnector - This is meant to be a library that allows one to connect to multiple exchanges. It servers as an API extraction layer and exposes a standardize fix c++ interface for applications to use.
  • trader - This is a sample application to interact with dataconnector
  • *tests - Various test projects

Running

  • Copy bin*.json & bin*.properties to bin\debug or bin\release and modify the config with the relevant api keys and proxy settings
  • Comment of/delete the proxy settings if you do not require them
  • Right-click trader project and Set as StartUp Project
  • Press F5 to run/debug in Visual Studio

Optional

MacOS X

This has not been tested Will be supported in the near future

Contribution Guidelines

  1. Format changelist commit comments using conventional commits
  2. Submit pull request for review
You can’t perform that action at this time.