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ą (--symboli-ssą 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
.algojest 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
--passwordi-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-historyorazbacktesturuchamiany z-q):--fromi--toprzyjmują wyłącznie datę w formacieyyyy-MM-dd,dd/MM/yyyy,dd-MM-yyyylubyyyy/MM/dd. Data oznacza dzień kalendarzowy w strefie UTC.- W przypadku
dealsiorders-historyopcja--toobejmuje cały dzień, do godziny 23:59:59 UTC. - W przypadku
candlesopcja--towskazuje początek danego dnia (00:00 UTC). Aby uwzględnić cały dzień, ustaw--tona dzień następny. - Bez
--from/--tointeraktywnybacktestobejmuje ostatnie 7 dni.
- W przypadku
- Polecenia wsadowe (
backtesti inne): daty mają formatdd/MM/yyyy, opcjonalnie z czasem w formacie 24-godzinnymdd/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/--tobez 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/--tooba polecenia zwracają dane wyłącznie z ostatnich 30 dni. -
--countokreśla liczbę zwracanych rekordów:- Domyślnie 50, maksymalnie 200 dla
deals. - Domyślnie 100, maksymalnie 500 dla
orders-history.
- Domyślnie 50, maksymalnie 200 dla
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 polaavailableireturned. Jeśliavailablejest większe niżreturned, w zakresie są dodatkowe zlecenia.deals: jeślicountwynosi dokładnie200, 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.