Saltar a contenido

Hacer backtesting de un cBot en cTrader

Este artículo explica cómo hacer backtesting de robots de operaciones en cTrader Windows y Mac.

El backtesting es una herramienta para evaluar cBots permitiéndoles operar con datos históricos del mercado bajo ciertas condiciones predefinidas.

Al hacer backtesting, puede ejecutar una instancia de cBot en movimientos pasados del mercado. Después, cTrader generará un informe detallado sobre las operaciones de negociación realizadas por su cBot y las estadísticas finales de capital/balance.

Nota

Cualquier acción de negociación realizada al hacer backtesting de cBots no afectará ninguna de sus cuentas. El backtesting no está destinado a tratar con fondos reales. En su lugar, esta función solo existe con fines de análisis.

Para hacer backtesting de un cBot, seleccione una de sus instancias y cambie a la pestaña Backtesting.

Image title

Configuración de backtesting

Para configurar cómo funciona el backtesting, haga clic en el icono de engranaje ubicado en la esquina superior izquierda. cTrader debería abrir el siguiente menú.

Image title

Las opciones en este menú se definen de la siguiente manera. Todos los parámetros relacionados con el dinero (como el capital inicial) se especifican en USD.

Nombre de la opción Acción y descripción
Capital inicial Defina el capital inicial con el que operará su cBot al operar.
mín. Establezca la tasa de comisión por millón de unidades operadas.
Datos Elija en qué datos de series temporales se probará su cBot. Las opciones disponibles son las siguientes.
  • Datos de tic desde el servidor. Los datos se tomarán directamente del servidor en base a cada tic. Esta es la fuente de datos históricos más precisa.
  • Barras de M1 desde el servidor. Los datos se tomarán de barras de un minuto generadas por el servidor.
  • Barras de M1 en archivo CSV. Los datos se tomarán de barras de un minuto definidas en un archivo CSV almacenado localmente.
  • Barras de H1 desde el servidor Los datos se tomarán de barras de una hora generadas por el servidor.
Spread Seleccione el/los valor(es) de spread que se aplicará(n) durante el backtesting. Las siguientes opciones están disponibles.
  • Valor fijo. Solo se aplicará un valor durante todo el backtesting. Puede elegirlo de un menú desplegable, introducir un valor personalizado o hacer coincidir el valor con el spread actual del símbolo (que se actualiza en cada tic).
  • Aleatorio. Establezca las tasas de spread mínima y máxima. Cuando su cBot coloque una orden, se aplicará a esta orden un valor de spread aleatorio que oscilará entre las tasas elegidas.

Datos de M1 CSV de muestra

Para obtener datos de operaciones desde su máquina local, asegúrese de crear un archivo CSV separado por comas que contenga los siguientes datos:

  • Fecha
  • Por hora
  • Precio de apertura
  • Precio máximo
  • Precio mínimo
  • Precio de cierre
  • Volumen

Ejemplo

1
2
3
4
2003.06.18,16:01,1.11423,1.11428,1.11332,1.11374,19
2003.06.18,16:02,1.11364,1.11436,1.11361,1.11405,7
2003.06.18,16:03,1.11402,1.11455,1.11400,1.11440,5
2003.06.18,16:04,1.11446,1.11461,1.11401,1.11447,14

Procedimiento y modos de backtesting

Especifique el período de prueba utilizando los controles que se resumen a continuación:

  • Utilice el control deslizante interactivo en la parte superior de la pestaña Backtesting.
  • Seleccione los valores necesarios de los menús de calendario a la izquierda y derecha del control deslizante.
  • Introduzca valores personalizados (utilizando el formato DD:MM:AAAA) en los campos a ambos lados del control deslizante.

Image title

Puede ejecutar el backtesting utilizando los siguientes modos:

  • Prueba en tiempo no real: Su bot realiza todas las operaciones requeridas en secuencia; después, solo tiene acceso a los resultados finales, incluidas las estadísticas de operaciones, el gráfico de capital, etc.
  • Prueba en tiempo real (modo visual): Los datos históricos que ha proporcionado se pasan a su cBot a una cierta velocidad de reproducción que puede personalizar. Como resultado, puede ver las operaciones de trading a medida que se realizan. Todas las estadísticas de operaciones también se actualizan a la velocidad de reproducción que ha elegido.

Prueba en tiempo no real

Una vez finalizada la configuración, haga clic en el botón Reproducir a la derecha del control deslizante. Dependiendo de la duración del período especificado y de las especificaciones de su máquina local, es posible que tenga que esperar varios minutos antes de que cTrader genere los resultados.

Backtesting en tiempo real (modo visual)

Especifique la configuración requerida, incluido el período de prueba, y active la opción Modo visual ubicada debajo del control deslizante del calendario.

Image title

Ajuste la velocidad de reproducción de datos arrastrando el control deslizante Velocidad o utilizando el menú a su derecha. Una vez que haya terminado la configuración, haga clic en el botón Reproducir.

cTrader comenzará entonces a mostrar un gráfico de operaciones para el período elegido en tiempo real, acelerado utilizando su configuración de velocidad de reproducción. Tenga en cuenta que puede ajustar la velocidad de reproducción dinámicamente mientras se realiza el backtesting.

Dependiendo de su código, su cBot también realizará operaciones de trading en tiempo real reaccionando a las señales de análisis técnico que se materializan en el gráfico. Las estadísticas de backtesting se actualizarán automáticamente en función de las acciones realizadas por su cBot.

Dependiendo del período elegido y de la velocidad de reproducción, las pruebas en modo visual pueden llevar mucho tiempo. No obstante, si su cBot no se comporta como se espera, puede probar sus reacciones a diversas condiciones de mercado utilizando pruebas en modo visual y datos de operaciones personalizados obtenidos de un archivo CSV.

Backtesting con gráficos Renko y barras de rango

cTrader admite el backtesting de cBots en gráficos Renko y de barras de rango. Para realizar dicho backtesting, cree una nueva instancia de cBot y seleccione un gráfico Renko/de barras de rango como gráfico de operaciones al que está adjunto.

Image title

Alternativamente, con una instancia de cBot ya seleccionada, utilice el menú selector de gráficos en la parte superior de la pantalla haciendo clic en el icono Más. En el menú que ha aparecido, seleccione uno de los umbrales de volumen disponibles para generar ladrillos Renko o barras de rango.

Image title

Después de que cTrader genere un gráfico Renko/de barras de rango para el símbolo elegido, cambie a la pestaña Backtesting. En ella, configure el modo/configuración de backtesting como lo haría normalmente. Haga clic en el icono Reproducir para realizar un backtesting en el gráfico elegido.

Resultados del backtesting

cTrader genera varias estadísticas de operaciones para mostrar los resultados del backtesting. Para ver estos datos, vaya a las pestañas ubicadas justo debajo del gráfico de operaciones.

Image title

El gráfico de capital

Cuando se realiza el backtesting (independientemente de si utiliza el modo visual), cTrader genera un gráfico de capital con el número de operaciones en el eje X y el saldo de la cuenta en el eje Y. Contiene las siguientes estadísticas:

  • La línea amarilla muestra el saldo de la cuenta a medida que cambia con cada operación.
  • La zona gris resalta cómo el capital total aumenta o disminuye dependiendo de las operaciones realizadas por su bot.

Para tener una mejor idea de lo que hace el gráfico de capital, considere el ejemplo anterior. Muestra que nuestro bot ha realizado más de 290 operaciones durante el backtesting. Con cada cambio en el saldo de la cuenta, también podemos ver un cambio correspondiente en el capital total.

Estadísticas de operaciones

La pestaña Estadísticas de operaciones contiene datos sobre cómo ha funcionado exactamente su cBot durante el backtesting. Incluye los siguientes campos.

Nombre del campo Definición
Beneficio neto El beneficio neto total de todas las operaciones.
Factor de beneficio El ratio calculado dividiendo el beneficio neto total por la pérdida neta total.
mín. El monto total de comisiones pagadas por las operaciones realizadas por su cBot.
Disminución máxima del saldo La cantidad máxima de la caída del saldo.
Disminución máxima del capital La cantidad máxima de la caída del capital.
Total de operaciones El número total de operaciones realizadas por su cBot.
Operaciones con beneficio El número total de operaciones que han resultado en beneficios realizados.
Máximo de operaciones ganadoras consecutivas El mayor número de operaciones consecutivas que han generado beneficios realizados.
Mayor operación ganadora El mayor beneficio realizado generado por una operación.
Operaciones con pérdidas El número total de operaciones que han generado pérdidas realizadas.
Máximo de operaciones perdedoras consecutivas El mayor número de operaciones consecutivas que han generado pérdidas realizadas.
Mayor operación perdedora La mayor cantidad de pérdidas realizadas generadas por una operación.
Operación media Los P&L realizados promedio generados por todas las operaciones.

Posiciones

La pestaña Posiciones muestra todas las posiciones que están actualmente abiertas por su cBot. Está estructurada de manera similar a la pestaña Posiciones en la pantalla regular de Visualización de operaciones y contiene los mismos datos.

Image title

Haga clic en el icono de engranaje en la esquina inferior derecha para personalizar qué datos se muestran en la tabla central.

Órdenes

La pestaña Órdenes contiene información sobre las órdenes que han sido colocadas por su cBot. Su estructura y apariencia copian la pestaña Órdenes en la pantalla principal de Visualización de operaciones.

Image title

Historia

La pestaña Historial muestra estadísticas sobre todas las operaciones de apertura y cierre que se han registrado durante el backtesting. De manera similar a otras pestañas discutidas anteriormente, copia la pestaña Historial en la pantalla de Visualización de operaciones.

Image title

Eventos

La pestaña Eventos enumera todas las comunicaciones relacionadas con el servidor y muestra varios parámetros de estos eventos.

Image title

Registro

Por último, la pestaña Registro muestra la salida de su cBot durante todo el backtesting. La lista de mensajes es totalmente buscable y filtrable por tipo de evento e instancia.

Image title