Giter Club home page Giter Club logo

cryptotrader's Introduction

cryptotrader

Build Status Coverage Status

Overview

Cryptotrader is a cryptocurrency trading bot, with a plug-in mechanism to load custom trading strategies.

  • Standalone Java application.
  • Provides a thin framework for plugging-in custom trading strategies.
  • Multi-exchange, multi-product trading strategies.
  • HTTP REST interface for manual interventions.

Cryptotrader is...

  • NOT fully automated. Although the orders are autonomously managed by the trading strategies, configurations such as which exchanges/products/strategies/parameters to trade with, how much fund to utilize, and at which timing to deposit/withdraw funds are all discretional.
  • NOT a low-latency nor HFT trading application. The framework is based on a periodic timer and not event-driven.
  • NOT fault-tolerant nor highly-available. The single application process is the single-point-of-failure.
  • NOT for non-programmers. No tutorials, user guides, nor support are available. Read the code to figure out how things work. Fork if things needs to be tweaked. Contributions are always welcome, but not required.
  • NOT stable nor backward compatible. This project is for the author's quick & dirty playground implementations, therefore destructive changes could be made any time.

So why is this project made public? Well, mostly for fun, something to chat over a cup of โ˜•. And also, custom plugins and configurations are not made public, which are the secret sauce to generate alpha.

Getting Started

Prerequisites

  • Linux machine with command line interface and direct internet access.
    • Modern linux operating system. (cf: CentOS 7)
    • 1GB or more free memory
    • 30GB or more free disk space
  • JDK 8 or later
  • Gradle 4.x or later

Configuation

Prepare a custom configuration file to define the trading strategies. The default configuration file can be used as a starting point. Note that the default values are simply placeholders with no real meanings, therefore it's mandatory to configure each parameters properly for the application to actually start trading. Once configured, place the custom configuration file at the path $HOME/.cryptotrader.

Installation & Launching

Follow the below procedures to launch the application.

  1. Clone the project files from GitHub.
  2. Build the application module with gradle clean war command.
  3. Launch the application with sh ./etc/winstone/winstone-start.sh. The application will launch in background.
  4. Check the application log file ./etc/winstone/logs/cryptotrader-app.log to monitor the application state.
  5. To stop the application, execute sh ./etc/winstone/winstone-stop.sh and wait, or simply kill the Java process.

Plugins

To load custom trading strategies, prepare a jar file following the SPI specification, and place the jar file under libs/ directory. The application needs to be re-built/restarted for the new plugin jars to be effective. Also, don't forget to adjust the custom configuration file to adapt for the newly loaded strategies.

DISCLAIMER

Use at your own risk, following the LICENSE. Author has no plan to provide specific support for individual configurations nor provide trading instructions/advisories.

cryptotrader's People

Contributors

after-the-sunrise avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  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.