Back
Featured image of post Installation de FreqTrade

Installation de FreqTrade

Tutoriel pour installer le bot FreqTrade permettant d'automatiser le trading de crypto

FreqTrade

Freqtrade est un logiciel de trading de crypto open source. Avec Freqtrade, nous pouvons créer des bots de trading entièrement personnalisables, faire des backtests etc.

Le logiciel est développé en python, permettant de facilement créer ses propres bots pour qui connaît le langage.

Prérequis

Il est possible d’installer freqtrade via docker, un docker-composer est mis Ă  disposition. Mais je trouve que ça n’apporte absolument rien si ce n’est de l’opacitĂ© donc j’ai choisi l’installation dans un VirtualEnv.

sudo apt install git python3 python3-pip python3-venv

Installation

git clone https://github.com/freqtrade/freqtrade.git  
cd freqtrade  
git checkout stable
sudo ./setup.sh -i

Ensuite, quand vous souhaiterez intéragir avec le freqtrade, il faudra penser à entrer le VirtualEnv.

source ./.env/bin/activate

Configuration

  • Entrer dans le Venv si ce n’est pas dĂ©jĂ  fait.
source ./.env/bin/activate
  • CrĂ©er la configuration initiale
freqtrade new-config --config user_data/config.json

Plusieurs questions vous sont posées, peremttant de renseigner le fichier config.json modifiable plus tard.

# Activer le mode simulation (vaut mieux au début afin de choisir sa stratégie)
? Do you want to enable Dry-run (simulated trades)? Yes

# Devise avec laquelle on passera nos ordres (BTC conseillé car on peut acheter quasiement toutes les crypto avec)
? Please insert your stake currency: BTC

# Montant dédié au bot (ATTENTION à pas oublier un 0...)
? Please insert your stake amount: 0.00181

# Nombre de transations ouvertes simultanées
? Please insert max_open_trades (Integer or 'unlimited'): 3

# PĂ©riode sur laquelle on veut que le bot joue (lĂ  en gros il checkera les variations sur 5 minutes)
? Please insert your desired timeframe (e.g. 5m): 5m

# Devise dans laquelle afficher les reports
? Please insert your display Currency (for reporting): USD

# Choix de la plateforme d'exchange
? Select exchange kraken

# Utilisation de Telegram ou non (vraiment interressant Ă  utiliser !)
? Do you want to enable Telegram? Yes
? Insert Telegram token **********************************************
? Insert Telegram chat id 123456789

Plateforme d’exchange

Il faut gĂ©nĂ©rer une pair de clĂ© d’API sur votre plateforme d’exchange, puis la renseigner dans le fichier user_data/config.json.

Exemple pour Kraken : Documentation Kraken Lisez aussi ça qui donne des tips selon l’exchange : Documentation freqtrade

vi user_data/config.json

# Exemple pour kraken
"exchange": {
        "name": "kraken",
        "key": "****************************************",
        "secret": "********************",
        "ccxt_config": {"enableRateLimit": true},
        "ccxt_async_config": {
            "enableRateLimit": true,
            "rateLimit": 3100
        },

Configuration des indices

Il faut dĂ©finir les paires d’indices que l’ont va trader. Sinon on peut aussi laisser le bot de dĂ©brouiller en dynamique.

Statique

vi user_data/config.json

# Exemple d'une paires d'indices définis manuellement
"pair_whitelist": [
            "NANO/BTC",
            "XDG/BTC",
            "XRP/BTC",
            "TRX/BTC"
        ],

Dynamique

vi user_data/config.json

# Avec cela, le bot selectionne les 20 premiers indices en terme de volume
"pairlists": [{
        "method": "VolumePairList",
        "number_assets": 20,
        "sort_key": "quoteVolume",
        "refresh_period": 1800,
    }]

Il est possible d’indiquer plusieurs stratĂ©gie de choix dynamique, c’est indiquĂ© dans la doc si interessĂ©.

Stratégies

Quelques exemples de la communautĂ© existent, vous pouvez vous en servir ou alors s’en servir comme base pour vos propores stratĂ©gies.

git clone https://github.com/freqtrade/freqtrade-strategies
mv freqtrade-strategies/user_data/strategies/berlinguyinca/* user_data/strategies/

Backtest

Cela permet de tester nos stratégie sur le marché passé, à faire systématiquement avant de passer le bot en production.

# Data download for "1m" and "5m" timeframes
freqtrade download-data

# Data download for "1h" timeframe
freqtrade download-data -t 1h

Ensuite si on veut tester toutes nos stratégies, ça donne :

freqtrade backtesting  --strategy-list ADXMomentum ClucMay72018 MACDStrategy_crossed Simple AdxSmas CMCWinner MACDStrategy ASDTSRockwellTrading CofiBitStrategy SmoothScalp AverageStrategy CombinedBinHAndCluc DoesNothingStrategy Quickie BbandRsi EMASkipPump ReinforcedQuickie  --ticker-interval=5m


================================================================== STRATEGY SUMMARY ==================================================================
|             Strategy |   Buys |   Avg Profit % |   Cum Profit % |   Tot Profit BTC |   Tot Profit % |   Avg Duration |   Wins |   Draws |   Losses |
|----------------------+--------+----------------+----------------+------------------+----------------+----------------+--------+---------+----------|
|          ADXMomentum |    216 |          -0.33 |         -71.99 |      -0.00130509 |          -0.00 |        1:25:00 |    139 |       0 |       77 |
|         ClucMay72018 |      6 |          -0.05 |          -0.31 |      -0.00000565 |          -0.00 |        0:06:00 |      5 |       0 |        1 |
| MACDStrategy_crossed |     10 |           1.24 |          12.39 |       0.00022469 |           0.00 |       10:10:00 |     10 |       0 |        0 |
|               Simple |    143 |           0.10 |          13.94 |       0.00025265 |           0.00 |        3:00:00 |    112 |       0 |       31 |
|              AdxSmas |    107 |          -0.57 |         -60.99 |      -0.00110553 |          -0.00 |        3:04:00 |     35 |       0 |       72 |
|            CMCWinner |     41 |           0.04 |           1.51 |       0.00002733 |           0.00 |        3:54:00 |     25 |      14 |        2 |
|         MACDStrategy |     43 |           0.18 |           7.62 |       0.00013817 |           0.00 |        8:06:00 |     31 |       0 |       12 |
| ASDTSRockwellTrading |    318 |          -0.10 |         -31.00 |      -0.00056192 |          -0.00 |        0:40:00 |    105 |       0 |      213 |
|      CofiBitStrategy |    112 |          -0.11 |         -11.87 |      -0.00021514 |          -0.00 |        0:24:00 |     40 |       0 |       72 |
|          SmoothScalp |     26 |           0.03 |           0.66 |       0.00001196 |           0.00 |        1:49:00 |     17 |       0 |        9 |
|      AverageStrategy |    223 |          -0.14 |         -30.91 |      -0.00056040 |          -0.00 |        1:31:00 |     57 |       0 |      166 |
|  CombinedBinHAndCluc |     19 |           1.48 |          28.19 |       0.00051104 |           0.00 |        0:41:00 |     13 |       0 |        6 |
|  DoesNothingStrategy |      0 |           0.00 |           0.00 |       0.00000000 |           0.00 |           0:00 |      0 |       0 |        0 |
|              Quickie |     21 |           0.90 |          18.90 |       0.00034259 |           0.00 |       17:30:00 |     20 |       0 |        1 |
|             BbandRsi |     47 |           0.44 |          20.87 |       0.00037833 |           0.00 |        6:05:00 |     29 |       0 |       18 |
|          EMASkipPump |    115 |           0.08 |           9.61 |       0.00017417 |           0.00 |        2:54:00 |     60 |       0 |       55 |
|    ReinforcedQuickie |     43 |          -0.12 |          -5.05 |      -0.00009151 |          -0.00 |        3:50:00 |     35 |       0 |        8 |
======================================================================================================================================================

Hyperopt

TODO

Exécution du bot

freqtrade trade --strategy BbandRsi

Run as a service

Afin d’Ă©xĂ©cuter le bot comme un service en arrière plan, nous pouvons utiliser systemd.

2 exemples sont fournis :

  • Un service freqtrade standard
  • Un service freqtrade + Watchdog
# Copier l'exemple de service depuis le dépôt
cp freqtrade.service /etc/system/systemd/

#ou
cp freqtrade.service.watchdog /etc/system/systemd/

# Modifier les champs WorkingDirectory and ExecStart (indiquer le chemin absolu du binaire de freqtrade du virtualenv)
vi /etc/system/systemd/freqtrade.service

# Activer puis démarrer le service
systemctl enable freqtrade
systemctl start freqtrade

Controle du bot

Systemd

Rien de particulier.

systemctl status|stop|start|restart freqtrade.service
journalct -f -t freqtrade

Telegram

La configuration du bot Telegram est bien détaillée dans la documentation FreqTrade.

Généré avec Hugo
Thème Stack conçu par Jimmy