Aller au contenu

Exécuter un cBot en continu

Un cBot qui ne fonctionne que lorsque votre ordinateur portable est allumé n’est guère utile si la séance commence à 3 h du matin. Ce guide explique comment consulter les paramètres d’un cBot, le démarrer sur un serveur distant, vérifier qu’il fonctionne et l’arrêter proprement à la fin de la séance.

Astuce

Définissez une seule fois vos informations d’identification dans des variables shell. Toutes les commandes interactives ci-dessous réutilisent ces variables, ce qui simplifie les étapes et facilite la réutilisation du script.

export CTID=letstrade
export ACC=7654321
export PWD_FILE=$HOME/.ctrader/pwd

1. Consulter les paramètres du cBot

metadata répertorie les noms et les types de paramètres acceptés par le cBot. Vous savez ainsi quelles options transmettre à run ou quelles clés inscrire dans un fichier .cbotset. metadata est une commande en mode batch qui accepte directement --ctid et --pwd-file.

ctrader-cli metadata --ctid=$CTID --pwd-file=$PWD_FILE $ALGO

2. Créer un jeu de paramètres enregistré

Un fichier .cbotset est un fichier texte contenant une paire key=value par ligne. Il est plus facile à modifier et à réutiliser qu’une longue ligne de commande.

cat > mycbot.cbotset <<'EOF'
SlowPeriods=20
StopLossPips=30
TakeProfitPips=60
EOF

Utilisez les noms des paramètres affichés par metadata à l’étape 1.

3. Démarrer le cBot sur un VPS

run est une commande qui peut fonctionner aussi bien en mode batch qu’en mode interactif. En mode batch (sans -q), la commande accepte directement --ctid et --pwd-file sans utiliser -q. La CLI reste active jusqu’à l’arrêt du cBot. Exécutez-la sur le VPS sous la supervision d’un gestionnaire de processus (systemd, tmux, screen, l’image Docker officielle ou --exit-on-stop).

ctrader-cli run --ctid=$CTID --pwd-file=$PWD_FILE \
    --account=$ACC $ALGO mycbot.cbotset --symbol=EURUSD --period=h1 --exit-on-stop

--exit-on-stop indique au processus CLI de se terminer lorsque le cBot s’arrête, afin de faciliter la supervision par systemd ou Docker.

Pour une exécution prolongée sur un serveur, lancez la même commande dans l’image Docker officielle de cTrader CLI. L’image accepte les mêmes options et réagit aux mêmes signaux d’arrêt. Le guide Docker complet figure dans l’article cBots.

4. Vérifier que le cBot fonctionne

Depuis un second terminal, cbots répertorie toutes les instances de cBot actuellement actives sur le compte. Le résultat inclut l’identifiant de l’instance nécessaire pour l’étape suivante.

ctrader-cli cbots --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q

5. Consulter les cours en temps réel pendant l’exécution du cBot

Pendant le fonctionnement du cBot, price permet de consulter le marché depuis un autre terminal, sans perturber l’instance en cours.

ctrader-cli price --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q --symbol=EURUSD

6. Arrêter le cBot à la fin de la séance

stop met fin à l’instance désignée par son identifiant. Récupérez cet identifiant dans le résultat de cbots à l’étape 4.

ctrader-cli stop --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
    --instance=13579246

Si vous avez lancé la CLI dans le shell interactif, ajoutez all et yes pour arrêter simultanément toutes les instances actives : stop all yes.

7. Regrouper les étapes dans un script de gestion

Enregistrez la séquence complète sous le nom start-cbot.sh et lancez-la depuis systemd, une tâche cron ou un pipeline de déploiement. Le script enregistre le jeu de paramètres, démarre le cBot en arrière-plan, attend la vérification puis affiche l’identifiant de l’instance pour une utilisation ultérieure.

#!/usr/bin/env bash
set -euo pipefail

CTID=letstrade
ACC=7654321
PWD_FILE=$HOME/.ctrader/pwd
ALGO=/opt/mycbot.algo
SYMBOL=EURUSD
PERIOD=h1

cat > /opt/mycbot.cbotset <<'EOF'
SlowPeriods=20
StopLossPips=30
TakeProfitPips=60
EOF

nohup ctrader-cli run --ctid=$CTID --pwd-file=$PWD_FILE \
    --account=$ACC $ALGO /opt/mycbot.cbotset --symbol=$SYMBOL --period=$PERIOD --exit-on-stop \
    > /var/log/mycbot.log 2>&1 &

sleep 10
ctrader-cli cbots --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q

Pour arrêter l’instance plus tard, exécutez l’appel stop correspondant à l’étape 6. L’identifiant de l’instance reste identique entre les appels à cbots : enregistrez-le une fois, puis réutilisez-le.

La documentation de référence de cTrader CLI présente toutes les options disponibles pour les commandes utilisées dans cette procédure.

Avertissement

cTrader CLI est un outil de trading et d’automatisation. Il ne fournit aucun conseil financier, juridique ou fiscal, ni aucun conseil en investissement. Les commandes qui placent ou modifient des ordres peuvent déclencher des trades réels et entraîner des pertes. Vérifiez chaque commande avant de l’exécuter, testez-la d’abord sur un compte de démo et protégez vos informations d’identification.