Ejecutar comandos de cTrader CLI¶
Este artículo explica la estructura de los comandos de cTrader CLI, cómo funciona la autenticación y cómo consultar datos de las cuentas, precios e historiales.
Estructura de los comandos ¶
Todos los comandos de cTrader CLI siguen la misma estructura:
ctrader-cli <command> [arguments] [options]
- Las opciones empiezan por un prefijo.
--indica la forma larga y-la corta (--symboly-sson equivalentes). - Los valores de las opciones se separan mediante un espacio o un signo igual. Tanto
--symbol EURUSDcomo--symbol=EURUSDson válidos. - Los argumentos son valores posicionales sin prefijo. La ruta de un archivo
.algoes un argumento. - Los valores que contengan espacios deben ir entre comillas simples o dobles, por ejemplo,
'/opt/my cbots/trend cbot.algo'. Utiliza el mismo tipo de comillas de forma coherente dentro de cada comando.
Autenticación ¶
cTrader CLI utiliza dos modalidades de autenticación. Ambas utilizan el archivo de credenciales que preparas durante la configuración.
| Modalidad | Opciones obligatorias | Comandos habituales |
|---|---|---|
| Por lotes | --ctid y --pwd-file | periods, accounts, symbols, metadata, run, backtest |
| Interactiva | --ctid, --password o --pwd-file y -q | account, orders, price, candles, positions, exposure, alerts, comandos de indicadores |
Nota
Los comandos por lotes no admiten --password. Los comandos interactivos admiten tanto --password como --pwd-file.
Los comandos accounts, symbols, metadata, run y backtest, que existen en ambas modalidades, se ejecutan por lotes o de forma interactiva según las opciones que indiques:
- Modo por lotes – lee las credenciales de
--pwd-filey, cuando es necesario, utiliza--brokerpara seleccionar el bróker. Se ejecuta sin interacción. - Modo interactivo – utiliza
--passwordy-q(o cualquier opción específica del comando) para realizar una llamada interactiva.
Identificadores de períodos ¶
Muchos comandos admiten un valor para --period. Ejecuta ctrader-cli periods para consultar todos los identificadores admitidos. Estos identificadores abarcan minutos, horas, días, semanas y meses, además de ticks, Renko, barras de rango y variantes de Heikin Ashi. No se distingue entre mayúsculas y minúsculas.
Unidades de volumen ¶
--volume admite unidades de la divisa base o lotes. Utiliza --volume-type=units (predeterminado) o --volume-type=lots para indicar cómo interpretar el volumen. Para la mayoría de los símbolos de Forex, 100.000 unidades equivalen a un lote estándar.
Con --volume-type=lots | Unidades del activo base |
|---|---|
--volume=1 | 100.000 |
--volume=0.1 | 10.000 |
--volume=0.01 | 1.000 |
Advertencia
En metales, índices y criptomonedas, el tamaño del lote varía según el símbolo. Por eso, un mismo valor --volume=1 puede abrir una posición mayor de la que pretendías. Antes de operar, comprueba el valor lotSize del símbolo:
ctrader-cli symbol --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567 -q --symbol=XAUUSD
Por ejemplo, si XAUUSD tiene lotSize: 100, --volume=1 --volume-type=lots abre una posición de 100 unidades.
Fechas y horas ¶
Todas las fechas y horas de cTrader CLI se expresan en UTC. La CLI nunca utiliza la zona horaria local de tu equipo ni la hora del servidor del bróker.
La zona horaria UTC se aplica a los resultados de los comandos y a las fechas introducidas de la siguiente manera:
- Salida: todas las marcas de tiempo de la salida JSON se expresan en UTC, en formato ISO 8601 con
Z, por ejemplo,2026-10-08T14:05:00.000Z. - Comandos interactivos (
candles,deals,orders-historyybacktestejecutado con-q):--fromy--tosolo admiten una fecha en formatoyyyy-MM-dd,dd/MM/yyyy,dd-MM-yyyyoyyyy/MM/dd. La fecha corresponde a un día natural en UTC.- Para
dealsyorders-history,--toincluye todo el día, hasta las 23:59:59 UTC. - Para
candles,--tocorresponde al inicio del día (00:00 UTC). Para incluir un día completo, establece--toen el día siguiente. - Sin
--from/--to, el comando interactivobacktestabarca los últimos 7 días.
- Para
- Comandos por lotes (
backtesty otros): las fechas utilizan el formatodd/MM/yyyy, opcionalmente seguido de la hora en formato de 24 horasdd/MM/yyyy HH:mm, por ejemplo,31/12/2026 18:00, también en UTC.
La única excepción es un cBot en ejecución (run, backtest). Su hora se rige por el valor TimeZone definido en el cBot, como en cTrader Algo.
Consultar datos de las cuentas y del mercado ¶
ctrader-cli periods no requiere ninguna cuenta ni credenciales, por lo que es una buena primera prueba.
ctrader-cli periods
Enumera las cuentas de operaciones vinculadas a tu cTrader ID:
ctrader-cli accounts --ctid=letstrade --pwd-file=C:/test/password.pwd
Una vez que tengas el número de cuenta, enumera los símbolos disponibles en ella:
ctrader-cli symbols --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567
Consulta el precio actual de un símbolo y recupera velas históricas mediante un script:
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
Límites del historial ¶
Los comandos deals y orders-history tienen los siguientes límites de consulta del historial:
- La CLI carga todo el intervalo indicado mediante
--fromy--to, sin límite de duración. - Una llamada devuelve, como máximo, las últimas 200 transacciones (
deals) o las últimas 500 órdenes (orders-history) del intervalo. - Sin
--fromni--to, ambos comandos solo devuelven datos de los últimos 30 días. -
--countestablece el número de registros que se devuelven:- 50 por defecto y hasta 200 para
deals. - 100 por defecto y hasta 500 para
orders-history.
- 50 por defecto y hasta 200 para
Si se especifica --from o --to, se ignora --count y la llamada devuelve hasta el número máximo de registros.
Si un intervalo contiene más registros de los que devuelve una llamada, divídelo en intervalos más cortos y ejecuta el comando para cada uno.
Para comprobar si se han truncado los resultados, revisa la salida:
orders-history: la salida contiene los camposavailableyreturned. Siavailablees mayor quereturned, hay más órdenes en el intervalo.deals: sicountes exactamente200, puede haber más operaciones en el intervalo.
Acciones masivas en la consola interactiva ¶
En la consola interactiva, varios comandos admiten añadir all y yes al final para ejecutar acciones masivas sin solicitar confirmación.
| Comando | Sintaxis con all y yes al final |
|---|---|
order cancel | order cancel all yes |
position close | position close all yes |
stop | stop all yes |
alert delete | alert delete all yes |
Ejecutar comandos de forma interactiva ¶
Ejecuta ctrader-cli sin indicar ningún comando para abrir la consola interactiva. Cuando se te solicite, inicia sesión con tu cTID y contraseña. Después podrás introducir varios comandos seguidos sin volver a indicar tus credenciales. Esto resulta práctico cuando quieres ejecutar varios comandos consecutivos.
Para ejecutar un solo comando y salir inmediatamente después, añade -q. Es útil en scripts, donde el proceso debe finalizar en cuanto termine el comando.
Dos opciones te ayudan a descubrir qué funciones admite la CLI.
| Opción | Finalidad |
|---|---|
--help | Mostrar las opciones globales y las distintas formas de iniciar la CLI. |
--commands | Mostrar todos los comandos interactivos con sus formas posicionales, sin necesidad de autenticarse. |
Si tu cTrader ID está vinculado a cuentas de varios brókeres que comparten el mismo número de cuenta, añade --broker=<broker-name> para evitar ambigüedades.
Errores habituales ¶
| Síntoma | Causa probable | Siguiente paso |
|---|---|---|
ctrader-cli: command not found | La CLI no está incluida en tu PATH. | Vuelve a abrir el terminal o sigue los pasos de instalación manual de la guía de configuración. |
Parameter password is not allowed | Has indicado --password en un comando por lotes. | Utiliza --pwd-file en su lugar. La regla completa figura en la guía de configuración. |
Account cannot be found | El número de cuenta es ambiguo porque lo utilizan varios brókeres. | Añade --broker=<broker-name>. |
Unknown symbol name | El nombre del símbolo es incorrecto o no se admite. | Ejecuta symbols y utiliza el nombre exacto que aparece en la salida. |
Unknown period | El identificador del período de tiempo es incorrecto. | Ejecuta periods para consultar todos los identificadores admitidos. |
Nota
Para consultar todas las opciones, sus valores predeterminados y las descripciones completas, consulta la documentación de referencia de CLI.