Free, open source crypto trading bot
Go to file
2017-09-28 10:52:42 +03:00
rpc rename btc_amount to stake_amount 2017-09-11 13:59:11 +02:00
test add three more currency pairs to back testing. redownloaded all test data 2017-09-25 22:01:54 +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 add slack token 2017-09-12 19:20:49 +02:00
analyze.py use five minute ticker for a much more stable indicators 2017-09-12 10:53:42 +02:00
config.json.example add a field to config for setting balance between trying to buy with ask price and last price 2017-09-17 22:37:46 +03:00
Dockerfile remove unneeded command 2017-09-08 17:40:29 +02:00
exchange.py drop support for poloniex 2017-09-11 13:59:38 +02:00
LICENSE Initial commit 2017-05-18 02:13:02 +02:00
main.py extract sell criteria to it's own method for testing 2017-09-25 21:05:37 +03:00
misc.py add a field to config for setting balance between trying to buy with ask price and last price 2017-09-17 22:37:46 +03:00
persistence.py rename btc_amount to stake_amount 2017-09-11 13:59:11 +02:00
README.md add a little more explanation for ask_last_balance to README 2017-09-18 05:09:45 -07:00
requirements.txt drop support for poloniex 2017-09-11 13:59:38 +02:00

freqtrade

Build Status

Simple High frequency trading bot for crypto currencies. Currently supported exchanges: bittrex

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.

ask_last_balance sets the bidding price. Value 0.0 will use ask price, 1.0 will use the last price and values between those interpolate between ask and last price. Using ask price will guarantee quick success in bid, but bot will also end up paying more then would probably have been necessary.

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