Utilisation du bot Gekko: du backtesting au trading réel

Une fois Gekko installé, le véritable travail commence : en faire un outil puissant pour le trading de crypto‑monnaies en temps réel ou en simulation, étape par étape. Ce guide vous montre exactement comment faire, avec des conseils pratiques et des mises en garde tirées de l’expérience.

⚠️ Aucun bot de trading ne vous garantira des bénéfices. Ni cet article. Vos résultats dépendent entièrement de la logique de votre stratégie et du couple marché/devise que vous choisissez.

Étape 1 : Alimenter Gekko avec des données de marché

Méthode 1 : utiliser l’interface web

Avant de pouvoir backtester ou simuler des stratégies en direct, Gekko a besoin de données historiques de marché, stockées localement.

  • Allez dans le menu « Local Data ».

  • Cliquez sur « Scan available data » (ignorez l’avertissement initial, normal puisqu’aucune donnée n’est encore importée).
  • Cliquez sur « Go to the Importer » en bas de la page.

  • Sélectionnez votre plateforme, la devise et l’actif (par ex. : Kraken, EUR, ETH).
  • Choisissez une plage de dates et cliquez sur Import.

Remarque : l’importation de jeux de données volumineux peut être lente, surtout en accès anonyme — découpez les longues périodes en plusieurs portions si nécessaire et soyez prêt à procéder en plusieurs fois en cas de limites d’API.

Gekko télécharge automatiquement les données depuis Kraken et les enregistre dans sa base de données locale.

Méthode 2 : utiliser la ligne de commande

  • Copiez et modifiez le fichier de configuration de Gekko :
cd <gekko_installdir>
cp sample-config.js config.js
  • Éditez config.js avec votre éditeur préféré et activez candleWriter dans la configuration pour que Gekko puisse stocker les données :
config.candleWriter = {
   enabled: true
 }
  • Définissez la plage de dates à importer (note: format AAAA-MM-JJ HH:MM:SS) :
config.importer = {
   daterange: {
     // NOTE: these dates are in UTC
     from: "2017-11-01 00:00:00",
     to: "2017-11-20 00:00:00"
   }
 }
  • Lancez l’import :
node gekko --config config.js --import

  • Confirmez l’import via l’interface ou en vérifiant les journaux pour voir s’il y a des erreurs :

La première série de données ci-dessus est celle que nous avons importée via l’interface graphique depuis Kraken. La seconde provient de Binance (je l’ai interrompue avant d’atteindre le 20 novembre 2017). Cela est dû au fait que je n’ai pas modifié la section config.watch standard dans config.js, qui inclut un exemple pour Binance que vous pouvez également supprimer :

config.watch = {

// see https://gekko.wizb.it/docs/introduction/supported_exchanges.html
   exchange: 'binance',
   currency: 'USDT',
   asset: 'BTC',

// You can set your own tickrate (refresh rate).
   // If you don't set it, the defaults are 2 sec for
   // okcoin and 20 sec for all other exchanges.
   // tickrate: 20
 }

C’est donc dans cette section que vous devez indiquer la plateforme et la cryptomonnaie que vous souhaitez importer.

Conseils :

  • Si vous rencontrez des erreurs, consultez les journaux de la console pour plus de détails.
  • Utilisez toujours une combinaison plateforme/devise/actif valide. Consultez les plateformes prises en charge par Gekko.

Conseils avancés pour l’importation de données

Si vous devez télécharger des jeux de données massifs ou depuis plusieurs marchés, consultez les scripts communautaires dans la section « tools » du dépôt GitHub officiel de Gekko  (ou ici) pour d’éventuels outils d’importations en lot et des assistants.

Les utilisateurs avancés peuvent aussi automatiser les importations (via scripts shell/Python) ou découper de vastes plages de dates en segments plus petits.

Si vous recherchez une importation plus flexible ou souhaitez expérimenter, vous pouvez explorer des frameworks comme Freqtrade ou Zenbot, qui disposent de leurs propres outils d’importation avancée.

Étape 2 : Tester des stratégies avec des données locales: le « backtesting »

Le backtesting est la manière la plus sûre de tester si une stratégie peut fonctionner — avant de risquer quoi que ce soit sur un marché réel. Cela consiste à éprouver une stratégie, en la testant sur des données du passé, et analyser comment elle s’est comporté. Mais attention: l’éventuelle bonne performance constatée sur les données du passé, ne garantit absolument pas une bonne performance dans le futur.

Méthode 1 : utiliser l’interface web

  • Accédez au menu Backtest.
  • Cliquez sur Scan available data pour voir vos jeux de données importés (par exemple, les imports précédents depuis Kraken ou Binance).

Nous pouvons de nouveau voir les deux séries de données que nous avons importées précédemment, parfait.

  • Choisissez votre jeu de données et sélectionnez une stratégie, ici le MACD. C’est un indicateur assez standard (tout comme les autres fournis de base avec Gekko) et la stratégie qui le met en œuvre est également assez simple, comme nous le verrons dans un prochain article.

Notez que ce qui est affiché sur cet écran peut être modifié :

  1. Les stratégies dans la liste déroulante correspondent aux fichiers <gekko_installdir>/strategies/*.js (par exemple, MACD.js pour la stratégie MACD).
  2. Les paramètres à droite proviennent des fichiers <strategy_name>.toml situés dans <gekko_installdir>/config/strategies.
  3. Les paramètres de PaperTrader, que nous examinerons ci-dessous, se trouvent dans le fichier <gekko_installdir>/config/plugins/paperTrader.toml.
  • Nous changeons la taille des bougies pour 3 heures et utilisons 4 bougies d’historique pour « chauffer » la stratégie (comme on chauffe un moteur) et fournir à l’indicateur quelques données historiques.

  • Ajustez les paramètres de PaperTrader (frais, glissement (slippage), etc.) pour qu’ils correspondent à votre plateforme. Note : bien que je ne sois pas encore certain que le glissement fonctionne correctement dans Gekko, je recommande tout de même d’augmenter significativement cette valeur (ici 0.05 = 5% de variation théorique à la hausse ou à la baisse quand on passe respectivement un ordre d’achat, ou de vente pour refléter la volatilité du marché).

  • Sélectionnez le jeu de données en haut et cliquez sur Backtest.

  • Analysez les résultats affichés ci-dessous :
    • Bénéfice/perte simulé(e) par rapport à la stratégie la plus basique qui soit d’« acheter et conserver »
    • Liste des ordres, des aller-retours (un achat suivi d’une vente) et un graphique des transactions (vert = achat, rouge = vente)

Ce sont les statistiques générales. Le bénéfice simulé ici peut paraître mauvais (-24 %), mais il est en réalité meilleur que la performance standard du marché (acheter et conserver) si vous ne faites aucune opération avec votre seul actif et vos 100 unités de devise configurés dans les paramètres de PaperTrader (-41 %). On peut voir ici que la stratégie a réalisé 38 trades.

Ici nous voyons toute la période avec les ordres d’achat (points verts) et de vente (points rouges). Vous pouvez zoomer sur l’interface Gekko. Comme vous pouvez vous en douter, lorsqu’un point vert apparaît juste avant une forte chute du marché, ce n’est pas très bon, MAIS cette interprétation dépend aussi de la vision long terme et de la taille des bougies.

Enfin, vous pouvez voir ici une vue détaillée de chaque aller-retour (un achat puis une vente ou une vente puis un achat afin de calculer un PnL).

Méthode 2 : utiliser la ligne de commande

Modifiez votre fichier de configuration (config.js) pour l’ajuster :

  • Assurez-vous que la section config.tradingAdvisor est configurée comme prévu. En gros, c’est là que vous fournissez à la stratégie choisie les mêmes paramètres que nous avons vus précédemment dans l’interface. Ici, nous utilisons toujours le MACD.
config.tradingAdvisor = {
   enabled: true,
   method: 'MACD',
   candleSize: 180, //unit is minutes
   historySize: 4, //this is the historySize in the UI
 }

// MACD settings:
 config.MACD = {
   // EMA weight (α)
   // the higher the weight, the more smooth (and delayed) the line
   short: 10,
   long: 21,
   signal: 9,
   // the difference between the EMAs (to act as triggers)
   thresholds: {
     down: -0.025,
     up: 0.025,
     // How many candle intervals should a trend persist
     // before we consider it real?
     persistence: 1
   }
 };
  • Assurez-vous que paperTrader est activé, afin de simuler les ordres.
config.paperTrader = {
   enabled: true,
   // report the profit in the currency or the asset?
   reportInCurrency: true,
   // start balance, on what the current balance is compared with
   simulationBalance: {
     // these are in the unit types configured in the watcher.
     asset: 1,
     currency: 100,
   },
   // how much fee in % does each trade cost?
   feeMaker: 0.16,
   feeTaker: 0.26,
   feeUsing: 'taker',
   // how much slippage/spread should Gekko assume per trade?
   slippage: 0.05,
 }
  • Et le performanceAnalyser doit également être activé :
config.performanceAnalyzer = {
   enabled: true,
   riskFreeReturn: 5
 }
  • Modifiez la section config.watch pour utiliser le jeu de données de Kraken :
config.watch = {

// see https://gekko.wizb.it/docs/introduction/supported_exchanges.html
   exchange: 'kraken',
   currency: 'EUR',
   asset: 'ETH',

// You can set your own tickrate (refresh rate).
   // If you don't set it, the defaults are 2 sec for
   // okcoin and 20 sec for all other exchanges.
   // tickrate: 20
 }
  • Enfin, modifiez la plage temporelle à utiliser. L’option « scan » fera en sorte que Gekko utilise toute la période disponible dans le jeu de données. Si vous souhaitez réduire la période, commentez simplement la ligne daterange: 'scan' et décommentez puis ajustez les 4 lignes suivantes.
config.backtest = {
   daterange: 'scan',
   // daterange: {
   //   from: "2018-03-01",
   //   to: "2018-04-28"
   //},
   batchSize: 50
 }

Lancez le backtest :

node gekko --config config.js --backtest

Consultez les résultats dans votre terminal ou vos journaux.

À lire ensuite :

Étape 3 : Simuler votre stratégie sur un marché réel (« paper trading »)

Le paper trading vous permet de tester votre stratégie dans des conditions de marché réelles — sans risquer de l’argent. C’est la méthode intermédiaire avant de lancer votre bot « dans la vraie vie »: on éprouve une stratégie sur une copie du marché réel, en passant des ordres uniquement sur la copie du marché, pour regarder ce que serait devenu votre investissement de départ. C’est essentiel pour valider votre stratégie avant de passer en production.

Méthode 1 : utiliser l’interface web

  • Dans l’interface, cliquez sur le menu supérieur « Live Gekkos ».
    • Les « Market watchers » sont des modules déjà lancés et en cours d’exécution qui recueillent et enregistrent des données en direct pour les marchés que vous configurerez pour chaque Live Gekko.
    • Les « strat runners » sont les modules PaperTrader en cours d’exécution : ils analysent le marché et utilisent la stratégie que vous avez définie sur ces données pour vous fournir un retour sur les ordres simulés et leurs résultats.

  • Cliquez sur le bouton bleu « Start a new live Gekko! »
  • Configurez le marché que vous souhaitez utiliser,
  • Assurez-vous de choisir « Paper Trader » à droite (et non TradeBot !) pour simuler les transactions,
  • Choisissez la stratégie désirée, puis configurez la taille des bougies et la période d’échauffement,
  • Pour la stratégie choisie, modifiez ses paramètres.

  • Configurez les frais de Kraken dans les options Paper Trader ci‑dessous, ainsi que le slippage.

  • Démarrez le bot de paper trading.

Vous verrez les données s’accumuler (laissez passer le temps de préchauffage, selon le temps que vous lui avez accordé).

  • Retournez sur la page « Live Gekkos » pendant qu’il s’échauffe.

Ici, je pense que l’on peut voir un petit bug dans l’interface : elle indique que la durée depuis le lancement du Market Watcher (qui a été lancé automatiquement par Gekko) est de 2h32, ce qui est erroné. Je pense qu’il y a un décalage entre l’heure UTC et l’heure locale pour calculer la durée. Pas un gros problème.

  • Surveillez en direct : l’interface affiche les achats/ventes simulés, le PnL (profit and loss – profit et perte), le nombre de transactions et la durée d’exécution.

Vous pouvez cliquer sur chaque bot en cours d’exécution pour afficher les détails, les journaux et les visualisations. Après quelques minutes…

  • Vous pouvez également consulter manuellement les logs de Gekko sur le système de fichiers :
cd <gecko_installdir>/logs
ls -al
tail -f *

Je vais maintenant arrêter ce test (il suffit de cliquer sur le gros bouton rouge dans la section Strat runner) et passer à la ligne de commande pour le lancer manuellement, car je préfère ne pas dépendre d’une interface graphique pour effectuer des opérations.

Méthode 2 : utiliser la ligne de commande

  • Avec un fichier config.js correct (voir l’étape précédente), lancez une instance en mode paper trading :
    • Laissez config.paperTrader.enabled = true
node gekko --config config.js

  • Il est préférable de faire tourner le bot en arrière‑plan en utilisant pm2 pour plus de fiabilité :

Comme l’exécution d’un bot en direct est censée être une activité longue, je ne veux pas dépendre de mon terminal (qui pourrait se fermer par inadvertance) et je veux qu’il tourne en arrière‑plan, en utilisant pm2. Je pourrai toujours consulter et analyser les journaux pour comprendre ce qui se passe.

rm logs/*
pm2 start gekko.js --name TESTBOT_MACD -e logs/err.log -o logs/out.log -- --config config.js

  • Les logs peuvent être surveillés de deux façons:
pm2 logs TESTBOT_MACD
tail -f logs/*

Étape 4 : Passer en direct – Trading réel avec Gekko

Après des backtests approfondis et du paper trading, vous pouvez activer de véritables ordres, sur votre plateforme d’échange. Cette étape implique de l’argent réel — rappelez vous des avertissements précédents et soyez prêts à -probablement- perdre tout ou partie de votre investissement initial  !

Méthode 1 : en utilisant l’interface web

  • Configurez une clé API pour accéder à un compte Kraken réel (ou toute autre plateforme que vous utilisez).

  • Allez dans « Live Gekkos », lancez un nouveau bot et cette fois choisissez Tradebot (au lieu de Paper Trader).

Rappelez‑vous que même avec de bons résultats de backtest, ces résultats ne sont garantis que sur des données PASSÉES, pas sur les données NOUVELLES des marchés en direct. Par conséquent, même avec une très bonne stratégie sur des données historiques, vous pourriez avoir une stratégie très mauvaise sur des données nouvelles (c’est ce qu’on appelle le surapprentissage).

  • Cliquez sur le bouton bleu « Start ».

    Gekko récupérera vos soldes et positions réels pour le compte choisi.

    Dès que votre bot est en fonctionnement, il peut déclencher de véritables ordres d’achat/de vente — soyez absolument certain que votre configuration est correcte !

Important:

  • N’utilisez jamais les stratégies standard directement pour le trading en direct. Même de bons résultats en backtest ne garantissent pas la performance future (les conditions de marché évoluent, risque de surapprentissage, etc.).
  • Commencez avec des fonds minimaux pour vos premiers essais en conditions réelles.

Méthode 2 : en utilisant la ligne de commande

  • Désactivez le paper trading et activez le mode live trader avec votre clé API et son secret:
config.paperTrader = { enabled: false };
config.trader = {
  enabled: true,
  key:      'YOUR_API_KEY',
  secret:   'YOUR_SECRET',
  username: '', // Only if your exchange uses it (e.g., GDAX)
  passphrase: '' // For exchanges like Coinbase Pro
};

  • Exécutez Gekko en mode standard :
node gekko --config config.js

Ou bien, comme vu plus haut, utilisez pm2 à nouveau (fortement recommandé pour l’indépendance vis à vis du terminal).

  • Surveillez de près les logs et soyez prêt à intervenir ou à arrêter au moindre signe d’anomalie.

Conclusion et rappels finaux

Vous avez désormais utilisé l’ensemble du flux de travail Gekko — de l’import initial des données, à des backtests rigoureux, en passant par le paper trading et enfin la mise en production. Chaque étape vous aide à valider, tester et affiner vos stratégies avant de risquer des fonds réels.


Rappels de sécurité et de gestion des risques

  • Protégez toujours vos clés API et ne les partagez jamais — utilisez la liste blanche d’adresses IP ou les outils de sécurité de la plateforme d’échange autant que possible.
  • N’utilisez jamais les stratégies par défaut ou non testées pour le trading en direct ; effectuez des backtests et du paper trading à répétition dans des conditions de marché réelles.
  • N’oubliez pas que même de bons résultats sur des données passées ne garantissent pas des profits futurs (attention au surapprentissage).
  • Surveillez attentivement votre bot en direct et soyez prêt à mettre en pause ou à intervenir au premier signe de problème.

Bonnes pratiques avant de passer en direct

  • Commencez avec de petites sommes — considérez vos premiers essais en direct … comme des essais.
  • Utilisez l’environnement « bac à sable » / test de votre plateforme d’échange si disponible.
  • Sauvegardez vos fichiers de configuration, vos logs et vos jeux de données historiques (un simple tar ou rsync de vos dossiers Gekko).
  • Pensez aux solutions de surveillance (par ex. des tableaux de bord dédiés, alertes de logs, scripts de surveillance de serveur) — consultez mes autres articles sur l’automatisation pour vous inspirer.

Envie de plus ?

Envie d’aller plus loin ? Explorez ceci :


Votre expérience compte pour la communauté — partagez votre configuration, vos résultats, vos bugs ou vos suggestions dans les commentaires ! Plus nous testons et partageons, plus Gekko et les outils open source s’améliorent pour tout le monde.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *


La période de vérification reCAPTCHA a expiré. Veuillez recharger la page.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.