Cómo Poner a Prueba un Robot de Trading antes de Comprarlo

MetaQuotes | 28 mayo, 2014

Comprar un robot de trading en MQL5 Market tiene un beneficio distintivo sobre todas las demás opciones similares: es un sistema automatizado que se puede poner a prueba en profundidad en el terminal de MetaTrader 5 Antes de comprarlo, usted debería simular un Asesor Experto en todos sus modos poco favorables en el Probador de Estrategias incorporado para obtener un control absoluto del sistema, puesto que todo Asesor Experto ofrecido en MQL5 Market tiene una versión de prueba disponible.

Recuerde: no solo arriesga la cantidad de dinero que usted paga al comprar un robot de trading, sino también las pérdidas potenciales que podrían resultar del uso de este robot de trading al operar en la cuenta real.

Veamos todo esto usando como ejemplo un Asesor Experto de Tres Medias Móviles gratuito que podemos descargar directamente en el terminal MetaTrader 5. Es una implementación de una estrategia de trading clásica basada en tres medias móviles.

Descargar el Asesor Experto de MQL5 Market directamente en el terminal MetaTrader 5


Métodos de Evaluación del Asesor Experto Basados en Resultados de Prueba

Aunque no hay un método general que le pueda dar una garantía del 100% de su rendimiento en el robot de trading, hay métodos sencillos que le permitirán comprobar los parámetros principales de cualquier sistema de trading particular en el Probador de Estrategias del terminal MetaTrader 5. Los métodos clave son los siguientes: 

Además se debe poner atención a factores potencialmente sospechosos, tales como:

A pesar de que todo lo mencionado arriba es una tarea bastante fácil, la mayoría de los principiantes, así como muchos traders con cierta experiencia, no son conscientes de estos detalles, o no siempre prestan suficiente atención. Señalemos una vez más que cualquier robot de trading descargado del Mercado MQL5 se puede configurar para su simulación directamente en la ventana del navegador.

Iniciar el Asesor Experto usando el menú del navegador

Aparecerá el panel del Probador de Estrategias con el Asesor Experto que seleccionó automáticamente una vez que pulse en "Test" ("Simulación") en el menú de contexto. Todo está listo para simular el Asesor Experto descargado, y estamos preparados para una revisión detallada de los métodos de evaluación señalados arriba.


Simulación de estrés en el modo de retraso aleatorio

El Probador de Estrategias está diseñado principalmente para simular las reglas de trading de un sistema. Esto significa que el Probador de Estrategias emula el entorno ideal para todos los procesos:

Todo está pensado para simular y optimizar la estrategia de trading en el menor tiempo posible. No obstante, viendo que la operación de un robot de trading en un entorno real está lejos de ser ideal e instantánea, se ha reforzado el Probador de Estrategias con un modo de simulación adicional que simula un retraso aleatorio entre el envío y la ejecución de una orden de trading.

Configurar el modo de retraso aleatorio

Este modo de simulación detecta con precisión:

El hecho de obtener resultados de trading marcadamente diferentes tras la ejecución de una sola simulación del Asesor Experto en dos modos, estándar y de retraso aleatorio, le debería resultar sospechoso. En primer lugar, observe el registro del Probador de Estrategias, que contiene numerosos errores de trading. Esto debería ser razón suficiente para tachar este Asesor Experto de su lista. En nuestro caso, no se han detectado errores de este tipo en el curso de la simulación de estrés en el modo de retraso aleatorio, lo que sugiere que el Asesor Experto ha pasado con éxito la primera mitad de la simulación.

Ahora veamos si hay diferencias entre los resultados obtenidos usando simulaciones independientes ejecutadas en dos modos. El número significativamente menor de operaciones y el beneficio obtenido en el modo de retraso aleatorio sugieren que la estrategia es altamente dependiente de la calidad de la transmisión y ejecución de órdenes de trading, y solo puede obtener beneficios en determinadas condiciones ideales. El creador puede haberlo hecho sin querer, caso que se suele dar muy a menudo. Pero este "fallo" puede resultar desastroso en su cuenta de trading.

Comparación de resultados de simulación en modos de ejecución de órdenes de trading diferentes

En nuestro ejemplo, cambiar a un modo de ejecución de órdenes de trading diferente no ha afectado al número de operaciones y transacciones. Los resultados de la simulación son solo ligeramente diferentes, lo que se puede explicar a causa de los pequeños cambios de precio en transacciones a causa de las recuotas.  

Conclusión: el Asesor Experto Tres Medias Móviles ha pasado esta prueba. La simulación de estrés en el modo de retraso aleatorio no tiene un efecto sustancial en los resultados de trading.


Simulación en un entorno de trading diferente

Ejecute una simulación del robot de trading bajo las condiciones especificadas en su descripción en MQL5 Market. A continuación, conéctese a otra cuenta de broker y ejecute la simulación de nuevo. Es similar a la simulación de estrés anterior, y le permite ver cómo los pequeños cambios en precios y condiciones de trading (diferencial, niveles permisibles de StopLoss/TakeProfit, etc.) pueden afectar a los resultados de trading.

Por ejemplo, digamos que tiene los resultados de la simulación del Asesor Experto para EURUSD en la cuenta del broker A. Ejecute la misma simulación en EURUSD, pero esta vez en la cuenta del broker B. Si los resultados son muy diferentes, es una buena razón para reconsiderar la necesidad de este robot de trading.


Simulación en un símbolo/intervalo cronológico diferente

La mayoría de los robots de trading se desarrollan para operar en un símbolo particular, y algunos de ellos incluso requieren ser usados en un intervalo cronológico específico. Parece ser algo razonable que cada instrumento se comporta de una manera particular. Parece ser algo razonable que cada instrumento se comporte de una manera particular.

Descárguese una versión de prueba del Asesor Experto e inicialícelo en un símbolo y/o intervalo diferente. En primer lugar, asegúrese de que el Asesor Experto no se detiene con un error crítico o llena el registro con mensajes de error de trading por haberlo usado en condiciones de inicio inapropiadas. En segundo lugar, compruebe que una estrategia de trading rentable no se ha convertido en una estrategia de pérdidas extremas a causa de los cambios mencionados en la configuración; esto puede pasar cuando se ha realizado un ajuste de curva.

Una de las formas más fáciles de llevar a cabo este tipo de simulación en el Asesor Experto es optimizar desde cero todos los símbolos seleccionados en Market Watch (Observación de Mercado). Ejecutamos la optimización del Asesor Experto en ese modo en un intervalo cronológico H1 bastante largo con una generación en "todos los ticks" y obtendremos una rápida respuesta a la segunda pregunta.

 Optimización en todos los símbolos seleccionados en Market Watch

Los resultados de esta optimización muestran que la estrategia tiene el derecho de existir, lo que demuestra un número estadísticamente insuficiente de operaciones en cada símbolo sin dar resultados realmente malos. Tenga en cuenta que hemos simulado una estrategia en los 13 símbolos en Market Watch con los mismos parámetros establecidos por defecto.

Resultado de la optimización en todos los símbolos seleccionados en Market Watch

Ciertamente no podemos esperar que todos los Asesores Expertos funcionen igual de bien en cualquier símbolo e intervalo cronológico. Por ello, merece la pena comprobarlo en el Probador de Estrategias usando este método. No solo revelará posibles códigos de error, sino que también puede dar nuevas ideas.

Conclusión: el comportamiento del Asesor Experto de tres medias móviles ha sido normal al simularlo en un símbolo / intervalo cronológico diferente. No se detectaron errores de código obvios durante la simulación.


Backtesting en datos malos del historial

Hemos descubierto que el Asesor Experto da sus mejores resultados al trabajar en GBPUSD. ¿Pero qué pasaría si esto no fuera un patrón consistente, y este comportamiento se debiera al intervalo de simulación seleccionado de 01/01/2012 a 28/09/2012, que por casualidad resulta ser favorable? Para responder a esta pregunta, simularemos el Asesor Experto con los mismos parámetros en el año 2011, tomando como intervalo 01/01/2912-31/12/2011. Ejecutemos la simulación y observemos los resultados.

Backtesting en datos malos del historial

El Asesor Experto ya no resulta rentable, y ha pasado a ser inmediatamente mucho menos impactante. Además, las pérdidas sufridas en 2011 superan significativamente los beneficios demostrados en el Probador de Estrategias en el intervalo 01/01/2012-28/09/2012. No obstante, ahora somos conscientes de pérdidas potenciales, aún al operar en GBPUSD.

Conclusión: el Asesor Experto de tres medias móviles requiere un desarrollo mayor para asegurar la respuesta automática adecuada a cambios en el comportamiento de mercado, o de lo contrario se deberán encontrar los parámetros correctos a través de la optimización.


Backtesting sobre un período extendido de historial

Al dar descripciones, los creadores de robots de trading intentan mostrar sus productos en su mejor momento, y por tanto facilitan informes y gráficos de simulación con parámetros óptimos para un intervalo particular. Puesto que normalmente pasa un tiempo considerable desde la fecha de publicación de un robot de trading hasta la fecha en la que usted se interesa por él, podemos ejecutar un "forward testing".

Forward testing es una simulación durante un período del historial que no se consideró al seleccionar los parámetros óptimos. Continuaremos el análisis de este Asesor Experto en GBPUSD durante un mayor intervalo de simulación, incluyendo datos de historial tras el 28 de septiembre de 2012. La fecha final se establece en el 26/11/2012, es decir, añadimos dos meses más. Así, siguiendo la simulación hecha en el período de 01/01/2012 al 26/11/2012, obtendremos un nuevo gráfico de simulación:

Backtesting sobre un período extendido de historial

En nuestro caso, los resultados demostrados por el Asesor Experto de tres medias móviles en GBPUSD en el período de historial extendido no muestra debilidad alguna en los parámetros de trading. Sin embargo, esto es muy inusual.

Conclusión: la simulación del Asesor Experto de tres medias móviles en GBPUSD en el período de historial extendido no muestra debilidad alguna en los parámetros de trading.


Forward testing

El forward testing se usa para determinar la estabilidad del sistema de trading durante cambios en el comportamiento del mercado. La optimización de parámetros en el Probador de Estrategias nos permite obtener los parámetros con los que el robot de trading consigue los mejores resultados en datos del historial dentro de un intervalo determinado. Pero esto no nos garantiza que los parámetros obtenidos sean también los mejores para operaciones de trading en el futuro.

Los traders que desarrollan sistemas de trading automatizados a menudo confunden conceptos como la optimización y la adaptación a la curva. La línea entre una optimización buena y una adaptación a la curva es muy fina y difícil de encontrar. Aquí es donde el forward testing ha demostrado ser muy útil, permitiendo determinar objetivamente los parámetros obtenidos.

Durante la optimización en el Probador de Estrategias de MetaTrader 5, usted puede elegir el forward testing en los parámetros óptimos resultantes y configurar los límites necesarios. Ejecutemos el forward testing de nuestro robot de trading con la configuración tal y como se muestra abajo.

Configurar el modo forward

Forward se configura en 1/4, lo que significa que el intervalo especificado 01/01/2012-26/11/2012 se dividirá en 4 partes. Los primeros 3/4 del historial se usarán para encontrar los parámetros óptimos y para el mejor 25% de los pases (conjuntos de parámetros del Asesor Experto) se realizará una simulación forward en el 1/4 de datos de historial restante.

Especifique los parámetros a optimizar: seleccionaremos aquellos que se supone que tendrán impacto en la lógica de trading. Por tanto, no optimizaremos parámetros a cargo de la gestión del dinero.

Parámetros a optimizar

La combinación del paso de arriba, así como los valores de inicio y stop, han resultado en casi 5 millones de pases. En estas circunstancias, es razonable usar el algoritmo genético e involucrar a la red de cloud MQL5 en la optimización.

De modo que observemos los resultados de la optimización, incluyendo pases forward que han tomado un total de 21 minutos, y cuestan 0,6 créditos para más de 4.000 pases usando los agentes de nube. Puede encontrar un ejemplo de cómo se calculan los costes en el artículo MQL5 Cloud Network: Are You Still Calculating? ("Red de nube de MQL5: ¿Todavía sigue calculando?")

Gráfico de resultados de forward testing

A primera vista, parece haber algo que no funciona. Tras comprobar los resultados, podemos ver que los valores de los tres primeros parámetros optimizados son los mismos a través de todos los pases. Y solo los dos últimos parámetros Inp_Signal_ThreeEMA_StopLoss y Inp_Signal_ThreeEMA_TakeProfit tienen valores variables.

Tabla de resultados de pase forward

Teniendo en cuenta todo esto, podemos deducir dos cosas:

Comprobemos ambas deducciones con una reoptimización con la misma configuración y parámetros de entrada. Esta vez, el gráfico de resultados de simulación forward tiene un aspecto diferente.

Otro gráfico de reoptimización en el período forward

Como resultado de la optimización, ahora podemos ver tres tendencias. Esto significa que los dos parámetros optimizados en último lugar todavía parecen incidentales al robot de trading especificado.

Conclusión: la optimización del Asesor Experto de tres medias móviles en GBPUSD ha demostrado que la lógica de trading solo depende de tres parámetros de los siete que tiene.

Llevemos a cabo un último intento y eliminemos parámetros innecesarios de la optimización. Ahora solo tenemos 1.650 pases.

Conjunto de parámetros reducido para la optimización

Por tanto, una búsqueda completa de parámetros tendría más sentido, en lugar de una optimización genética. La Red de Nube de MQL5, en este caso, nos proporcionará más agentes, y así, el tiempo necesario para completar el proceso se reducirá considerablemente.

Usar agentes de Red de cloud de MQL5 durante la búsqueda completa de parámetros

La tarea se ha completado en 7 minutos con 2.000 agentes de nube involucrados, y el gráfico de simulación forward tiene buen aspecto.

Gráfico de optimización

La mayoría de los pases durante el período forward resultaron ser rentables, con el número de puntos por encima de los 10.000 dólares iniciales mucho mayor que en la zona de pérdidas. Tiene un aspecto prometedor, pero no significa que los conjuntos de parámetros resultantes vayan a ser rentables también en el futuro.


Número de parámetros en un sistema de trading

Hemos tenido la posibilidad de ver que no todos los parámetros de estrategia disponibles para configurar un robot de trading son igualmente significativos y capaces de afectar los resultados de trading. En nuestro caso, los valores Inp_Signal_ThreeEMA_StopLoss y Inp_Signal_ThreeEMA_TakeProfit no tuvieron apenas impacto en el rendimiento del Asesor Experto. A pesar de ello, es más frecuente el encontrarse con un robot de trading con un gran número de configuraciones de parámetros.

Una buena cantidad de parámetros le permitirá realizar configuraciones muy precisas para adaptar el funcionamiento de un robot de trading a un período del historial determinado, lo que muy probablemente se revelará durante la optimización.

La adaptación de la curva significa que el Asesor Experto probablemente no mostrará el mismo nivel de rentabilidad en datos más allá del intervalo especificado para la optimización, tal y como lo hizo en los datos de simulación. Y lo peor de todo es que puede dar resultados bastante opuestos, llevando a la generación de pérdidas.

Se cree que cuantas menos configuraciones de parámetros tenga un sistema de trading, menor será la posibilidad de que el patrón identificado desaparezca en el futuro. Y viceversa: cuantos más parámetros haya en el sistema, menor será la posibilidad de que el mercado mantenga sus características en línea con un Asesor Experto configurado de este modo. Como prueba de ello, recomendamos encarecidamente que se familiarice con los resultados del análisis de trading facilitado en el artículo Optimization VS Reality: Evidence from ATC 2011 (Optimización versus Realidad: Evidencia de ATC 2011), al que nos referiremos abajo.

Correlación entre saldo y número de parámetros

El gráfico muestra los resultados de trading de los participantes en el Automated Trading Championship 2011 (Campeonato de Trading Automatizado 2011, o ATC 2011). El eje vertical muestra el saldo de la cuenta al final del campeonato, y el eje horizontal muestra el número de parámetros externos del Asesor Experto. Los Asesores Expertos se representan con diamantes rojos. Se puede observar claramente que los Asesores Expertos con un gran número de parámetros perdieron dinero, o incluso entraron en bancarrota, al realizar trading en el período forward del campeonato.

La ausencia de parámetros externos en un robot de trading a la venta no dice nada sobre la generalidad de las reglas de trading incluidas, y no se puede pasar por alto. El creador del Asesor Experto debe de haber hilado los parámetros externos dentro del robot de trading por algún motivo.


Un factor de beneficio muy alto

A la mayoría de los traders no les gustan las operaciones con pérdidas, y las toman como una señal de operación fallida de un sistema de trading. En realidad, estas no se pueden evitar a causa de la naturaleza del trading en los mercados financieros. Cualquier operación al abrir una posición puede en última instancia resultar en ganancias o pérdidas. Las pérdidas en trading son inevitables, y se consideran una forma de pago natural e inevitable, al igual que en cualquier negocio.

Muchos creadores de sistemas de trading automatizados llegan a extremos, tratando de reducir el número de operaciones con pérdidas y pérdidas brutas al mínimo. Para conseguir esto y mejorar los resultados que se podrían obtener en el Probador de Estrategias, añaden filtros adicionales que les permiten evitar operaciones con pérdidas, mejorando así el factor de beneficio. Los filtros adicionales tienen sus propios parámetros y configuración, que se añaden al número total de parámetros de entrada.

El factor de beneficio se define como el beneficio bruto dividido por la pérdida bruta. El factor de beneficio de sistemas rentables siempre es mayor de 1. No obstante, si se ha llegado a extremos y se ha sobreoptimizado un sistema de trading en el Probador de Estrategias, esta figura podría ser mucho mayor. Echemos un vistazo a otro gráfico del artículo Optimización versus Realidad: Evidencia de ATC 2011.

Factor de beneficio muy alto como resultado de la optimización

Queda claro que casi todos los robots de trading que tienen un factor de beneficio alto durante la simulación en datos del historial ni siquiera se acercaban a sus resultados de backtesting al simularlos en el período forward del Campeonato de Trading Automatizado 2011, y lo perdieron virtualmente todo. Esto sugiere que el factor de beneficio muy alto demostrado en el Probador de Estrategias de debió a la adaptación de la estrategia a un determinado período de tiempo para la optimización del robot de trading.


Enorme beneficio en datos del historial

Otro hecho alarmante puede ser un beneficio enorme en la descripción de un robot de trading. Si los informes del Probador de Estrategias adjunto muestran un saldo por las nubes, probablemente tiene que ver con la adaptación a la curva. A menudo, los creadores de estas "máquinas de hacer dinero" ni siquiera se dan cuenta de que sus sistemas están sobreoptimizados y tienen demasiados parámetros externos. Demostremos esto con otro gráfico del informe ya mencionado Optimización versus Realidad: Evidencia de ATC 2011.

Enorme beneficio en datos del historial

Los compradores de estos "griales", por regla general, carecen de experiencia, y suelen caer en la trampa atraídos por los enormes beneficios en los datos del historial. En estos casos, la ilusión de ganancias que ese robot de trading puede generar es genuina y mutua.


Manipulaciones con gestión de dinero

La creación de reglas especiales de manipulación de trading que le permitan pasar por datos del historial malos en el Probador de Estrategias con pérdidas mínimas y ganancias maximizadas en transacciones con éxito es el enfoque más complicado y raro del desarrollo anormal de un robot de trading. Está lejos de ser lo que se considera gestión de dinero.

La mejor manera de detectar esto es llevar a cabo una simulación en datos que quedan fuera del período del historial usado para obtener los resultados que muestra el creador en la descripción del robot de trading. Cuanto más extensiva sea la adaptación, más alta será la posibilidad de que el robot de trading no pase la prueba.


No se fíe de nadie. Ni siquiera de sí mismo.

Desafortunadamente, un robot de trading, al igual que cualquier otro programa complejo, puede contener errores no intencionales que no se pueden detectar de otra forma que operando online. Ningún creador de robots de trading puede garantizar que su programa está libre de errores y que podrá gestionar correctamente todas las situaciones más allá de lo estándar. Incluso el Asesor Experto que haya pasado una simulación con éxito puede llevar a un error o fallo a causa de un error crítico al ponerse en unas condiciones inesperadas que el creador no pudo prever. La única garantía implícita en este caso sería la experiencia y reputación del creador del robot de trading.

Y, por supuesto, un Asesor Experto que haya demostrado resultados positivos en el servicio de Signals durante un período de tiempo suficiente será más fiable que uno que no lo haya conseguido. En cualquier caso, no se deje engañar a la hora de calcular sus futuros beneficios, y recuerde las dos reglas que siempre valen:

  1. no se fíe de nadie,
  2. y ningún éxito en trading del pasado le puede garantizar ganancias en el futuro.


Le recomendamos también leer los siguientes artículos sobre Market: