Przejdź do treści

Uruchamianie poleceń cTrader CLI

W tym artykule dowiesz się, jak zbudowane są polecenia cTrader CLI, jak działa uwierzytelnianie oraz jak odczytywać dane kont, ceny i dane historyczne.

Składnia poleceń

Wszystkie polecenia cTrader CLI mają tę samą strukturę:

ctrader-cli <command> [arguments] [options]
  • Opcje rozpoczynają się od prefiksu. -- oznacza formę długą, a - formę krótką (--symbol i -s są równoważne).
  • Wartości opcji oddziela się spacją lub znakiem równości. Poprawne są zarówno --symbol EURUSD, jak i --symbol=EURUSD.
  • Argumenty są wartościami pozycyjnymi bez prefiksu. Ścieżka do pliku .algo jest argumentem.
  • Wartości zawierające spacje należy ująć w pojedyncze lub podwójne cudzysłowy, np. '/opt/my cbots/trend cbot.algo'. W ramach jednego polecenia konsekwentnie stosuj jeden rodzaj cudzysłowów.

Uwierzytelnianie

cTrader CLI obsługuje dwa tryby uwierzytelniania. Oba korzystają z pliku z danymi uwierzytelniającymi przygotowanego podczas konfiguracji.

Tryb Wymagane opcje Typowe polecenia
Wsadowy --ctid i --pwd-file periods, accounts, symbols, metadata, run, backtest
Interaktywny --ctid, --password lub --pwd-file i -q account, orders, price, candles, positions, exposure, alerts, polecenia wskaźników

Uwaga

Polecenia wsadowe nie akceptują opcji --password. Polecenia interaktywne akceptują zarówno --password, jak i --pwd-file.

Polecenia accounts, symbols, metadata, run i backtest, dostępne w obu trybach, są kierowane do trybu wsadowego lub interaktywnego w zależności od podanych opcji:

  • Tryb wsadowy – odczytuje dane uwierzytelniające z --pwd-file (lub --broker) i działa bez interakcji z użytkownikiem.
  • Tryb interaktywny – korzysta z --password i -q (lub dowolnej opcji właściwej dla polecenia) i wykonuje wywołanie interaktywne.

Identyfikatory ram czasowych

Wiele poleceń przyjmuje wartość --period. Uruchom ctrader-cli periods, aby wyświetlić wszystkie obsługiwane identyfikatory. Identyfikatory obejmują minuty, godziny, dni, tygodnie i miesiące, a także ticki, Renko, słupki zakresowe i warianty Heikin Ashi. Wielkość liter nie ma znaczenia podczas interpretacji identyfikatorów.

Jednostki wolumenu

--volume przyjmuje jednostki waluty bazowej lub loty. Użyj --volume-type=units (domyślnie) lub --volume-type=lots, aby określić sposób interpretacji wolumenu. W przypadku większości par walutowych Forex 100 000 jednostek odpowiada jednemu standardowemu lotowi.

Przy --volume-type=lots Jednostki instrumentu bazowego
--volume=1 100 000
--volume=0.1 10 000
--volume=0.01 1 000

Ostrzeżenie

W przypadku metali, indeksów i kryptowalut wielkość lota zależy od symbolu. Ta sama wartość --volume=1 może więc otworzyć pozycję większą, niż zamierzasz. Przed zawarciem transakcji sprawdź wartość lotSize dla danego symbolu:

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

Jeśli na przykład XAUUSD ma lotSize: 100, to --volume=1 --volume-type=lots otwiera pozycję na 100 jednostek.

Daty i godziny

Wszystkie daty i godziny w cTrader CLI są podawane w UTC. CLI nigdy nie korzysta z lokalnej strefy czasowej Twojego komputera ani z czasu serwera brokera.

Czas UTC obowiązuje w wynikach poleceń i przy wprowadzaniu dat w następujący sposób:

  • Dane wyjściowe: wszystkie znaczniki czasu w wynikach JSON są podawane w UTC, w formacie ISO 8601 z Z, np. 2026-10-08T14:05:00.000Z.
  • Polecenia interaktywne (candles, deals, orders-history oraz backtest uruchamiany z -q): --from i --to przyjmują wyłącznie datę w formacie yyyy-MM-dd, dd/MM/yyyy, dd-MM-yyyy lub yyyy/MM/dd. Data oznacza dzień kalendarzowy w strefie UTC.
    • W przypadku deals i orders-history opcja --to obejmuje cały dzień, do godziny 23:59:59 UTC.
    • W przypadku candles opcja --to wskazuje początek danego dnia (00:00 UTC). Aby uwzględnić cały dzień, ustaw --to na dzień następny.
    • Bez --from / --to interaktywny backtest obejmuje ostatnie 7 dni.
  • Polecenia wsadowe (backtest i inne): daty mają format dd/MM/yyyy, opcjonalnie z czasem w formacie 24-godzinnym dd/MM/yyyy HH:mm, np. 31/12/2026 18:00, również w UTC.

Jedyny wyjątek dotyczy działającego cBota (run, backtest). Obowiązuje w nim ustawienie TimeZone określone w cBocie, tak jak w cTrader Algo.

Odczytywanie danych kont i rynku

ctrader-cli periods nie wymaga konta ani danych uwierzytelniających, dlatego dobrze nadaje się na pierwszy test.

ctrader-cli periods

Wyświetl konta handlowe powiązane z Twoim cTrader ID:

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

Gdy znasz już numer konta, wyświetl dostępne na nim symbole:

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

Odczytaj aktualną cenę symbolu i pobierz historyczne dane świecowe za pomocą skryptu:

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

Limity danych historycznych

Polecenia deals i orders-history mają następujące limity dotyczące danych historycznych:

  • CLI wczytuje cały zakres --from / --to bez ograniczenia jego długości.
  • Jedno wywołanie zwraca jednak tylko 200 ostatnich transakcji (deals) lub 500 ostatnich zleceń (orders-history) z tego zakresu.
  • Bez --from / --to oba polecenia zwracają dane wyłącznie z ostatnich 30 dni.
  • --count określa liczbę zwracanych rekordów:

    • Domyślnie 50, maksymalnie 200 dla deals.
    • Domyślnie 100, maksymalnie 500 dla orders-history.

Jeśli podasz --from lub --to, opcja --count zostanie zignorowana, a wywołanie zwróci nie więcej niż maksymalną dozwoloną liczbę rekordów.

Jeśli zakres zawiera więcej rekordów, niż może zwrócić jedno wywołanie, podziel go na krótsze przedziały i wykonaj polecenie dla każdego z nich.

Aby sprawdzić, czy wynik został ucięty, przejrzyj dane wyjściowe:

  • orders-history: wynik zawiera pola available i returned. Jeśli available jest większe niż returned, w zakresie są dodatkowe zlecenia.
  • deals: jeśli count wynosi dokładnie 200, zakres może zawierać więcej transakcji.

Operacje zbiorcze w powłoce interaktywnej

W powłoce interaktywnej do kilku poleceń można dodać na końcu all i yes, aby wykonać operację zbiorczą z pominięciem prośby o potwierdzenie.

Polecenie Forma z all i yes na końcu
order cancel order cancel all yes
position close position close all yes
stop stop all yes
alert delete alert delete all yes

Interaktywne uruchamianie poleceń

Uruchom ctrader-cli bez podawania polecenia, aby otworzyć powłokę interaktywną. Gdy pojawi się monit, zaloguj się za pomocą cTID i hasła. Następnie wpisuj kolejne polecenia bez ponownego podawania danych logowania. To wygodne, gdy chcesz wykonać kilka poleceń jedno po drugim.

Aby wykonać pojedyncze polecenie i od razu zakończyć działanie programu, dodaj -q. To przydatne w skryptach, w których proces powinien zakończyć się zaraz po wykonaniu polecenia.

Dwie opcje pomagają sprawdzić, jakie funkcje obsługuje CLI.

Opcja Przeznaczenie
--help Wyświetla opcje globalne i sposoby uruchamiania.
--commands Wyświetla wszystkie polecenia interaktywne wraz z ich formami pozycyjnymi, bez konieczności uwierzytelniania.

Jeśli z Twoim cTrader ID powiązane są konta u różnych brokerów o tym samym numerze, dodaj --broker=<broker-name>, aby jednoznacznie wskazać konto.

Typowe błędy

Objaw Prawdopodobna przyczyna Następny krok
ctrader-cli: command not found CLI nie znajduje się w Twojej zmiennej PATH. Otwórz terminal ponownie lub wykonaj kroki ręcznej instalacji z przewodnika konfiguracji.
Parameter password is not allowed Podano --password w poleceniu wsadowym. Użyj zamiast tego --pwd-file. Pełną zasadę opisano w przewodniku konfiguracji.
Account cannot be found Numer konta nie jest jednoznaczny, ponieważ występuje u różnych brokerów. Dodaj --broker=<broker-name>.
Unknown symbol name Nazwa symbolu jest błędna lub nieobsługiwana. Uruchom symbols i użyj dokładnej nazwy z wyniku.
Unknown period Identyfikator ram czasowych jest nieprawidłowy. Uruchom periods, aby wyświetlić wszystkie obsługiwane identyfikatory.

Uwaga

Listę wszystkich opcji, ich wartości domyślnych i pełne opisy znajdziesz w dokumentacji referencyjnej CLI.