Einen cBot rund um die Uhr ausführen¶
Ein cBot, der nur läuft, solange Ihr Laptop eingeschaltet ist, hilft wenig, wenn die Handelssitzung um 3 Uhr morgens beginnt. Diese Anleitung zeigt, wie Sie die Parameter eines cBots auslesen, ihn auf einem Remote-Host starten, die Ausführung überprüfen und ihn zum Sitzungsende ordnungsgemäß beenden.
Tipp
Legen Sie Ihre Zugangsdaten einmalig in Shell-Variablen fest. Alle folgenden interaktiven Befehle verwenden diese Variablen. Dadurch bleiben die Schritte kurz und das Skript lässt sich in verschiedenen Umgebungen nutzen.
export CTID=letstrade
export ACC=7654321
export PWD_FILE=$HOME/.ctrader/pwd
1. Die Parameter des cBots auslesen ¶
metadata listet die Namen und Typen der vom cBot unterstützten Parameter auf. So wissen Sie genau, welche Optionen Sie an run übergeben oder welche Schlüssel Sie in eine .cbotset-Datei eintragen müssen. metadata ist ein Batch-Befehl, der --ctid und --pwd-file direkt akzeptiert.
ctrader-cli metadata --ctid=$CTID --pwd-file=$PWD_FILE $ALGO
2. Einen Parametersatz speichern ¶
Eine .cbotset-Datei ist eine einfache Textdatei mit einem key=value-Paar pro Zeile. Sie lässt sich leichter bearbeiten und wiederverwenden als eine lange Befehlszeile.
cat > mycbot.cbotset <<'EOF'
SlowPeriods=20
StopLossPips=30
TakeProfitPips=60
EOF
Verwenden Sie die Parameternamen, die metadata in Schritt 1 ausgibt.
3. Den cBot auf einem VPS starten ¶
run ist ein Befehl, der sowohl im Batch-Modus als auch im interaktiven Modus ausgeführt werden kann. Im Batch-Modus (ohne -q) akzeptiert der Befehl --ctid und --pwd-file direkt, ohne -q. Die CLI wartet, bis der cBot beendet wird. Lassen Sie den Befehl auf dem VPS von einer Prozessverwaltung überwachen (systemd, tmux, screen, das offizielle Docker-Image oder --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 sorgt dafür, dass der CLI-Prozess beim Stoppen des cBots beendet wird. Dadurch lässt er sich sauber mit systemd oder Docker überwachen.
Für einen langfristigen Betrieb auf einem Host führen Sie denselben Befehl im offiziellen Docker-Image von cTrader CLI aus. Das Image akzeptiert dieselben Optionen und beendet sich bei denselben Signalen. Die vollständige Docker-Anleitung finden Sie im Artikel cBots.
4. Prüfen, ob der cBot läuft ¶
Öffnen Sie ein zweites Terminal: cbots listet alle derzeit auf dem Konto laufenden cBot-Instanzen auf. Die Ausgabe enthält die Instanzkennung, die Sie für den nächsten Schritt benötigen.
ctrader-cli cbots --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q
5. Aktuelle Kurse während der cBot-Ausführung abrufen ¶
Während der cBot läuft, können Sie mit price den Markt in einem separaten Terminal prüfen, ohne die laufende Instanz zu beeinträchtigen.
ctrader-cli price --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q --symbol=EURUSD
6. Den cBot nach Sitzungsende beenden ¶
stop beendet die Instanz anhand ihrer Kennung. Übernehmen Sie die Kennung aus der Ausgabe von cbots in Schritt 4.
ctrader-cli stop --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
--instance=13579246
Wenn Sie die CLI in der interaktiven Shell gestartet haben, fügen Sie all und yes hinzu, um alle laufenden Instanzen auf einmal zu beenden: stop all yes.
7. Die Schritte zu einem verwalteten Ausführungsskript zusammenfassen ¶
Speichern Sie die gesamte Befehlsfolge als start-cbot.sh und rufen Sie das Skript über systemd, einen Cronjob oder eine Deployment-Pipeline auf. Das Skript schreibt den Parametersatz, startet den cBot im Hintergrund, wartet auf die Überprüfung und gibt die Instanzkennung für die spätere Verwendung aus.
#!/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
Um die Instanz später zu beenden, führen Sie den entsprechenden stop-Aufruf aus Schritt 6 aus. Die Instanzkennung bleibt bei wiederholten cbots-Abfragen unverändert. Speichern Sie sie daher einmal und verwenden Sie sie erneut.
Die CLI-Referenz führt alle verfügbaren Optionen der in diesem Ablauf verwendeten Befehle auf.
Warnung
cTrader CLI ist ein Tool für den Handel und die Automatisierung. Es bietet keine Finanz-, Anlage-, Rechts- oder Steuerberatung. Befehle zum Platzieren oder Ändern von Orders können reale Transaktionen auslösen und zu Verlusten führen. Prüfen Sie jeden Befehl vor der Ausführung, testen Sie ihn zunächst auf einem Demo-Konto und schützen Sie Ihre Anmeldedaten.