Saltar a contenido

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 (--symbol y -s son equivalentes).
  • Los valores de las opciones se separan mediante un espacio o un signo igual. Tanto --symbol EURUSD como --symbol=EURUSD son válidos.
  • Los argumentos son valores posicionales sin prefijo. La ruta de un archivo .algo es 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-file y, cuando es necesario, utiliza --broker para seleccionar el bróker. Se ejecuta sin interacción.
  • Modo interactivo – utiliza --password y -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-history y backtest ejecutado con -q): --from y --to solo admiten una fecha en formato yyyy-MM-dd, dd/MM/yyyy, dd-MM-yyyy o yyyy/MM/dd. La fecha corresponde a un día natural en UTC.
    • Para deals y orders-history, --to incluye todo el día, hasta las 23:59:59 UTC.
    • Para candles, --to corresponde al inicio del día (00:00 UTC). Para incluir un día completo, establece --to en el día siguiente.
    • Sin --from / --to, el comando interactivo backtest abarca los últimos 7 días.
  • Comandos por lotes (backtest y otros): las fechas utilizan el formato dd/MM/yyyy, opcionalmente seguido de la hora en formato de 24 horas dd/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 --from y --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 --from ni --to, ambos comandos solo devuelven datos de los últimos 30 días.
  • --count establece 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.

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 campos available y returned. Si available es mayor que returned, hay más órdenes en el intervalo.
  • deals: si count es exactamente 200, 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.