Nieprzerwane uruchamianie cBota¶
cBot, który działa tylko wtedy, gdy Twój laptop jest włączony, na niewiele się przyda, jeśli sesja zaczyna się o trzeciej nad ranem. Ta instrukcja pokazuje, jak odczytać parametry cBota, uruchomić go na zdalnym serwerze, sprawdzić jego działanie i poprawnie zatrzymać po zakończeniu sesji.
Wskazówka
Ustaw dane logowania w zmiennych powłoki tylko raz. Wszystkie poniższe polecenia interaktywne korzystają z tych samych zmiennych, dzięki czemu kroki są krótsze, a skrypt można łatwo przenosić między środowiskami.
export CTID=letstrade
export ACC=7654321
export PWD_FILE=$HOME/.ctrader/pwd
1. Odczytanie parametrów cBota ¶
metadata wyświetla nazwy i typy parametrów obsługiwanych przez cBota. Dzięki temu dowiesz się, jakie opcje przekazać do run lub jakie klucze umieścić w pliku .cbotset. metadata jest poleceniem wsadowym, które bezpośrednio przyjmuje opcje --ctid i --pwd-file.
ctrader-cli metadata --ctid=$CTID --pwd-file=$PWD_FILE $ALGO
2. Zapisanie zestawu parametrów ¶
Plik .cbotset to zwykły plik tekstowy zawierający jedną parę key=value w każdym wierszu. Łatwiej go edytować i wykorzystywać ponownie niż długi wiersz polecenia.
cat > mycbot.cbotset <<'EOF'
SlowPeriods=20
StopLossPips=30
TakeProfitPips=60
EOF
Użyj nazw parametrów wyświetlonych przez metadata w kroku 1.
3. Uruchomienie cBota na serwerze VPS ¶
run to polecenie, które można uruchamiać zarówno w trybie wsadowym, jak i interaktywnym. W trybie wsadowym (bez -q) bezpośrednio przyjmuje opcje --ctid i --pwd-file bez używania -q, a CLI pozostaje uruchomione do chwili zakończenia działania cBota. Uruchom je na serwerze VPS pod nadzorem menedżera procesów (systemd, tmux, screen, oficjalnego obrazu Docker lub opcji --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 powoduje zakończenie procesu CLI po zatrzymaniu cBota, co ułatwia nadzorowanie go przez systemd lub Docker.
Aby cBot działał przez dłuższy czas na serwerze, uruchom to samo polecenie w oficjalnym obrazie Docker dla cTrader CLI. Obraz przyjmuje te same opcje i kończy działanie po otrzymaniu tych samych sygnałów. Pełną instrukcję dotyczącą Dockera znajdziesz w artykule cBots.
4. Sprawdzenie, czy cBot działa ¶
W drugim terminalu użyj cbots, aby wyświetlić wszystkie instancje cBotów uruchomione obecnie na koncie. Wynik zawiera identyfikator instancji potrzebny w następnym kroku.
ctrader-cli cbots --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q
5. Sprawdzanie cen w czasie rzeczywistym podczas działania cBota ¶
Podczas działania cBota możesz użyć price w osobnym terminalu, aby sprawdzać rynek bez zakłócania działania uruchomionej instancji.
ctrader-cli price --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q --symbol=EURUSD
6. Zatrzymanie cBota po zakończeniu sesji ¶
stop zatrzymuje instancję wskazaną jej identyfikatorem. Odczytaj identyfikator z wyniku cbots w kroku 4.
ctrader-cli stop --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
--instance=13579246
Jeśli CLI zostało uruchomione w powłoce interaktywnej, dodaj all i yes, aby zatrzymać wszystkie działające instancje jednocześnie: stop all yes.
7. Połączenie kroków w skrypt nadzorowanego uruchamiania ¶
Zapisz całą sekwencję jako start-cbot.sh i uruchamiaj ją za pomocą systemd, zadania cron lub potoku wdrożeniowego. Skrypt zapisuje zestaw parametrów, uruchamia cBota w tle, czeka na potwierdzenie uruchomienia i wyświetla identyfikator instancji do późniejszego wykorzystania.
#!/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
Aby później zatrzymać instancję, wykonaj odpowiednie wywołanie stop z kroku 6. Identyfikator instancji nie zmienia się między kolejnymi zapytaniami cbots, więc wystarczy go raz zapisać i ponownie wykorzystywać.
Dokumentacja referencyjna cTrader CLI zawiera wszystkie dostępne opcje poleceń używanych w tej procedurze.
Ostrzeżenie
cTrader CLI to narzędzie do handlu i automatyzacji. Nie świadczy usług doradztwa finansowego, inwestycyjnego, prawnego ani podatkowego. Polecenia służące do składania lub zmieniania zleceń mogą prowadzić do zawarcia rzeczywistych transakcji i poniesienia strat. Sprawdź każde polecenie przed uruchomieniem, najpierw przetestuj je na koncie demo i chroń swoje dane logowania.