Vai al contenuto

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.