cTrader CLI
cTrader CLI permite a los operadores gestionar operaciones de cuentas y operaciones con algoritmos directamente desde una consola o terminal sin iniciar o depender de la aplicación regular de cTrader. Con cTrader CLI, los usuarios simplemente escriben comandos en un terminal basado en texto para acceder y ejecutar algoritmos de cTrader.
¡cTrader CLI en un minuto!
- Ejecute cBots en Windows y Linux sin iniciar o depender de la app de cTrader Desktop y ahorre recursos de RAM y CPU.
- Ejerza un control más robusto sobre las instancias de cBot y ejecute cBots en diferentes cuentas sin abrir varias ventanas de la aplicación cTrader.
- Cree programas personalizados que utilicen cTrader CLI para iniciar, detener y gestionar algoritmos de operaciones en su lenguaje de programación preferido.
- Integre cTrader CLI con herramientas de IA generativa y use lenguaje natural para emitir comandos a los algoritmos.
Advertencia
cTrader CLI está disponible en cTrader 4.8 o versiones más recientes y funciona solo con algoritmos modernos .NET 6.
Métodos de inicio y uso
A través de cTrader Windows
Nota
No se requieren habilidades de lÃnea de comandos o programación para usar cTrader CLI. Puede preparar y aplicar sus parámetros preferidos para un cBot en cTrader Windows y luego indicar a cTrader Windows que inicie su cBot en un proceso externo de cTrader CLI.
Para ejecutar un cBot en cTrader CLI, haga clic con el botón derecho en una instancia local de ese cBot en cTrader Windows y luego seleccione Iniciar en proceso externo.

cTrader CLI se inicia automáticamente y comienza a ejecutar la instancia independientemente de la aplicación cTrader Windows.
Después de iniciar una instancia de cBot en un proceso externo de cTrader CLI, puede cerrar cTrader Windows para ahorrar recursos de CPU y RAM, ya que cTrader CLI no requiere que cTrader Windows permanezca abierto.
A través de la lÃnea de comandos de Windows
Puede iniciar cTrader CLI desde cualquier programa de lÃnea de comandos en Windows, como el SÃmbolo del sistema o Windows PowerShell.
Primero, navegue hasta la carpeta que contiene ctrader-cli y copie la ruta. El archivo ejecutable de cTrader CLI generalmente se encuentra en el mismo directorio que su aplicación cTrader Windows:
1 | |

En segundo lugar, abra el SÃmbolo del sistema o Windows PowerShell, escriba cd, agregue un espacio y luego pegue la ruta que copió anteriormente. Su código deberÃa verse asÃ:
1 | |
Ejecute el código y su programa de lÃnea de comandos ingresará al directorio que contiene el ejecutable ctrader-cli.
Finalmente, puede escribir ctrader-cli.exe seguido de cualquier <command> válido y ejecutarlo. Por ejemplo, puede ejecutar ctrader-cli.exe periods para ver los perÃodos disponibles.

Agregar variable de ruta
Info
Después de agregar cTrader CLI a su variable de entorno PATH, ya no tendrá que navegar al directorio que contiene ctrader-cli antes de ejecutar comandos en su máquina Windows. En su lugar, podrá ejecutar comandos en cualquier ubicación o carpeta simplemente escribiendo ctrader-cli seguido del <command>.
Primero, localice la carpeta que contiene ctrader-cli como lo hizo antes y copie la ruta.
1 | |
Busque Variables de entorno en el menú Inicio de Windows. Haga clic en Editar las variables de entorno del sistema.

En la ventana Propiedades del sistema, haga clic en Variables de entorno. Haga doble clic en Path bajo Variables de usuario para {username}. En la ventana Editar variable de entorno, haga clic en el botón Nuevo y luego pegue la ruta que copió anteriormente en el campo.
Haga clic en Aceptar hasta que se cierren todos los cuadros de diálogo.
Mediante imagen Docker de Linux
cTrader CLI está disponible como imagen Docker de Linux, lo que le permite ejecutar cBots en instancias VPS de Linux económicas, servidores de alto rendimiento y plataformas en la nube fiables. Esta imagen también se puede utilizar en Windows a través de Docker Desktop (WSL) como contenedor Docker.
Nota
Si es nuevo en Docker, se recomienda que estudie su documentación y se familiarice con los conceptos necesarios.
La imagen Docker de cTrader CLI se publica bajo Paquetes de Github de Spotware y se proporcionan nuevas versiones con cada actualización importante de cTrader para Windows.
Para utilizar la imagen Docker de cTrader CLI, asegúrese de que Docker esté instalado en su máquina, luego descargue la última imagen Docker de cTrader CLI disponible:
1 | |
Después de descargar la imagen, debe crear y ejecutar un contenedor. Dado que los contenedores Docker se ejecutan en un entorno virtual aislado de su sistema operativo, debe permitir explÃcitamente que el contenedor acceda a su archivo de algoritmo cBot y al archivo de contraseña cTID. Esto se puede lograr utilizando la función de montaje de Docker, que permite que un contenedor acceda a un directorio o archivo del sistema anfitrión.
El siguiente comando crea un contenedor basado en la imagen descargada y ejecuta un cBot:
1 | |
1 2 3 4 5 6 7 8 9 | |
Los parámetros restantes en el comando se explican a continuación:
| Parámetro | Descripción |
|---|---|
--name ctrader.console.run.mybot | Especifica el nombre del contenedor. |
--mount type=bind,src=/cAlgo/Robots,dst=/mnt/Robots | Monta el directorio del anfitrión /cAlgo/Robots en el directorio del contenedor /mnt/Robots. |
-e CTID='mycid' | Establece su nombre de usuario cTID como una variable de entorno. |
-e PWD-FILE='/mnt/Robots/ctrader-cli.pwd' | Define la ruta a su archivo de contraseña cTID, relativa al punto de montaje. |
-e ACCOUNT='9102302' | Establece su número de cuenta de operaciones como una variable de entorno. |
-e SYMBOL='EURUSD' | Establece el nombre del sÃmbolo como una variable de entorno. |
-e PERIOD='H1' | Establece el perÃodo como una variable de entorno. |
"/mnt/Robots/My bot.algo" | Especifica la ruta a su archivo de algoritmo cBot, relativa al punto de montaje. |
--environment-variables | Informa a cTrader CLI que se están utilizando variables de entorno para pasar configuraciones. |
También puede crear una imagen Docker lista para ejecutar basada en la imagen de cTrader CLI, copiar su archivo de algoritmo en ella y luego configurar todas las variables de entorno y otros ajustes directamente dentro de la imagen.
Nota
Todas las funciones de cTrader CLI están disponibles cuando se utiliza la imagen Docker, incluidas las pruebas retrospectivas y otros comandos descritos en este artÃculo.
Casos de uso comunes
Esta es una lista de operaciones populares que los operadores emplean cTrader CLI para:
-
Obtener todos los sÃmbolos
1ctrader-cli symbols --ctid=letstrade@email.com --pwd-file=C:/test/password.pwd --account=1234567Respuesta:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
[ { "Id": 1, "Name": "EURUSD", "Description": "Euro vs US Dollar" }, . . . { "Id": 21497, "Name": "HONG KONG 50", "Description": "HONG KONG 50" } ] -
Obtener metadatos del algoritmo
1ctrader-cli metadata C:/test/RSI_cBot.algoRespuesta:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
{ "Name": "RSI_cBot", "Type": "cBot", "AccessRights": "None", "BuildTime": "2023-05-11T16:42:56.7421508+03:00", "Parameters": [ { "PropertyName": "Quantity", "FriendlyName": "Quantity (Lots)", "GroupName": "Volume", "Type": "Double", "DefaultValue": 1.0, "MinValue": 0.01 }, { "PropertyName": "Source", "FriendlyName": "Source", "GroupName": "RSI", "Type": "DataSeries", "DefaultValue": { "OwnerId": "00000000-0000-0000-0000-000000000000", "FriendlyName": "Close", "IsStandard": true } }, { "PropertyName": "Periods", "FriendlyName": "Periods", "GroupName": "RSI", "Type": "Integer", "DefaultValue": 14 } ] } -
Realizar una prueba retrospectiva de un cBot
1ctrader-cli run C:\test\mycbot.algo -c=letstrade@email.com --pwd-file=C:\test\password.pwd --account=1234567 --symbol=EURUSD --period=h1 -
Ejecutar un cBot con parámetros predeterminados
1ctrader-cli run C:\test\mycbot.algo -c=letstrade --pwd-file=C:\test\password.pwd --account=1234567 --symbol=EURUSD --period=h1 -
Ejecutar un cBot con parámetros personalizados
1ctrader-cli run C:\mycbot.algo -c=letstrade@email.com --pwd-file=C:\test\password.pwd --account=1234567 --symbol=EURUSD --period=h1 --ConsolidationPeriods=3 --Periods=15 -
Ejecutar un cBot con parámetros guardados en un archivo
1ctrader-cli run C:\mycbot.algo C:\test\mysettings.cbotset -c=letstrade --pwd-file=C:\test\password.pwd --account=1234567 --symbol=EURUSD --period=h1
Desglose de comandos
cTrader CLI funciona de la misma manera que cualquier herramienta de lÃnea de comandos. Los usuarios escriben ctrader-cli junto con comandos predefinidos y los ejecutan. Por ejemplo, el comando periods se utiliza de esta manera para listar todos los perÃodos de gráfico en los que pueden ejecutarse los algoritmos:
1 | |
Algunos comandos tienen opciones o argumentos que siguen estas reglas:
-
--se escribe antes de una versión completa de una opción (como--ctid,--symbol) mientras que-se escribe antes de una versión abreviada (como-c,-s). -
El valor de las opciones se puede especificar usando un espacio (como
--ctid letstrade,--symbol EURUSD) o usando el signo igual (como--ctid=letstrade,--symbol=EURUSD). -
A diferencia de las opciones, los argumentos se escriben tal cual. Considere la ruta a un algoritmo. Es un argumento que simplemente se escribe: `C:/test/mycbot.algo
Ejemplo
-
Comando con opciones
Este comando
accounts, que toma--ctidy--pwd-filecomo sus opciones, muestra datos de todas las cuentas vinculadas a letstrade:1ctrader-cli accounts --ctid=letstrade --pwd-file=C:/test/password.pwd -
Comando con argumentos
Este comando
metadata, que toma la ruta a un algo como su único argumento, muestra metadatos esenciales sobre el algo:1ctrader-cli metadata C:/Users/{username}/Documents/cAlgo/Sources/Robots/mycoolcbot.algo
Cualquier ruta o valor que contenga un espacio debe especificarse usando comillas simples o dobles como se muestra a continuación:
- Argumentos como
'C:/test for cbot/my cbot.algo'o"C:/test for cbot/my cbot.algo" - Opciones como
--pwd-file='C:\test for cbot\password.pwd'o--pwd-file="C:\test for cbot\password.pwd",--start='01/01/2024 12:34'o--start="01/01/2024 12:34"y otros.
Nota
Si elige un estilo para hacer algo, evite usar un estilo diferente más adelante en su código. Por ejemplo, cuando ya ha usado comillas simples (') para una ruta o valor que contiene espacios, debe usar comillas simples para otras rutas o valores que contengan espacios en su código.
Creación de archivos PWD o TXT
Las contraseñas para cTrader ID no se especifican directamente. En su lugar, se guardan en archivos PWD o TXT y luego se usa la opción --pwd-file para especificar la ruta a los archivos (por ejemplo, --pwd-file=C:\test\password.pwd o --pwd-file=C:\test\password.txt).
Abra un documento vacÃo en un editor de texto como el Bloc de notas, pegue o escriba su contraseña (sin espacios en blanco), luego guarde el archivo con la extensión .pwd o .txt.
Todos los comandos CLI
Nota
Las opciones no obligatorias para un comando dado se indican entre corchetes, por ejemplo, [--broker] en la tabla a continuación. Cuando use estas opciones en su código, debe escribirlas sin los corchetes, por ejemplo, --broker.
| Comando | Función | Opciones y argumentos admitidos |
|---|---|---|
--help o -h | Enumerar los comandos disponibles y sus argumentos. | — |
periods | Enumerar los perÃodos de gráfico disponibles. | — |
accounts | Enumerar las cuentas vinculadas a un cTID. | --ctid o -c, --pwd-file, [--broker], [--environment-variables o -e] |
symbols | Enumerar los sÃmbolos disponibles. | --ctid o -c, --pwd-file, --account o -a, [--broker], [--environment-variables o -e] |
metadata | Mostrar metadatos sobre un cBot o indicador. | <cbot.algo> |
run | Ejecutar un cBot en un sÃmbolo especÃfico con un perÃodo dado. | <cbot.algo>, [<params.cbotset>], --ctid o -c, --pwd-file, --account o -a, [--broker], [--environment-variables o -e], --symbol, --period, [--full-access], [--CustomParameter1], …, [--CustomParameterN] |
backtest | Hacer backtesting de un cBot usando datos históricos para el perÃodo, sÃmbolo y otros parámetros especificados. | <cbot.algo>, [<params.cbotset>], --start=<start-time>, --end=<end-time>, --data-mode=<data-mode>, [--data-file=<path>], [--balance=<balance>], [--commission=<commission>], [--spread=<pips>], [--report=<path>], [--report-json=<path>], --ctid=<ctid>, --pwd-file=<path>, --account=<id>, --symbol=<name>, --period=<period>, [--CustomParameter1=<value>], [--environment-variables] |
Explicaciones
| Argumento | Explicación |
|---|---|
<cbot.algo> | Ruta al archivo .algo relevante (por ejemplo, C:/test/mycbot.algo). En los comandos run, metadata y backtest, este parámetro debe especificarse primero. |
<params.cbotset> | Ruta al archivo .cbotset que contiene los valores de los parámetros para el cBot (por ejemplo, C:/test/special-parameters.cbotset). En los comandos run y backtest, este parámetro debe especificarse inmediatamente después de <cbot.algo>. |
| Opción | Explicación |
|---|---|
--version o -v | Versión de cTrader CLI. |
--ctid o -c | Nombre de usuario o correo electrónico de cTID (por ejemplo, --ctid=letstrade, --ctid=letstrade@email.com). |
--pwd-file | Ruta a un archivo PWD o TXT que contiene la contraseña para el cTID especificado (por ejemplo, --pwd-file=C:/test/password.pwd). |
--account o -a | Número de cuenta de operaciones (por ejemplo, --account=1234567). |
--broker | Nombre de un bróker especÃfico (por ejemplo, --broker=spotware). Esta opción se usa para eliminar la ambigüedad en casos donde el cTID especificado tiene varias cuentas de operaciones con diferentes brókeres que comparten el mismo número. |
--symbol o -s | SÃmbolo con el que opera o comercia el algoritmo (por ejemplo, --symbol=EURUSD). |
--period | PerÃodo para el gráfico del sÃmbolo (por ejemplo, --period=h1). En los comandos run y backtest, este parámetro es obligatorio. |
--environment-variables o -e | Si se especifica, permite que los valores de otras opciones (por ejemplo, ctid) se tomen de las variables de entorno en lugar de escribirlos explÃcitamente. |
--full-access | Si se especifica, el algoritmo se ejecuta sin limitaciones de derechos de acceso. |
--CustomParameter1 | El valor de cualquier parámetro personalizado cuyo nombre coincida con CustomParameter1 (por ejemplo, --SpecialPeriods=20). |
--balance | Capital inicial para backtest (por ejemplo, --balance=10000). |
--commission | Comisión por millón para backtest (por ejemplo, --commission=30). |
--spread | Spread en pips para backtest (por ejemplo, --spread=1). |
--data-mode | Ticks, como m1, m1-csv, open, etc., para backtest (por ejemplo, --data-mode=m1). |
--data-file | Ruta al archivo CSV que contiene datos para backtest (por ejemplo, --data-file=C:/test/data.csv). |
--start | Hora de inicio en UTC en el formato DD/MM/YYYY [hh:mm] para backtest (por ejemplo, --start=01/01/2024 o --start='01/01/2024 12:34' ). |
--end | Hora de finalización en UTC en el formato DD/MM/YYY [hh:mm] para backtest (por ejemplo, --end=31/08/2024 o --end='31/08/2024 20:56' ). |
--report | Ruta al archivo HTML donde se guarda el informe de backtest (por ejemplo, --report=C:/test/report.html). |
--report-json | Ruta al archivo JSON donde se guarda el informe de backtest (por ejemplo, --report-json=C:/test/report.json). |
--exit-on-stop | Si se especifica, el proceso CLI termina cuando el cBot se detiene. |
Backtesting en cTrader CLI
El backtesting permite a los operadores utilizar datos históricos para evaluar el rendimiento y la fiabilidad de un cBot, descubrir sus fortalezas o debilidades y experimentar con parámetros. Al simular operaciones en condiciones de mercado pasadas, el backtesting ayuda a determinar cómo puede funcionar un algoritmo antes de comprometer fondos reales en mercados en vivo.
Nota
Aunque el backtesting no garantiza que un algoritmo tenga éxito, proporciona un respaldo estadÃstico que reduce el riesgo de fallos imprevistos en entornos de operaciones en vivo.
Comandos
El comando backtest con todas las opciones posibles:
1 | |
Un ejemplo de comando backtest:
1 | |
Informes
Después de ejecutar el comando backtest, cTrader CLI muestra primero información sobre los parámetros de backtesting.

Cuando finaliza la operación de backtesting, cTrader CLI muestra un resumen de los resultados.

Además, cTrader CLI guarda los resultados del backtesting y detalles útiles en una carpeta Backtesting. Cada operación de backtesting obtiene su propio InstanceID y carpeta Backtesting únicos.
Ruta a una instancia especÃfica de backtesting de cBot: …\data\{cBotName}\{BacktestingInstanceID}\Backtesting
La carpeta de datos en la ruta anterior suele estar en el mismo directorio que el archivo algo del cBot que se especificó durante el backtesting.

El archivo JSON de eventos contiene detalles de cada evento de operación importante.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | |
El archivo TXT (texto) de registro proporciona información sobre el inicio y la detención del cBot, las acciones de operación y los resultados.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
El archivo CBOTSET de parámetros contiene los parámetros y valores utilizados en la operación de backtesting.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
El archivo HTML de informe es un informe GUI que proporciona una visión general de la operación de backtesting, estadÃsticas de operaciones, historial de órdenes y muchos detalles importantes. Se puede ver en cualquier navegador web.
Solución de errores
| Mensaje de error | Solución |
|---|---|
| Excepción no controlada o uso no válido | Revise su código minuciosamente. Corrija errores de sintaxis o elimine comandos, opciones o argumentos desconocidos. |
| cTrader CLI no admite cBots de .NET 4 | Vuelva a compilar su cBot para .NET 6 en la última aplicación de cTrader Windows y utilice el nuevo archivo cBot. |
| No se puede establecer la conexión | Compruebe y arregle la conexión a Internet en su ordenador. |
| Credenciales de cTrader ID no válidas | Compruebe minuciosamente el email, nombre de usuario o contraseña de cTrader ID especificados. |
| No se puede encontrar la cuenta | Utilice el comando accounts para listar todas las cuentas de operaciones vinculadas a su cTrader ID y luego especifique el número correcto. |
| Nombre de sÃmbolo desconocido | Utilice el comando symbols para listar los sÃmbolos disponibles y luego especifique el sÃmbolo correcto. |
| PerÃodo desconocido | Utilice el comando periods para listar los perÃodos disponibles y luego especifique el perÃodo correcto. |
| Stop out (solo backtesting) | Mejore el código de su cBot, modifique sus parámetros para evitar llamadas de margen o haga ambas cosas. |
| No hay datos históricos para el perÃodo especificado (solo backtesting) | Proporcione la ruta a un archivo que contenga datos históricos para el perÃodo especificado o especifique otro perÃodo. |
Se requieren AccessRights adicionales. | Utilice --full-access para otorgar al cBot derechos elevados. |
| Formato de archivo CBOTSET no válido | Considere generar su archivo CBOTSET utilizando la última versión de cTrader Windows para garantizar su validez. |
| Número de cuenta ambiguo | Utilice --broker para especificar explÃcitamente el bróker asociado con la cuenta para evitar ambigüedades. |
| cBot no compatible | Compile su cBot utilizando .NET 6 en el último cTrader Windows, exporte el cBot y luego utilice el archivo exportado. |
| Configuración no válida (solo backtesting) | Compruebe minuciosamente todos los parámetros especificados para el backtesting y corrija los errores. |
API de cTrader Algo en cTrader CLI
Algunos miembros de la API de cTrader Algo se comportan de manera diferente en cTrader CLI. La tabla a continuación enumera los miembros y describe el cambio en su comportamiento.
| Miembro de la API de cAlgo | Comportamiento en cTrader CLI |
|---|---|
MessageBox | Devuelve MessageBoxResult.None. |
Window | Todos los métodos son ignorados. No se muestra ninguna ventana. |
Notifications.PlaySound | Completamente ignorado. |
Chart.TakeChartshot | Devuelve null. |
Resumen
cTrader CLI es una función esencial para los operadores que buscan ampliar el alcance de sus actividades de operaciones con algoritmos, ya que les permite ejecutar y gestionar cBots de manera eficiente con instrucciones sencillas de lÃnea de comandos. Siempre se anima a los usuarios a integrar cTrader CLI con API útiles y servicios de terceros que se adapten a sus necesidades.
