Vai al contenuto

Eseguire i comandi di cTrader CLI

Questo articolo spiega come sono strutturati i comandi di cTrader CLI, come funziona l’autenticazione e come consultare i dati dei conti, i prezzi e la cronologia.

Struttura dei comandi

Tutti i comandi di cTrader CLI seguono la stessa struttura:

ctrader-cli <command> [arguments] [options]
  • Le opzioni iniziano con un prefisso. -- indica la forma lunga e - quella breve (--symbol e -s sono equivalenti).
  • I valori delle opzioni sono separati da uno spazio o dal segno di uguale. Sia --symbol EURUSD sia --symbol=EURUSD sono validi.
  • Gli argomenti sono valori posizionali senza prefisso. Il percorso di un file .algo è un argomento.
  • I valori che contengono spazi devono essere racchiusi tra apici singoli o doppi, ad esempio '/opt/my cbots/trend cbot.algo'. Utilizza lo stesso tipo di apici in modo coerente all’interno di un comando.

Autenticazione

cTrader CLI prevede due modalità di autenticazione. Entrambe utilizzano il file delle credenziali che prepari durante la configurazione.

Modalità Opzioni richieste Comandi tipici
Batch --ctid e --pwd-file periods, accounts, symbols, metadata, run, backtest
Interattiva --ctid, --password o --pwd-file e -q account, orders, price, candles, positions, exposure, alerts, comandi degli indicatori

Nota

I comandi batch non accettano --password. I comandi interattivi accettano sia --password sia --pwd-file.

I comandi accounts, symbols, metadata, run e backtest, presenti in entrambe le modalità, vengono eseguiti in modalità batch o interattiva in base alle opzioni specificate:

  • Modalità batch – legge le credenziali da --pwd-file e, se necessario, specifica il broker con --broker. Viene eseguita senza interazione.
  • Modalità interattiva – utilizza --password e -q (o qualsiasi opzione specifica del comando) ed esegue una chiamata interattiva.

Identificatori dei periodi

Molti comandi accettano un valore --period. Esegui ctrader-cli periods per elencare tutti gli identificatori accettati. Gli identificatori comprendono minuti, ore, giorni, settimane e mesi, oltre a tick, Renko, barre range e varianti Heikin Ashi. Non viene fatta distinzione tra maiuscole e minuscole.

Unità di volume

--volume accetta sia unità della valuta di base sia lotti. Utilizza --volume-type=units (predefinito) oppure --volume-type=lots per specificare l’unità di misura del volume. Per la maggior parte delle coppie Forex, 100.000 unità corrispondono a un lotto standard.

Con --volume-type=lots Unità dell’attività di base
--volume=1 100.000
--volume=0.1 10.000
--volume=0.01 1.000

Avvertenza

Per metalli, indici e criptovalute, la dimensione dei lotti varia in base al simbolo. Di conseguenza, lo stesso valore --volume=1 potrebbe aprire una posizione più grande del previsto. Prima di fare trading, controlla il valore lotSize del simbolo:

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

Ad esempio, se XAUUSD ha lotSize: 100, --volume=1 --volume-type=lots apre una posizione di 100 unità.

Date e orari

Tutte le date e gli orari di cTrader CLI sono espressi in UTC. La CLI non utilizza mai il fuso orario locale del computer né l’ora del server del broker.

L’UTC si applica all’output dei comandi e alle date inserite nel modo seguente:

  • Output: tutti gli orari nell’output JSON sono in UTC, nel formato ISO 8601 con Z, ad esempio 2026-10-08T14:05:00.000Z.
  • Comandi interattivi (candles, deals, orders-history e backtest eseguito con -q): --from e --to accettano solo una data, nel formato yyyy-MM-dd, dd/MM/yyyy, dd-MM-yyyy o yyyy/MM/dd. La data indica un giorno di calendario in UTC.
    • Per deals e orders-history, --to include l’intera giornata, fino alle 23:59:59 UTC.
    • Per candles, --to indica l’inizio della giornata (00:00 UTC). Per includere una determinata giornata, imposta --to sul giorno successivo.
    • Senza --from / --to, il comando interattivo backtest copre gli ultimi 7 giorni.
  • Comandi batch (backtest e altri): le date utilizzano il formato dd/MM/yyyy, eventualmente con un orario in formato 24 ore dd/MM/yyyy HH:mm, ad esempio 31/12/2026 18:00, sempre in UTC.

L’unica eccezione riguarda un cBot in esecuzione (run, backtest). Il suo orario segue l’impostazione TimeZone del cBot, come in cTrader Algo.

Consultare i dati dei conti e di mercato

ctrader-cli periods non richiede un conto né credenziali ed è quindi un buon primo test.

ctrader-cli periods

Elenca i conti di trading collegati al tuo cTrader ID:

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

Dopo aver ottenuto il numero di conto, elenca i simboli disponibili per quel conto:

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

Consulta il prezzo corrente di un simbolo e recupera le candele storiche tramite uno 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

Limiti della cronologia

I comandi deals e orders-history prevedono i seguenti limiti per la cronologia:

  • La CLI carica l’intero intervallo definito da --from e --to, senza limiti di durata.
  • Una singola chiamata restituisce al massimo le ultime 200 operazioni (deals) o gli ultimi 500 ordini (orders-history) dell’intervallo.
  • Senza --from e --to, entrambi i comandi restituiscono soltanto i dati degli ultimi 30 giorni.
  • --count imposta il numero di record da restituire:

    • 50 per impostazione predefinita, fino a un massimo di 200 per deals.
    • 100 per impostazione predefinita, fino a un massimo di 500 per orders-history.

Se specifichi --from o --to, --count viene ignorato e la chiamata restituisce fino al numero massimo di record.

Se un intervallo contiene più record di quanti ne restituisca una singola chiamata, suddividilo in intervalli più brevi ed esegui il comando per ciascuno.

Per verificare se i risultati sono stati troncati, controlla l’output:

  • orders-history: l’output contiene i campi available e returned. Se available è maggiore di returned, nell’intervallo sono presenti altri ordini.
  • deals: se count è esattamente 200, nell’intervallo potrebbero esserci altre operazioni.

Azioni in blocco nella shell interattiva

Nella shell interattiva, diversi comandi accettano all e yes alla fine per eseguire operazioni in blocco senza richiedere conferma.

Comando Forma con all e yes alla fine
order cancel order cancel all yes
position close position close all yes
stop stop all yes
alert delete alert delete all yes

Eseguire comandi in modalità interattiva

Esegui ctrader-cli senza specificare alcun comando per aprire la shell interattiva. Quando richiesto, accedi con il tuo cTID e la password, quindi inserisci più comandi in successione senza dover ripetere le credenziali. È una soluzione comoda se vuoi eseguire diversi comandi uno dopo l’altro.

Per eseguire un solo comando e uscire subito dopo, aggiungi -q. È utile negli script, in cui il processo deve terminare non appena il comando viene completato.

Due opzioni ti aiutano a scoprire quali funzionalità supporta la CLI.

Opzione Funzione
--help Elenca le opzioni globali e le diverse modalità di avvio.
--commands Elenca tutti i comandi interattivi e le relative forme posizionali, senza richiedere l’autenticazione.

Se il tuo cTrader ID è collegato a conti presso broker diversi che hanno lo stesso numero di conto, aggiungi --broker=<broker-name> per eliminare l’ambiguità.

Errori comuni

Sintomo Causa probabile Passaggio successivo
ctrader-cli: command not found La CLI non è presente nel tuo PATH. Riapri il terminale oppure segui la procedura di installazione manuale nella guida alla configurazione.
Parameter password is not allowed Hai specificato --password per un comando batch. Usa invece --pwd-file; la regola completa è riportata nella guida alla configurazione.
Account cannot be found Il numero di conto è ambiguo perché è utilizzato da più broker. Aggiungi --broker=<broker-name>.
Unknown symbol name Il nome del simbolo è errato o non supportato. Esegui symbols e utilizza il nome esatto mostrato nell’output.
Unknown period L’identificatore del periodo non è corretto. Esegui periods per elencare tutti gli identificatori accettati.

Nota

Per tutte le opzioni, i valori predefiniti e le descrizioni complete, consulta la documentazione di riferimento della CLI.