cTrader CLI 명령어 실행¶
이 문서에서는 cTrader CLI 명령어의 구조와 인증 방식, 계정 데이터, 가격 및 거래 내역을 조회하는 방법을 설명합니다.
명령어 구조 ¶
모든 cTrader CLI 명령어는 동일한 구조를 따릅니다:
ctrader-cli <command> [arguments] [options]
- 옵션은 접두사로 시작합니다.
--는 긴 형식,-는 짧은 형식입니다(--symbol과-s는 동일합니다). - 옵션과 값은 공백 또는 등호로 구분합니다.
--symbol EURUSD와--symbol=EURUSD모두 유효합니다. - 인수는 접두사 없이 위치에 따라 지정하는 값입니다.
.algo파일의 경로는 인수입니다. - 공백이 포함된 값은
'/opt/my cbots/trend cbot.algo'와 같이 작은따옴표나 큰따옴표로 감싸야 합니다. 하나의 명령어 안에서는 같은 따옴표 스타일을 일관되게 사용하세요.
인증 ¶
cTrader CLI에는 두 가지 인증 방식이 있습니다. 두 방식 모두 설정 과정에서 준비한 인증 정보 파일을 사용합니다.
| 방식 | 필수 옵션 | 대표 명령어 |
|---|---|---|
| 일괄 처리 | --ctid 및 --pwd-file | periods, accounts, symbols, metadata, run, backtest |
| 대화형 | --ctid, --password 또는 --pwd-file 및 -q | account, orders, price, candles, positions, exposure, alerts, 보조지표 명령어 |
참고
일괄 처리 명령어는 --password를 허용하지 않습니다. 대화형 명령어는 --password 또는 --pwd-file을 허용합니다.
accounts, symbols, metadata, run, backtest는 두 방식 모두에서 사용되며, 지정한 옵션에 따라 일괄 처리 또는 대화형 방식으로 실행됩니다:
- 일괄 처리 방식 –
--pwd-file(또는--broker)에서 인증 정보를 읽어 사용자 상호 작용 없이 실행합니다. - 대화형 방식 –
--password와-q(또는 해당 명령어 전용 옵션)를 사용해 대화형 호출로 실행합니다.
시간 프레임 식별자 ¶
많은 명령어에서 --period 값을 지정할 수 있습니다. ctrader-cli periods를 실행하면 허용되는 모든 식별자를 나열할 수 있습니다. 식별자는 분, 시간, 일, 주, 월뿐 아니라 틱, Renko, 레인지 바, Heikin Ashi 유형도 포함합니다. 식별자를 해석할 때 대소문자를 구분하지 않습니다.
거래량 단위 ¶
--volume에는 기준 통화 단위 또는 랏 단위의 거래량을 지정할 수 있습니다. --volume-type=units(기본값) 또는 --volume-type=lots로 거래량의 단위를 선택하세요. 대부분의 외환 심벌에서는 100,000단위가 1표준 랏에 해당합니다.
--volume-type=lots 사용 시 | 기초 자산 단위 |
|---|---|
--volume=1 | 100,000 |
--volume=0.1 | 10,000 |
--volume=0.01 | 1,000 |
경고
금속, 지수, 암호화폐의 랏 크기는 심벌마다 다릅니다. 따라서 동일한 --volume=1 값으로도 의도한 것보다 큰 포지션이 열릴 수 있습니다. 거래 전에 심벌의 lotSize 값을 확인하세요:
ctrader-cli symbol --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567 -q --symbol=XAUUSD
예를 들어 XAUUSD에 lotSize: 100이 설정되어 있다면, --volume=1 --volume-type=lots는 100단위 포지션을 엽니다.
날짜 및 시간 ¶
cTrader CLI의 모든 날짜와 시간은 UTC를 기준으로 합니다. CLI는 컴퓨터의 로컬 시간대나 브로커 서버 시간을 사용하지 않습니다.
UTC는 명령어 출력과 날짜 입력에 다음과 같이 적용됩니다:
- 출력: JSON 출력의 모든 시간은 UTC 기준이며,
Z가 포함된 ISO 8601 형식을 사용합니다. 예:2026-10-08T14:05:00.000Z. - 대화형 명령어(
candles,deals,orders-history및-q로 실행하는backtest):--from과--to에는 날짜만 입력할 수 있으며, 형식은yyyy-MM-dd,dd/MM/yyyy,dd-MM-yyyy또는yyyy/MM/dd입니다. 지정한 날짜는 UTC 기준의 역일을 의미합니다.deals와orders-history에서--to는 해당 날짜의 23:59:59 UTC까지 하루 전체를 포함합니다.candles에서--to는 해당 날짜의 시작 시각(00:00 UTC)을 의미합니다. 특정 날짜 전체를 포함하려면--to를 다음 날로 설정하세요.--from/--to를 지정하지 않으면 대화형backtest는 최근 7일을 대상으로 합니다.
- 일괄 처리 명령어(
backtest등): 날짜 형식은dd/MM/yyyy이며, 필요하면dd/MM/yyyy HH:mm형식으로 24시간제 시간을 추가할 수 있습니다. 예:31/12/2026 18:00. 모두 UTC 기준입니다.
유일한 예외는 실행 중인 cBot(run, backtest)입니다. 해당 cBot의 시간은 cTrader Algo와 마찬가지로 cBot에 설정된 TimeZone을 따릅니다.
계정 및 시장 데이터 조회 ¶
ctrader-cli periods는 계정이나 인증 정보가 필요하지 않아 첫 테스트에 적합합니다.
ctrader-cli periods
cTrader ID에 연결된 거래 계정을 나열하세요:
ctrader-cli accounts --ctid=letstrade --pwd-file=C:/test/password.pwd
계정 번호를 확인한 후 해당 계정에서 이용할 수 있는 심벌을 나열하세요:
ctrader-cli symbols --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567
스크립트에서 심벌의 현재 가격을 조회하고 과거 캔들 데이터를 가져오세요:
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
거래 내역 조회 제한 ¶
deals와 orders-history에는 다음과 같은 거래 내역 조회 제한이 적용됩니다:
- CLI는 기간 길이 제한 없이
--from/--to로 지정한 전체 기간을 불러옵니다. - 다만 한 번의 호출로 해당 기간에서 가장 최근 체결 200건(
deals) 또는 주문 500건(orders-history)만 반환합니다. --from/--to를 지정하지 않으면 두 명령어 모두 최근 30일의 데이터만 반환합니다.-
--count는 반환할 레코드 수를 설정합니다:deals는 기본 50건, 최대 200건입니다.orders-history는 기본 100건, 최대 500건입니다.
--from 또는 --to를 지정하면 --count는 무시되며, 호출 시 허용된 최대 건수까지 반환합니다.
지정 기간에 한 번의 호출로 반환할 수 있는 것보다 많은 레코드가 있다면 기간을 더 짧게 나누고 각 기간에 대해 명령어를 실행하세요.
결과가 일부 생략되었는지 확인하려면 출력을 살펴보세요:
orders-history: 출력에available및returned필드가 포함됩니다.available이returned보다 크면 해당 기간에 다른 주문이 더 있다는 의미입니다.deals:count가 정확히200이면 해당 기간에 체결 내역이 더 있을 수 있습니다.
대화형 셸의 일괄 작업 ¶
대화형 셸에서는 일부 명령어 끝에 all과 yes를 추가하면 확인 메시지 없이 일괄 작업을 수행할 수 있습니다.
| 명령어 | 끝에 all과 yes를 추가한 형식 |
|---|---|
order cancel | order cancel all yes |
position close | position close all yes |
stop | stop all yes |
alert delete | alert delete all yes |
대화형으로 명령어 실행 ¶
대화형 셸을 열려면 명령어 없이 ctrader-cli를 실행하세요. 메시지가 나타나면 cTID와 비밀번호로 로그인한 후, 인증 정보를 다시 입력하지 않고 명령어를 연속으로 입력하세요. 여러 명령어를 연달아 실행할 때 편리합니다.
명령어 하나만 실행하고 즉시 종료하려면 -q를 추가하세요. 명령어가 완료되자마자 프로세스를 종료해야 하는 스크립트에 유용합니다.
CLI에서 지원하는 기능을 확인하는 데 도움이 되는 옵션이 두 가지 있습니다.
| 옵션 | 용도 |
|---|---|
--help | 전역 옵션과 실행 형식을 나열합니다. |
--commands | 인증 없이 모든 대화형 명령어와 위치 인수 형식을 나열합니다. |
cTrader ID에 연결된 서로 다른 브로커의 계정이 동일한 계정 번호를 사용하는 경우, --broker=<broker-name>을 추가해 계정을 명확히 지정하세요.
일반적인 오류 ¶
| 증상 | 가능한 원인 | 다음 단계 |
|---|---|---|
ctrader-cli: command not found | CLI 경로가 PATH에 등록되지 않았습니다. | 터미널을 다시 열거나 설정 가이드의 수동 설치 단계를 따르세요. |
Parameter password is not allowed | 일괄 처리 명령어에 --password를 지정했습니다. | 대신 --pwd-file을 사용하세요. 전체 규칙은 설정 가이드에 설명되어 있습니다. |
Account cannot be found | 브로커마다 동일한 계정 번호를 사용할 수 있어 해당 번호만으로는 계정을 구분할 수 없습니다. | --broker=<broker-name>을 추가하세요. |
Unknown symbol name | 심벌 이름이 잘못되었거나 지원되지 않습니다. | symbols를 실행하고 출력에 표시된 정확한 이름을 사용하세요. |
Unknown period | 시간 프레임 식별자가 잘못되었습니다. | periods를 실행해 허용되는 모든 식별자를 나열하세요. |
참고
모든 옵션, 기본값 및 자세한 설명은 CLI 참조 문서를 확인하세요.