Free, open source crypto trading bot
Go to file
2017-09-10 22:57:09 +02:00
rpc Fix application state and add new optional config attribute: "initial_state" 2017-09-09 00:31:40 +02:00
test use DataFrames own functions to manipulate the Bittrex JSON 2017-09-10 09:51:56 +03:00
.gitignore fix Session lint issues 2017-09-03 09:50:48 +03:00
.pylintrc add pylint rule file that allows to use logger in lowercase 2017-08-27 15:37:11 +03:00
.travis.yml export lib path 2017-09-08 16:55:03 +02:00
analyze.py use DataFrames own functions to manipulate the Bittrex JSON 2017-09-10 09:51:56 +03:00
config.json.example Fix application state and add new optional config attribute: "initial_state" 2017-09-09 00:31:40 +02:00
Dockerfile remove unneeded command 2017-09-08 17:40:29 +02:00
exchange.py pylint fixes 2017-09-08 23:10:22 +02:00
LICENSE Initial commit 2017-05-18 02:13:02 +02:00
main.py version bump 2017-09-10 22:56:43 +02:00
misc.py Fix application state and add new optional config attribute: "initial_state" 2017-09-09 00:31:40 +02:00
persistence.py pylint fixes 2017-09-08 23:10:22 +02:00
README.md Fix application state and add new optional config attribute: "initial_state" 2017-09-09 00:31:40 +02:00
requirements.txt pylint fixes 2017-09-08 23:10:22 +02:00

freqtrade

Build Status

Simple High frequency trading bot for crypto currencies. Currently supported exchanges: bittrex, poloniex (partly implemented)

This software is for educational purposes only. Don't risk money which you are afraid to lose.

The command interface is accessible via Telegram (not required). Just register a new bot on https://telegram.me/BotFather and enter the telegram token and your chat_id in config.json

Persistence is achieved through sqlite.

Telegram RPC commands:

  • /start: Starts the trader
  • /stop: Stops the trader
  • /status: Lists all open trades
  • /profit: Lists cumulative profit from all finished trades
  • /forcesell <trade_id>: Instantly sells the given trade (Ignoring minimum_roi).
  • /performance: Show performance of each finished trade grouped by pair

Config

minimal_roi is a JSON object where the key is a duration in minutes and the value is the minimum ROI in percent. See the example below:

"minimal_roi": {
    "2880": 0.005, # Sell after 48 hours if there is at least 0.5% profit
    "1440": 0.01,  # Sell after 24 hours if there is at least 1% profit
    "720":  0.02,  # Sell after 12 hours if there is at least 2% profit
    "360":  0.02,  # Sell after 6 hours if there is at least 2% profit
    "0":    0.025  # Sell immediately if there is at least 2.5% profit
},

stoploss is loss in percentage that should trigger a sale. For example value -0.10 will cause immediate sell if the profit dips below -10% for a given trade. This parameter is optional.

initial_state is an optional field that defines the initial application state. Possible values are running or stopped. (default=running) If the value is stopped the bot has to be started with /start first.

The other values should be self-explanatory, if not feel free to raise a github issue.

Prerequisites

  • python3.6
  • sqlite
  • TA-lib binaries

Install

$ cd freqtrade/
# copy example config. Dont forget to insert your api keys
$ cp config.json.example config.json
$ python -m venv .env
$ source .env/bin/activate
$ pip install -r requirements.txt
$ ./main.py

Execute tests

$ python -m unittest

Docker

$ cd freqtrade
$ docker build -t freqtrade .
$ docker run --rm -it freqtrade