Giter Site home page Giter Site logo

deepland / reactive-trader Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dustinjsilk/reactive-trader

0.0 1.0 0.0 988 KB

In the coming weeks this plans to become a Gekko plugin that reacts to market changes, finding and running only the most profitable strategies.

License: MIT License

JavaScript 98.89% CSS 0.57% HTML 0.54%

reactive-trader's Introduction

Automatic Gekko trader

This bot accesses the Gekko api and manages trading and updating strategies so that you don't have to.

Using a Genetic Algorithm it will only use the best strategy and settings for maximum profit.

At every interval it will search for better settings and then switch over to them.

You will also be able to run it in backtest mode to see how it does.

THIS APP IS STILL IN ACTIVE DEVELOPMENT AND NOT YET FINISHED OR READY TO ROLL

Prerequisites

Reactive Trader assumes that you already have Gekko setup to run. Meaning if you run the Gekko command line or frontend server for importing, backtesting, paper trading, and live trading - everything will work. Thats because this bot is nondestructive.

If you can't run Gekko as is, you won't be able to run Reactive Trader.

Install

$ cd [Gekko repository]
$ git clone https://github.com/DustinJSilk/reactive-trader
$ cd ./reactive-trader
$ npm install
$ cp ./config/sample-config.js ./config/config.js

Running

This app will run in place of Gekko and on top of it. Make sure to shutdown any other trading instances first.

Make sure you configure ./config/config.js and ./config/strategies.js first.

$ node index.js --help

Run through the terminal:

$ node index.js --run

Run with the frontend UI:

$ node index.js --run --ui

The frontend feature is still very basic and just spits out test results as they come.

Database

I had problems with SQLite. Switch to postgres or mongodb. You will need to follow Gekkos setup instructions as thats out of the scope of this app.

Roadmap

The basic future:

  • Setup and installation
  • Add importing
  • Create backtesting class for individual strategies
  • Properly run a single strategy
  • Create strategy finder class using a genetic algorithm
  • Add mutation to the genetic algorithm
  • Setup strategy updating intervals
  • Setup backtesting for the whole bot. (Kinda done, but its not 100% accurate)
  • Fine tune the Genetic Algorithm
  • Store previous test results and config to be mutated with new test entities.
  • Stop depending on genetic-js. Write the foundation for the Genetic Algorithm myself.
  • Don't import data that already exists when running large backtests
  • Fine tune the strategy updating loops
  • Log and display trading results / stats
  • Add proper logging
  • Begin paper trading
  • Add a UI layer to see running stats
  • Begin live trading
  • Find a way to to switch strategies without rebooting OR without messing up the end of the current / start of the next trading period
  • Run a Genetic algorithm on this app to find the ultimate perfect settings.
  • Profit.

Help a brother out

Submit issues, pull requests, and feature requests. I can't do it all alone. (Well I can, but it'll be a bit slower and probably suck a little)

I can build a bot better than I can build a strategy. I still haven't gone live. If you've got a killer strat and wanna say thanks hit me up.

Otherwise theres always the classic btc tip.

I hope we can all get rich and retire young together.

1CztvpiViGx56AQszcNdMNgDt2knzReAT

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.