Giter VIP home page Giter VIP logo

thunder-trader's Introduction

Thunder Trader

Documentation Status Documentation Status License

Features


Based on C++ 11, this project implements a quantitative trading system supporting high-frequency transactions. The system supports the following characteristics:

  • Flexibility

    • Using plug-ins to support different quotations and trading interfaces, such as CTP, Femas, Dfitc and TWS in China.
    • Support multiple accounts and multiple strategies. Each strategy can use multiple quotes, and can place orders for multiple accounts.
  • Easy to use

    • Support both linux and windows
    • C/S architecture
    • Client with graphical interface
    • The real-time tracing of the variables in the strategy can be supported by "probe", and the display mode of the "probe" can be customized.
    • Supporting the "intervention" of the strategy, by predefining some intervention actions, to achieve a fixed operation in the transaction process.
  • Efficiency

    • C++ implementation
    • Asynchronous event driven

User's guide

Welcome to my personal blog. There are User's guide.

Documentation

Welcome to my personal blog. There are detailed introductory manuals.

Quit start

This preject is tested in following environment:

  • gcc 7.2 or 4.8.4
  • boost 1.58.0
  • centos7

Build:

>cmake .
>make
>make install
>export LD_LIBRARY_PATH=/path/to/gcc/lib/:/path/to/boost/lib:$LD_LIBRARY_PATH ; /path/to/thunder-trader /path/to/thunder-trader.conf 1

Then will see output like: 
Run.SystemNumber=1 [20181021T062516.546639]

If you use a customed gcc path, you should specify the /path/to/gcc/lib/, such as /opt/gcc7/lib64.

As the same, if you use a customed boost path, you should specify the /path/to/boost/lib, such as /opt/boost/lib.

The usage of thunder-trader is ./thunder-trader config_file.conf system_number, .e.g. ./thunder-trader thunder-trader.conf 1, the system_number is a customed int that indicate the process by onlyself. You should make sure that different thunder-trader process has different system_number.

The reason of use a system_number will be illustrated in the document.

Then you can use the Monitor to connect the thunder-trader.

And if the cmake cannot find the boost, you should set the BOOST_ROOT to the custom boost install path.In the CMakeLists.txt,it should be like this:

set(BOOST_ROOT /usr/local/install/boost/install/path)

For Monitor,you can either download the binary .exe or compile by source.

Compile steps:

  • Open the monitor.sln using Microsoft visual stdio 2013 or above.
  • Open the property page of project, and switch to the VC++ directory, set the boost root to the correct install path of your boost.
  • Build it.
  • Config Monitor.json.
  • Put the Monitor.exe and Monitor.json and PEGRP32E.DLL together in a directory.
  • Run Monitor.exe.

Update log

  • 2018.11.20 : Support gcc 4.8.4
  • 2018.12.04 : Update arbitrage_strategy & simple_strategy
  • 2018.12.20 : Commit the Monitor v0.1

Ask Questions

E-mail:[email protected] or QQ Group:628409183



Particular attention: If you encounter an

^C*** Error in `./thunder-trader': double free or corruption (!prev): 0x0000000001e32bb0 ***

like error when run thunder-trader, don't worry. This is a bug in CTPLibrary that usually appears when the process exit, but does not affect the normal operation of the program.Turn off the ctp option, or tell me how to avoid this error if you knows please.

If you like this project, give me a star ^_^

Copyright and License

Thunder-trader is provided under the Apache-2.0 license.

thunder-trader's People

Contributors

solopointer avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.