Cómo crear un cBot para cTrader en 5 minutos
En este artÃculo y su correspondiente vÃdeo, vamos a describir una forma rápida de crear un cBot en cTrader Algo. El cBot que crearemos implementará una estrategia de operación simple llamada Three white soldiers y three black crows. Puede obtener más información sobre esta estrategia en nuestra base de conocimientos.
Antes de seguir nuestras instrucciones, asegúrese de haber descargado e instalado la aplicación cTrader para Windows o Mac desde el sitio web oficial. InÃciela y navegue hasta la sección cTrader Algo. Puede encontrarla en el panel izquierdo. Haga clic en la pestaña Algo y deberÃa aparecer la sección cTrader Algo.
Añadir un nuevo cBot
Haga clic en el botón Nuevo en cTrader Algo para comenzar a crear un nuevo cBot. Ingrese un nombre, elija un lenguaje de programación entre C# y Python y continúe hasta que se abra el editor de código.
Añadir la configuración del cBot
Antes de comenzar a implementar una estrategia de operación, echaremos un vistazo a los parámetros y métodos básicos de los cBots. También puede consultar nuestra documentación para familiarizarse con lo que hacen los diferentes parámetros y métodos.
-
Parámetros del cBot – permiten definir atributos configurables como el volumen operado o las distancias de stop-loss/take-profit.
-
Métodos del cBot – definen cómo se comporta su cBot cuando ocurren eventos especÃficos. Hay cuatro eventos principales que debe manejar al desarrollar un cBot de cTrader, y cada uno es gestionado por un método correspondiente proporcionado por cTrader. Estos métodos son
OnStart(),OnTick(),OnBar(),OnStop()en C# yon_start(),on_tick(),on_bar_closed(),on_stop()en Python. Tenga en cuenta que el métodoOnBar()de C# yon_bar_closed()de Python no está incluido en la plantilla de código predeterminada.
La siguiente tabla define estos cuatro métodos en detalle.
| C# | Python | Propósito |
|---|---|---|
OnStart() | on_start() | Se activa cuando una instancia de cBot comienza a operar. Se utiliza para inicializar cualquier variable que planee usar en su cBot, como indicadores, contadores, manejadores de eventos o temporizadores. |
OnTick() | on_tick() | Se activa en cada tick (actualización de precio) en el gráfico de operaciones en el que se está ejecutando una instancia de cBot. Comúnmente utilizado para lógica de entrada o salida rápida basada en datos en tiempo real. Dentro de este método, puede programar condiciones de entrada y salida personalizadas, asà como cualquier otra función auxiliar que necesite ejecutar cuando llegue un nuevo tick. |
OnBar() | on_bar_closed() | Se activa al cierre de cada barra. Dentro de este método, puede programar condiciones de entrada y salida personalizadas o cualquier otra función que necesite ejecutarse en la formación de cada nueva barra. |
OnStop() | on_stop() | Se llama cuando el cBot se detiene. Se utiliza para realizar operaciones finales como cerrar posiciones, guardar el estado y más |
Añadir la lógica de operación
Ahora añadiremos el código para nuestra estrategia de operación. Nuestro cBot deberÃa abrir una posición de compra cuando se formen tres barras verdes en el gráfico y una posición de venta cuando haya tres barras rojas consecutivas.
Primero, necesitamos definir los parámetros de nuestro cBot. Estos parámetros serán completamente personalizables desde la interfaz de usuario de cTrader. Definiremos tres parámetros en nuestro cBot.
- El volumen de cada operación.
- El stop loss en pips.
- El take profit en pips.
Pegue el siguiente código en su editor de código justo debajo de las llaves después de la declaración de la clase (public class NewcBot : Robot)
1 2 3 4 5 6 7 8 | |
Nota
Los cBots de Python utilizan parámetros personalizables declarados en sus archivos .cs.
1 2 3 4 5 6 7 8 | |
Ahora necesitamos implementar la lógica detrás de nuestra estrategia de operación. Pegue el siguiente código en su método OnBar() o on_bar_closed(). Recuerde que este método se llama cada vez que se forma una nueva barra.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 9 10 11 | |
Ahora examinaremos el código más de cerca. cTrader proporciona acceso a las barras históricas del gráfico, lo que nos permite comprobar si las últimas tres barras son todas verdes o todas rojas, respectivamente. En el método OnBar() de C# y on_bar_closed() de Python anterior, primero verificamos si las últimas tres barras fueron todas verdes. Luego evaluamos si estas barras fueron todas rojas.
Si una de las dos condiciones es verdadera, colocamos una orden de mercado utilizando el método ExecuteMarketOrder(). Toma varias entradas (argumentos), siendo las más importantes la dirección de la operación, el sÃmbolo, el volumen operado, el stop loss y el take profit.
En nuestro caso, la dirección de la orden (TradeType.Buy, TradeType.Sell) está determinada por las condiciones de la estrategia de operación. El nombre del sÃmbolo se toma directamente del gráfico en el que se está ejecutando nuestro cBot SymbolName. El volumen de operación, el stop loss y el take profit (C#: Volume, StopLoss, TakeProfit y Python: VolumeInLots, StopLossInPips, TakeProfitInPips) se recuperan todos de los parámetros del cBot que definimos.
Compilar y ejecutar el cBot
Ahora necesitamos comprobar si nuestro cBot se compila correctamente. Por defecto, la ventana de resultados de compilación se encuentra directamente debajo del editor de código. Si no la ve, haga clic en el botón Diseño en la barra superior de la interfaz de usuario de cTrader y seleccione Resultado de compilación. El atajo de teclado para esta acción es Ctrl + W
Después, haga clic en el botón Compilar ubicado en la barra superior de la interfaz de usuario de cTrader. Alternativamente, haga clic derecho en su cBot y haga clic en Compilar en el menú que aparece, o simplemente presione Ctrl + B.

Si la compilación es exitosa, verá un mensaje verde en el área de Resultado de compilación en la parte inferior del editor de código.

Alternativamente, si hay problemas con su código, verá un mensaje rojo y un resumen detallado de todos los errores de compilación.

Después de que su cBot se haya compilado correctamente, puede comenzar a usarlo. Todo lo que necesita hacer es añadir una instancia en un gráfico de operaciones. Para hacerlo, simplemente haga clic en el icono + a la derecha del nombre de su cBot. Verá una lista de todos los sÃmbolos en los que puede ejecutar su cBot.

Vamos a seleccionar EURUSD. Después de elegir un sÃmbolo, se añadirá una nueva instancia de cBot. Verá un nuevo elemento en la lista de cBots con el nombre del sÃmbolo y el marco temporal en el que le gustarÃa operar.
También deberÃa ver los parámetros que ha codificado en la pestaña Parámetros directamente debajo del gráfico de operaciones.

Puede cambiar estos parámetros como desee o simplemente dejarlos en sus valores predeterminados.
Además, verá un botón Reproducir en la parte superior del gráfico de EURUSD.

Para iniciar su instancia, presione este botón. Alternativamente, una copia de este botón también se encuentra a la derecha de su instancia en la lista de cBots a la izquierda. Cualquiera de estos botones iniciará el cBot.
Después de hacer clic en cualquiera de los botones, deberÃa ver que se vuelve naranja, lo que significa que una instancia de nuestro cBot está ahora en funcionamiento. En la pestaña Registro, también deberÃa ver una nueva lÃnea que indica que el cBot ha comenzado.
Hacer backtesting del cBot
Nuestro cBot puede tardar mucho tiempo en abrir una posición en un gráfico de operaciones real. Vamos a ejecutar un backtesting rápido para verlo en acción con datos históricos. Para hacer esto, abra la pestaña Backtesting.

Use el control deslizante del calendario cerca de la parte superior de la pantalla para seleccionar el rango de fechas que le gustarÃa usar para el backtesting. Habilite la opción Modo visual para seguir los resultados del backtesting a medida que ocurren.
Vamos a mover el control deslizante un mes atrás. Haga clic en el botón Reproducir para iniciar el cBot en los datos históricos elegidos.
Después, podrá ver nuevas posiciones abriéndose y/o cerrándose en la pestaña inmediatamente debajo del gráfico de operaciones y a la derecha de la sección Parámetros. EspecÃficamente, después de detectar cualquiera de los dos patrones que hemos codificado, el cBot colocará una orden de compra o de venta.
Ejecutar un backtesting es una forma útil de analizar si su cBot está funcionando correctamente.
Resumen
Esperamos que este artÃculo haya sido útil para demostrar cómo puede crear un robot de operaciones automatizado usando cTrader.
