Cómo optimizar un cBot
En cTrader, es posible crear cBots con cualquier número de parámetros personalizables que afecten sus comportamientos, como los niveles de protección de órdenes o los volúmenes de órdenes predeterminados. Esto plantea la pregunta de cómo exactamente los operadores pueden determinar los valores óptimos de estos parámetros. Afortunadamente, cTrader ofrece una herramienta incorporada que puede manejar la optimización, ahorrando a los operadores un tiempo valioso.
En esta guÃa del usuario, nos enfocamos en cómo los usuarios pueden optimizar sus cBots y demostramos por qué la optimización de cBots es esencial para cualquier desarrollador de Algo.
Cómo funciona la optimización de cBots
Piense en la optimización como una serie de backtests. Cada pase de backtesting ocurre en los mismos datos pero utiliza diferentes valores para cualquier parámetro codificado en un cBot.
Considere un cBot que puede reaccionar a casos cuando las medias móviles de perÃodo rápido y lento se cruzan entre sà (la media móvil rápida cruzando la media móvil lenta). Queremos poder personalizar cuántos perÃodos rápidos y lentos recibe el cBot datos.
Nuestro cBot, por lo tanto, deberÃa tener los siguientes dos parámetros.
1 2 3 4 5 | |
Para definir los valores óptimos de los parámetros, necesitarÃamos probar extensivamente cómo funciona el cBot en varias condiciones de mercado y cuando se le dan diferentes valores para los dos parámetros anteriores. Si fuéramos a realizar estas pruebas manualmente, tomarÃan mucho tiempo sin proporcionar un conjunto de resultados fácil de interpretar.
Afortunadamente, podemos hacer que cTrader ejecute estas pruebas automáticamente y, al concluir, nos proporcione ciertos valores de parámetros que permiten al cBot lograr los mejores resultados posibles. Este proceso se conoce como optimización de cBots.
Acceder a la optimización de cBots
Para acceder a la optimización de cBots, realice las siguientes acciones.
Primero, seleccione una instancia del cBot que desea optimizar. Si es necesario, cree una nueva instancia haciendo clic en el icono más y seleccionando un sÃmbolo, o seleccionando Agregar instancia en el menú contextual que se abre al hacer clic en el icono Más.
Después, cambie a la pestaña Optimización situada justo a la derecha de la pestaña Backtesting. La pantalla central en esta pestaña deberÃa verse asÃ.

Configurar los ajustes de optimización y los parámetros del cBot
Como la optimización es una serie de backtests, puede configurar los mismos ajustes que usarÃa para el backtesting normal. Para hacerlo, haga clic en el icono del engranaje y cambie los valores en el menú recién abierto.

Para seleccionar los parámetros exactos que cTrader necesita optimizar, haga clic en el botón Parámetros inmediatamente a la derecha del icono del engranaje.

En esta subsección, active o desactive las casillas a la izquierda de cada nombre de parámetro para incluir/excluir estos parámetros del proceso de optimización. Tenga en cuenta que el parámetro PerÃodo de tiempo está presente para todos los cBots independientemente de su configuración.
Queremos que la optimización determine los valores óptimos de los perÃodos lento y rápido que nuestro cBot considerará al inicio. Sin embargo, aún no queremos probar otros tipos de medias móviles.
Definir los criterios y el algoritmo de optimización
Es posible determinar qué criterios exactos usará cTrader para seleccionar los valores óptimos de los parámetros entre los pases de backtesting que realizará.
Para hacerlo, haga clic en el botón Criterios representado por el icono de lÃnea ascendente. Verá la siguiente sección.

Los ajustes para cada criterio incluyen dos menús. En el menú de la izquierda, seleccione si el criterio debe ser minimizado o maximizado. En el menú de la derecha, elija el criterio que debe ser minimizado o maximizado de un conjunto de opciones predefinidas. Se pueden añadir nuevos criterios haciendo clic en Añadir criterio.
En la captura de pantalla anterior, queremos que cTrader maximice nuestro beneficio neto y el número de operaciones ganadoras que realiza nuestro cBot. Al mismo tiempo, queremos minimizar el porcentaje máximo de disminución del capital.
Por razones de brevedad, este artÃculo no cubre los criterios de optimización personalizados y el método GetFitness(). Para obtener más información sobre ellos, consulte nuestra documentación técnica.
Para elegir un algoritmo de optimización especÃfico, haga clic en el botón Algoritmo a la derecha del botón Criterios. DeberÃa abrirse la siguiente subsección.

El algoritmo de búsqueda exhaustiva es muy preciso pero consume muchos recursos. Cuando se selecciona la opción CuadrÃcula, cTrader crea una cuadrÃcula de todos los valores posibles de los parámetros y ejecuta todos los backtests necesarios para probarlos. Aunque este proceso es minucioso, puede llevar algún tiempo.
Afortunadamente, cTrader incluye la opción Algoritmo genético. Este algoritmo emula la selección natural considerando cada pase como un individuo, los parámetros del cBot como genes y el grado de ajuste a los criterios de optimización como adaptabilidad. El algoritmo genético se detiene una vez que detecta que cualquier cambio en ciertos valores de los parámetros producirÃa rendimientos decrecientes en la efectividad del cBot.
Como el algoritmo genético consume menos recursos que la búsqueda exhaustiva y aun asà produce resultados precisos, recomendamos seleccionar este método de optimización.
Asignar recursos y realizar la optimización del cBot
Para realizar la optimización del cBot, seleccione el rango de datos históricos sobre los que cTrader ejecutará los pases de backtesting. Para hacerlo, use el control deslizante del calendario en la parte superior de la pestaña Optimización o los menús a la izquierda y derecha del mismo.
Tenga en cuenta que la optimización es un proceso que consume muchos recursos y puede llevar algún tiempo en completarse. Como queremos recibir los resultados relativamente rápido, elegiremos un año como perÃodo de optimización.

cTrader también permite determinar el porcentaje exacto de los recursos de la CPU asignados al proceso de optimización. Para personalizar este ajuste, haga clic en el botón Recursos a la izquierda del menú del calendario más a la izquierda.

En la sección recién aparecida, arrastre el control deslizante para aumentar o disminuir el consumo de CPU.
Después de terminar la asignación de recursos, deberÃa estar listo para proceder con la optimización. Para hacerlo, haga clic en el botón Reproducir a la derecha del menú del calendario más a la derecha. Después de que cTrader cargue los datos históricos, verá que se añaden pases de optimización a la pantalla central en tiempo real.

En la parte superior de la cuadrÃcula, también verá el número actual de pases, el tiempo transcurrido y el tiempo de optimización restante.
Cualquier pase completado se marcará con una marca de verificación verde. Todos los pases durante los cuales su cBot haya alcanzado el stop out se marcarán, en cambio, con una marca de verificación gris.
Nota
Puede guardar y cargar resultados de optimización, lo que le permite transferirlos entre diferentes dispositivos.
Interpretar y aplicar los resultados de la optimización
En la cuadrÃcula central, cTrader mostrará varias métricas para cada pase de backtesting, incluyendo el número de operaciones ganadoras que su cBot ha realizado y el porcentaje máximo de disminución del capital.
De particular importancia es la columna Aptitud que muestra una puntuación de aptitud para cada pase. Piense en una puntuación de aptitud como una métrica que evalúa el grado en que un pase ha maximizado/minimizado sus criterios de optimización elegidos. Las puntuaciones de aptitud más altas indican mayores grados de ajuste con estos criterios.
Para seleccionar rápidamente el pase con la puntuación de aptitud más alta, simplemente active la casilla Autoseleccionar el mejor pase ubicada justo encima de la cuadrÃcula central. Tenga en cuenta que puede activar la casilla Autoseleccionar el mejor pase mientras ocurre la optimización, y cTrader buscará dinámicamente los mejores valores posibles de los parámetros.

Como puede ver en la columna Aptitud, el pase número 33 proporcionó la mejor puntuación de aptitud posible en comparación con todos los demás pases.
Podemos hacer clic con seguridad en Aplicar junto al pase 33, y los valores de los parámetros utilizados durante este pase se aplicarán inmediatamente a nuestra instancia de cBot.

Los valores predeterminados para los parámetros PerÃodos lentos y PerÃodos rápidos eran iguales a 10 y 5, respectivamente.
Al igual que con el backtesting, la pantalla de Visualización de operaciones proporcionará un gráfico de capital y estadÃsticas detalladas de operaciones que resumen las acciones tomadas por nuestro cBot durante un pase en particular. Tenga en cuenta que el gráfico de capital solo se muestra para los 20 mejores pases de la cuadrÃcula central.

Las lÃneas de Saldo y Capital en constante aumento solo refuerzan el hecho de que el pase 33 proporcionó los valores de los parámetros necesarios para que nuestro cBot funcione de manera efectiva.
Resumen
En resumen, la optimización de cBot es una herramienta poderosa para asegurar que sus asesores de trading automatizados estén configurados correctamente. Recomendamos encarecidamente realizar múltiples rondas de optimización con diferentes criterios para tener una idea de qué valores de parámetros serÃan los mejores para cualquier cBot que haya desarrollado usted mismo o adquirido de otros desarrolladores.