454 lines
14 KiB
Markdown
454 lines
14 KiB
Markdown
# Installation
|
|
|
|
This page explains how to prepare your environment for running the bot.
|
|
|
|
Please consider using the prebuilt [docker images](docker.md) to get started quickly while trying out freqtrade evaluating how it operates.
|
|
|
|
## Prerequisite
|
|
|
|
### Requirements
|
|
|
|
Click each one for install guide:
|
|
|
|
* [Python >= 3.7.x](http://docs.python-guide.org/en/latest/starting/installation/)
|
|
* [pip](https://pip.pypa.io/en/stable/installing/)
|
|
* [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
|
|
* [virtualenv](https://virtualenv.pypa.io/en/stable/installation.html) (Recommended)
|
|
* [TA-Lib](https://mrjbq7.github.io/ta-lib/install.html) (install instructions below)
|
|
|
|
We also recommend a [Telegram bot](telegram-usage.md#setup-your-telegram-bot), which is optional but recommended.
|
|
|
|
!!! Warning "Up-to-date clock"
|
|
The clock on the system running the bot must be accurate, synchronized to a NTP server frequently enough to avoid problems with communication to the exchanges.
|
|
|
|
## Quick start
|
|
|
|
Freqtrade provides the Linux/MacOS Easy Installation script to install all dependencies and help you configure the bot.
|
|
|
|
!!! Note
|
|
Windows installation is explained [here](#windows).
|
|
|
|
The easiest way to install and run Freqtrade is to clone the bot Github repository and then run the Easy Installation script, if it's available for your platform.
|
|
|
|
!!! Note "Version considerations"
|
|
When cloning the repository the default working branch has the name `develop`. This branch contains all last features (can be considered as relatively stable, thanks to automated tests). The `stable` branch contains the code of the last release (done usually once per month on an approximately one week old snapshot of the `develop` branch to prevent packaging bugs, so potentially it's more stable).
|
|
|
|
!!! Note
|
|
Python3.7 or higher and the corresponding `pip` are assumed to be available. The install-script will warn you and stop if that's not the case. `git` is also needed to clone the Freqtrade repository.
|
|
Also, python headers (`python<yourversion>-dev` / `python<yourversion>-devel`) must be available for the installation to complete successfully.
|
|
|
|
This can be achieved with the following commands:
|
|
|
|
```bash
|
|
git clone https://github.com/freqtrade/freqtrade.git
|
|
cd freqtrade
|
|
# git checkout stable # Optional, see (1)
|
|
./setup.sh --install
|
|
```
|
|
|
|
(1) This command switches the cloned repository to the use of the `stable` branch. It's not needed if you wish to stay on the `develop` branch. You may later switch between branches at any time with the `git checkout stable`/`git checkout develop` commands.
|
|
|
|
## Easy Installation Script (Linux/MacOS)
|
|
|
|
If you are on Debian, Ubuntu or MacOS Freqtrade provides the script to install, update, configure and reset the codebase of your bot.
|
|
|
|
```bash
|
|
$ ./setup.sh
|
|
usage:
|
|
-i,--install Install freqtrade from scratch
|
|
-u,--update Command git pull to update.
|
|
-r,--reset Hard reset your develop/stable branch.
|
|
-c,--config Easy config generator (Will override your existing file).
|
|
```
|
|
|
|
** --install **
|
|
|
|
With this option, the script will install the bot and most dependencies:
|
|
You will need to have git and python3.7+ installed beforehand for this to work.
|
|
|
|
* Mandatory software as: `ta-lib`
|
|
* Setup your virtualenv under `.env/`
|
|
|
|
This option is a combination of installation tasks, `--reset` and `--config`.
|
|
|
|
** --update **
|
|
|
|
This option will pull the last version of your current branch and update your virtualenv. Run the script with this option periodically to update your bot.
|
|
|
|
** --reset **
|
|
|
|
This option will hard reset your branch (only if you are on either `stable` or `develop`) and recreate your virtualenv.
|
|
|
|
** --config **
|
|
|
|
DEPRECATED - use `freqtrade new-config -c config.json` instead.
|
|
|
|
### Activate your virtual environment
|
|
|
|
Each time you open a new terminal, you must run `source .env/bin/activate`.
|
|
|
|
------
|
|
|
|
## Custom Installation
|
|
|
|
We've included/collected install instructions for Ubuntu, MacOS, and Windows. These are guidelines and your success may vary with other distros.
|
|
OS Specific steps are listed first, the [Common](#common) section below is necessary for all systems.
|
|
|
|
!!! Note
|
|
Python3.7 or higher and the corresponding pip are assumed to be available.
|
|
|
|
=== "Ubuntu/Debian"
|
|
#### Install necessary dependencies
|
|
|
|
```bash
|
|
sudo apt-get update
|
|
sudo apt-get install build-essential git
|
|
```
|
|
|
|
=== "RaspberryPi/Raspbian"
|
|
The following assumes the latest [Raspbian Buster lite image](https://www.raspberrypi.org/downloads/raspbian/).
|
|
This image comes with python3.7 preinstalled, making it easy to get freqtrade up and running.
|
|
|
|
Tested using a Raspberry Pi 3 with the Raspbian Buster lite image, all updates applied.
|
|
|
|
|
|
```bash
|
|
sudo apt-get install python3-venv libatlas-base-dev cmake
|
|
# Use pywheels.org to speed up installation
|
|
sudo echo "[global]\nextra-index-url=https://www.piwheels.org/simple" > tee /etc/pip.conf
|
|
|
|
git clone https://github.com/freqtrade/freqtrade.git
|
|
cd freqtrade
|
|
|
|
bash setup.sh -i
|
|
```
|
|
|
|
!!! Note "Installation duration"
|
|
Depending on your internet speed and the Raspberry Pi version, installation can take multiple hours to complete.
|
|
Due to this, we recommend to use the prebuild docker-image for Raspberry, by following the [Docker quickstart documentation](docker_quickstart.md)
|
|
|
|
!!! Note
|
|
The above does not install hyperopt dependencies. To install these, please use `python3 -m pip install -e .[hyperopt]`.
|
|
We do not advise to run hyperopt on a Raspberry Pi, since this is a very resource-heavy operation, which should be done on powerful machine.
|
|
|
|
### Common
|
|
|
|
#### 1. Install TA-Lib
|
|
|
|
Use the provided ta-lib installation script
|
|
|
|
```bash
|
|
sudo ./build_helpers/install_ta-lib.sh
|
|
```
|
|
|
|
!!! Note
|
|
This will use the ta-lib tar.gz included in this repository.
|
|
|
|
##### TA-Lib manual installation
|
|
|
|
Official webpage: https://mrjbq7.github.io/ta-lib/install.html
|
|
|
|
```bash
|
|
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
|
|
tar xvzf ta-lib-0.4.0-src.tar.gz
|
|
cd ta-lib
|
|
sed -i.bak "s|0.00000001|0.000000000000000001 |g" src/ta_func/ta_utility.h
|
|
./configure --prefix=/usr/local
|
|
make
|
|
sudo make install
|
|
cd ..
|
|
rm -rf ./ta-lib*
|
|
```
|
|
|
|
!!! Note
|
|
An already downloaded version of ta-lib is included in the repository, as the sourceforge.net source seems to have problems frequently.
|
|
|
|
#### 2. Setup your Python virtual environment (virtualenv)
|
|
|
|
!!! Note
|
|
This step is optional but strongly recommended to keep your system organized
|
|
|
|
```bash
|
|
python3 -m venv .env
|
|
source .env/bin/activate
|
|
```
|
|
|
|
#### 3. Install Freqtrade
|
|
|
|
Clone the git repository:
|
|
|
|
```bash
|
|
git clone https://github.com/freqtrade/freqtrade.git
|
|
cd freqtrade
|
|
git checkout stable
|
|
```
|
|
|
|
#### 4. Install python dependencies
|
|
|
|
```bash
|
|
python3 -m pip install --upgrade pip
|
|
python3 -m pip install -e .
|
|
```
|
|
|
|
#### 5. Initialize the configuration
|
|
|
|
```bash
|
|
# Initialize the user_directory
|
|
freqtrade create-userdir --userdir user_data/
|
|
|
|
# Create a new configuration file
|
|
freqtrade new-config --config config.json
|
|
```
|
|
|
|
> *To edit the config please refer to [Bot Configuration](configuration.md).*
|
|
|
|
#### 6. Run the Bot
|
|
|
|
If this is the first time you run the bot, ensure you are running it in Dry-run `"dry_run": true,` otherwise it will start to buy and sell coins.
|
|
|
|
```bash
|
|
freqtrade trade -c config.json
|
|
```
|
|
|
|
*Note*: If you run the bot on a server, you should consider using [Docker](docker.md) or a terminal multiplexer like `screen` or [`tmux`](https://en.wikipedia.org/wiki/Tmux) to avoid that the bot is stopped on logout.
|
|
|
|
#### 7. (Optional) Post-installation Tasks
|
|
|
|
On Linux, as an optional post-installation task, you may wish to setup the bot to run as a `systemd` service or configure it to send the log messages to the `syslog`/`rsyslog` or `journald` daemons. See [Advanced Logging](advanced-setup.md#advanced-logging) for details.
|
|
|
|
------
|
|
|
|
## Conda (Miniconda or Anaconda)
|
|
|
|
Freqtrade can also be installed with Miniconda or Anaconda. Conda (Miniconda or Anaconda) would automatically prepare and manage the extensive library-dependencies of the Freqtrade program.
|
|
|
|
##### What is Conda?
|
|
|
|
It is: (1) package, (2) dependency and (3) environment management for any programming language : https://docs.conda.io/projects/conda/en/latest/index.html
|
|
|
|
Shortly : Conda < Miniconda < Anaconda. Check : https://linuxnetmag.com/miniconda-vs-anaconda/
|
|
|
|
It is recommended to install Miniconda, not Anaconda. The difference between both lies in the amount of packages that would be installed upfront. Difference is at least like 1:8.
|
|
|
|
https://www.dunderdata.com/blog/anaconda-is-bloated-set-up-a-lean-robust-data-science-environment-with-miniconda-and-conda-forge
|
|
|
|
|
|
#### 1. Instal Conda
|
|
|
|
3 step installation instruction can be found here :
|
|
https://conda.io/projects/conda/en/latest/user-guide/install/linux.html#install-linux-silent
|
|
|
|
Confirm with `yes` all questions. After installation, it is mandatory to turn your terminal OFF and ON again.
|
|
|
|
|
|
#### 2. Prepare Conda environment
|
|
|
|
##### Change the channels with upgrades:
|
|
|
|
After opening terminal, you already will be in default `base` conda environment
|
|
|
|
If you want, you can prevent the (base) conda environment from being activated automatically.
|
|
|
|
```bash
|
|
conda config --set auto_activate_base false
|
|
```
|
|
|
|
enter the conda base environment:
|
|
|
|
```bash
|
|
conda activate base
|
|
```
|
|
|
|
Conda as a package manager can download new packages from "channels". The best developed Conda channel, is not the default channel and is called `conda-forge`. The code below switches to it.
|
|
|
|
```bash
|
|
# adding forge
|
|
conda config --env --add channels conda-forge
|
|
|
|
# make it strict
|
|
conda config --env --set channel_priority strict
|
|
```
|
|
|
|
You can check the status of conda with the following code.
|
|
|
|
```bash
|
|
conda info
|
|
conda config --show channels
|
|
conda config --show channel_priority
|
|
```
|
|
|
|
#### 3. Freqtrade Conda Environment
|
|
|
|
Now you have conda, but only (base) environment,
|
|
|
|
```bash
|
|
conda env list
|
|
```
|
|
|
|
It is time to setup environment of the Freqtrade itself:
|
|
|
|
The conda command `create -n` automatically installs all nested dependencies for the selected libraries
|
|
|
|
general structure of installation command is:
|
|
|
|
```bash
|
|
conda create -n [name of the environment] [python version] [packages]
|
|
```
|
|
|
|
so it can be
|
|
|
|
```bash
|
|
conda create -n freqtrade-conda python=3.8 pandas numpy ta-lib git wheel virtualenv
|
|
```
|
|
|
|
or if you expect, to use later jupiter for [data-analysis](data-analysis.md), use
|
|
|
|
```bash
|
|
conda create -n freqtrade-jupyter-conda python=3.8 pandas numpy ta-lib git wheel virtualenv jupyter
|
|
```
|
|
|
|
the same works: for [docker](docker.md), for spyder and other useful programs.
|
|
|
|
Further read on the topic:
|
|
|
|
https://towardsdatascience.com/a-guide-to-conda-environments-bc6180fc533?gi=1db972389cd1
|
|
|
|
https://metager.de/meta/meta.ger3?eingabe=ardsdatascience+guide+to+conda+environment
|
|
|
|
!!! Note "New heavy packages"
|
|
It may happen that creating a new Conda environment, populated with selected packages at the moment of creation, takes less time than installing a large, heavy dependent, GUI package, into previously set environment. Great example: Spyder
|
|
|
|
|
|
##### Enter/exit freqtrade-conda venv:
|
|
|
|
to enter choosen conda environment
|
|
|
|
```bash
|
|
conda activate freqtrade-conda
|
|
|
|
```
|
|
|
|
to exit conda environment.
|
|
|
|
```bash
|
|
conda deactivate
|
|
```
|
|
|
|
Don't do it now however and stay in conda environment.
|
|
|
|
#### 4. Freqtrade Instalation
|
|
|
|
When in `freqtrade-conda` environment, download and install freqtrade. Command `./setup.sh --install`, will take few minutes.
|
|
|
|
```bash
|
|
# download freqtrade
|
|
git clone https://github.com/freqtrade/freqtrade.git
|
|
|
|
# enter downloaded directory 'freqtrade'
|
|
cd freqtrade
|
|
|
|
# run setup
|
|
./setup.sh --install
|
|
```
|
|
|
|
Create virtual environment (yes, python3-venv environment, inside conda-environment), where Freqtrade program can run.
|
|
|
|
Running python3-venv seems to be requirement of the Freqtrade program itself.
|
|
|
|
```bash
|
|
# create venv environment, inside hidden directory /freqtrede/.env
|
|
python3 -m venv ./.env/
|
|
|
|
# run the python3-venv environment
|
|
source ./.env/bin/activate
|
|
|
|
# install last required package
|
|
pip install -e .
|
|
```
|
|
|
|
##### pip install within conda, a reminder:
|
|
|
|
The documentation of conda says that pip should NOT be used within conda, because internal problems can occur.
|
|
However, they are rare.
|
|
|
|
Nevertherless, that is why, the `conda-forge` channel is preferred:
|
|
|
|
* more libraries are available (less need for `pip`)
|
|
* `conda-forge` works better with `pip`
|
|
* the libraries are newer
|
|
|
|
|
|
#### 5. You are ready
|
|
|
|
You are ready to run, create the user directory and configuration file [Bot Configuration](configuration.md), run the program `dry_run: True` to verify that everything is working, and run a backtest to double check.
|
|
|
|
```bash
|
|
# Prerequisite
|
|
freqtrade create-userdir --userdir user_data
|
|
|
|
# set up config file
|
|
# make sure to run it set the `dry_run : true` as you start
|
|
freqtrade new-config --config config.json
|
|
|
|
|
|
# run `dry_run` trades
|
|
freqtrade trade --strategy SampleStrategy
|
|
```
|
|
|
|
important shortcuts
|
|
|
|
```bash
|
|
# activate base environment
|
|
conda activate
|
|
|
|
# activate freqtrade-conda environment
|
|
conda activate freqtrade-conda
|
|
|
|
#deactivate any conda environments
|
|
conda deactivate
|
|
|
|
# list installed conda environments
|
|
conda env list
|
|
|
|
# activation/deactivate the venv
|
|
source ./.env/bin/activate
|
|
deactivate
|
|
```
|
|
|
|
Happy trading!
|
|
|
|
|
|
-----
|
|
## Troubleshooting
|
|
|
|
### MacOS installation error
|
|
|
|
Newer versions of MacOS may have installation failed with errors like `error: command 'g++' failed with exit status 1`.
|
|
|
|
This error will require explicit installation of the SDK Headers, which are not installed by default in this version of MacOS.
|
|
For MacOS 10.14, this can be accomplished with the below command.
|
|
|
|
```bash
|
|
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
|
|
```
|
|
|
|
If this file is inexistent, then you're probably on a different version of MacOS, so you may need to consult the internet for specific resolution details.
|
|
|
|
### MacOS installation error with python 3.9
|
|
|
|
When using python 3.9 on macOS, it's currently necessary to install some os-level modules to allow dependencies to compile.
|
|
The errors you'll see happen during installation and are related to the installation of `tables` or `blosc`.
|
|
|
|
You can install the necessary libraries with the following command:
|
|
|
|
```bash
|
|
brew install hdf5 c-blosc
|
|
```
|
|
|
|
After this, please run the installation (script) again.
|
|
|
|
-----
|
|
|
|
Now you have an environment ready, the next step is
|
|
[Bot Configuration](configuration.md).
|