Eseguire un cBot senza interruzioni¶
Un cBot che funziona solo quando il portatile è acceso non serve a molto se la sessione inizia alle 3 del mattino. Questa guida spiega come leggere i parametri di un cBot, avviarlo su un server remoto, verificare che sia in esecuzione e arrestarlo correttamente al termine della sessione.
Suggerimento
Definisci una sola volta le tue credenziali nelle variabili della shell. Tutti i comandi interattivi seguenti riutilizzano queste variabili, così i passaggi restano semplici e lo script può essere utilizzato in ambienti diversi.
export CTID=letstrade
export ACC=7654321
export PWD_FILE=$HOME/.ctrader/pwd
1. Consultare i parametri del cBot ¶
metadata elenca i nomi e i tipi di parametri accettati dal cBot, così puoi sapere quali opzioni passare a run o quali chiavi inserire in un file .cbotset. metadata è un comando in modalità batch che accetta direttamente --ctid e --pwd-file.
ctrader-cli metadata --ctid=$CTID --pwd-file=$PWD_FILE $ALGO
2. Salvare un insieme di parametri ¶
Un file .cbotset è un file di testo semplice con una coppia key=value per riga. È più facile da modificare e riutilizzare rispetto a una lunga riga di comando.
cat > mycbot.cbotset <<'EOF'
SlowPeriods=20
StopLossPips=30
TakeProfitPips=60
EOF
Usa i nomi dei parametri mostrati da metadata al passaggio 1.
3. Avviare il cBot su un VPS ¶
run è un comando utilizzabile sia in modalità batch sia in modalità interattiva. In modalità batch (senza -q), accetta direttamente --ctid e --pwd-file senza -q e la CLI resta in esecuzione fino all’arresto del cBot. Esegui il comando sul VPS sotto la supervisione di un gestore di processi (systemd, tmux, screen, l’immagine Docker ufficiale oppure --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 fa terminare il processo CLI quando il cBot si arresta, agevolando la supervisione da parte di systemd o Docker.
Per eseguire il cBot a lungo su un server, usa lo stesso comando nell’immagine Docker ufficiale di cTrader CLI. L’immagine accetta le stesse opzioni e termina in risposta agli stessi segnali. La procedura completa per Docker è disponibile nell’articolo cBots.
4. Verificare che il cBot sia in esecuzione ¶
Da un secondo terminale, cbots elenca tutte le istanze di cBot attualmente in esecuzione sul conto. L’output include l’identificativo dell’istanza necessario per il passaggio successivo.
ctrader-cli cbots --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q
5. Consultare i prezzi in tempo reale mentre il cBot funziona ¶
Mentre il cBot è in esecuzione, price permette di controllare il mercato da un altro terminale senza interferire con l’istanza attiva.
ctrader-cli price --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q --symbol=EURUSD
6. Arrestare il cBot alla fine della sessione ¶
stop arresta l’istanza identificata dal relativo codice. Recupera l’identificativo dall’output di cbots al passaggio 4.
ctrader-cli stop --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
--instance=13579246
Se hai avviato la CLI nella shell interattiva, aggiungi all e yes per arrestare contemporaneamente tutte le istanze in esecuzione: stop all yes.
7. Riunire i passaggi in uno script di esecuzione gestita ¶
Salva l’intera sequenza come start-cbot.sh e avviala tramite systemd, un’attività cron o una pipeline di distribuzione. Lo script salva l’insieme dei parametri, avvia il cBot in background, attende la verifica e mostra l’identificativo dell’istanza per utilizzarlo in seguito.
#!/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
Per arrestare l’istanza successivamente, esegui il comando stop corrispondente del passaggio 6. L’identificativo dell’istanza rimane invariato nelle interrogazioni cbots, quindi salvalo una volta e riutilizzalo.
La documentazione di riferimento di cTrader CLI elenca tutte le opzioni disponibili per i comandi utilizzati in questa procedura.
Avvertenza
cTrader CLI è uno strumento per il trading e l’automazione. Non fornisce consulenza finanziaria, d’investimento, legale o fiscale. I comandi che inseriscono o modificano ordini possono dare origine a operazioni reali e causare perdite. Verifica ogni comando prima di eseguirlo, esegui i primi test su un conto demo e proteggi le tue credenziali.