Aller au contenu

Exécuter des commandes cTrader CLI

Cet article explique la structure des commandes cTrader CLI, le fonctionnement de l’authentification et la consultation des données de compte, des prix et de l’historique.

Structure des commandes

Toutes les commandes cTrader CLI suivent la même structure :

ctrader-cli <command> [arguments] [options]
  • Les options commencent par un préfixe. -- correspond à la forme longue et - à la forme courte (--symbol et -s sont équivalents).
  • Les valeurs des options sont séparées par un espace ou un signe égal. Les deux formes --symbol EURUSD et --symbol=EURUSD sont valides.
  • Les arguments sont des valeurs positionnelles sans préfixe. Le chemin d’accès à un fichier .algo est un argument.
  • Les valeurs contenant des espaces doivent être placées entre guillemets simples ou doubles, par exemple '/opt/my cbots/trend cbot.algo'. Utilisez le même type de guillemets de manière cohérente au sein d’une commande.

Authentification

cTrader CLI utilise deux modes d’authentification. Tous deux s’appuient sur le fichier d’identifiants préparé lors de la configuration.

Mode Options requises Commandes courantes
Traitement par lots --ctid et --pwd-file periods, accounts, symbols, metadata, run, backtest
Interactif --ctid, --password ou --pwd-file et -q account, orders, price, candles, positions, exposure, alerts, commandes d’indicateurs

Remarque

Les commandes exécutées en mode traitement par lots refusent l’option --password. Les commandes interactives acceptent --password ou --pwd-file.

Les commandes accounts, symbols, metadata, run et backtest existent dans les deux modes. Selon les options fournies, elles s’exécutent en mode par lots ou en mode interactif :

  • Mode traitement par lots – lit les identifiants depuis --pwd-file (ou --broker) et s’exécute sans interaction.
  • Mode interactif – utilise --password et -q (ou toute option propre à la commande) et s’exécute comme un appel interactif.

Identifiants de période

De nombreuses commandes acceptent une valeur --period. Exécutez ctrader-cli periods pour afficher tous les identifiants acceptés. Ces identifiants couvrent les minutes, heures, jours, semaines et mois, ainsi que les ticks, Renko, barres de range et variantes Heikin Ashi. La casse des caractères n’a aucune importance.

Unités de volume

L’option --volume accepte les unités de la devise de base ou les lots. Utilisez --volume-type=units (par défaut) ou --volume-type=lots pour choisir l’unité du volume. Pour la plupart des paires Forex, 100 000 unités correspondent à un lot standard.

Avec --volume-type=lots Unités de l’actif de base
--volume=1 100 000
--volume=0.1 10 000
--volume=0.01 1 000

Avertissement

Pour les métaux, les indices et les cryptomonnaies, la taille des lots varie selon le symbole. Une même valeur --volume=1 peut donc ouvrir une position plus importante que prévu. Vérifiez la valeur lotSize du symbole avant de trader :

ctrader-cli symbol --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567 -q --symbol=XAUUSD

Par exemple, si XAUUSD a une valeur lotSize: 100, alors --volume=1 --volume-type=lots ouvre une position de 100 unités.

Dates et heures

Toutes les dates et heures utilisées par cTrader CLI sont en UTC. La CLI n’utilise jamais le fuseau horaire local de votre ordinateur ni l’heure du serveur du courtier.

L’UTC s’applique aux sorties des commandes et aux dates saisies comme suit :

  • Sortie : tous les horodatages des résultats JSON sont exprimés en UTC au format ISO 8601 avec Z, par exemple 2026-10-08T14:05:00.000Z.
  • Commandes interactives (candles, deals, orders-history et backtest exécuté avec -q) : --from et --to n’acceptent qu’une date, au format yyyy-MM-dd, dd/MM/yyyy, dd-MM-yyyy ou yyyy/MM/dd. Cette date correspond à un jour calendaire en UTC.
    • Pour deals et orders-history, --to inclut toute la journée, jusqu’à 23:59:59 UTC.
    • Pour candles, --to correspond au début de la journée (00:00 UTC). Pour inclure une journée entière, définissez --to sur le jour suivant.
    • Sans --from / --to, le backtest interactif couvre les 7 derniers jours.
  • Commandes exécutées en mode traitement par lots (backtest et autres) : les dates utilisent le format dd/MM/yyyy, éventuellement suivi d’une heure au format 24 heures dd/MM/yyyy HH:mm, par exemple 31/12/2026 18:00, toujours en UTC.

La seule exception concerne un cBot en cours d’exécution (run, backtest). Son heure suit le paramètre TimeZone défini dans le cBot, comme dans cTrader Algo.

Consulter les données de compte et de marché

La commande ctrader-cli periods ne nécessite ni compte ni identifiants. Elle constitue donc un bon premier test.

ctrader-cli periods

Listez les comptes de trading associés à votre cTrader ID :

ctrader-cli accounts --ctid=letstrade --pwd-file=C:/test/password.pwd

Une fois le numéro de compte obtenu, listez les symboles disponibles sur ce compte :

ctrader-cli symbols --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567

Consultez le prix actuel d’un symbole et récupérez les bougies historiques dans un script :

ctrader-cli price --ctid=letstrade --password=secret --account=1234567 -q --symbol=EURUSD
ctrader-cli candles --ctid=letstrade --password=secret --account=1234567 -q --symbol=EURUSD --period=h1 --count=200 > eurUSD_h1.json

Limites de l’historique

deals et orders-history appliquent les limites d’historique suivantes :

  • La CLI charge toute la période définie par --from et --to, sans limitation de durée.
  • Un seul appel renvoie au maximum les 200 dernières transactions (deals) ou les 500 derniers ordres (orders-history) de la période.
  • Sans --from ni --to, les deux commandes ne renvoient que les 30 derniers jours.
  • --count définit le nombre d’enregistrements à renvoyer :

    • 50 par défaut et jusqu’à 200 pour deals.
    • 100 par défaut et jusqu’à 500 pour orders-history.

--count est ignoré si --from ou --to est fourni. L’appel renvoie alors jusqu’au nombre maximal d’enregistrements.

Si une plage contient plus d’enregistrements qu’un seul appel ne peut en renvoyer, divisez-la en plages plus courtes et exécutez la commande pour chacune.

Pour déterminer si les résultats ont été tronqués, examinez la sortie :

  • orders-history : la sortie contient les champs available et returned. Si available est supérieur à returned, d’autres ordres sont présents dans la plage.
  • deals : si count est exactement égal à 200, il se peut que la plage contienne davantage de trades.

Actions groupées dans le shell interactif

Dans le shell interactif, plusieurs commandes acceptent les arguments finaux all et yes pour effectuer une action groupée sans demander de confirmation.

Commande Syntaxe avec all et yes à la fin
order cancel order cancel all yes
position close position close all yes
stop stop all yes
alert delete alert delete all yes

Exécuter des commandes en mode interactif

Exécutez ctrader-cli sans préciser de commande pour ouvrir le shell interactif. À l’invite, connectez-vous avec votre cTID et votre mot de passe, puis saisissez plusieurs commandes successivement sans avoir à fournir de nouveau vos identifiants. Ce mode est pratique lorsque vous souhaitez exécuter plusieurs commandes à la suite.

Pour exécuter une seule commande et quitter immédiatement, ajoutez -q. Cette option est utile dans les scripts, car le processus doit se terminer dès que la commande a fini de s’exécuter.

Deux options permettent de découvrir les fonctionnalités prises en charge par la CLI.

Option Fonction
--help Lister les options globales et les différentes syntaxes de lancement.
--commands Lister toutes les commandes interactives et leurs formes positionnelles, sans authentification.

Si votre cTrader ID est associé à des comptes de plusieurs courtiers portant le même numéro de compte, ajoutez --broker=<broker-name> pour lever l’ambiguïté.

Erreurs courantes

Symptôme Cause probable Étape suivante
ctrader-cli: command not found La CLI n’est pas accessible via votre PATH. Rouvrez le terminal ou suivez les étapes d’installation manuelle du guide de configuration.
Parameter password is not allowed Vous avez fourni --password à une commande exécutée en mode traitement par lots. Utilisez plutôt --pwd-file ; la règle complète figure dans le guide de configuration.
Account cannot be found Le numéro de compte correspond à plusieurs comptes chez différents courtiers. Ajoutez --broker=<broker-name>.
Unknown symbol name Le nom du symbole est incorrect ou n’est pas pris en charge. Exécutez symbols et utilisez le nom exact indiqué dans la sortie.
Unknown period L’identifiant de période est incorrect. Exécutez periods pour afficher tous les identifiants acceptés.

Remarque

Pour consulter toutes les options, leurs valeurs par défaut et leurs descriptions complètes, reportez-vous à la documentation de référence CLI.