Probando y optimizando Expert Advisors en Metatrader 5

IndicatoriNosu octubre 22, 2010 3 Comentarios
Compártelo: Facebook GoogleTwitterEmail

Toda estrategia debe ser sometida a prueba tanto para estudiar su viabilidad como para obtener los parámetros que nos darán los mejores resultados y mayores beneficios con el menor riesgo posible. Esta prueba se puede llevar a cabo con datos pasados del mercado (backtesting) o en tiempo real (forward testing). Si la estrategia la tenemos programada en un Expert Advisor podremos llevar a cabo la prueba con datos pasados utilizando el Strategy Tester (probador de estrategia). El Strategy Tester es una aplicación de Metatrader. Para arrancar el Strategy Tester ve al menu “Ver” y selecciona “Probador de Estrategia”.

Ejecutar Strategy Tester Metatrader 5

La primera prueba preliminar

Para el desarrollo de los ejemplos de este artículo voy a utilizar el EA ExpertMACD que viene en la instalación predeterminada de Metatrader 5.

Una primera prueba la podemos realizar con todos los pares de divisas disponibles. Con los resultados que obtengamos de esta prueba preliminar seremos capaces de elegir aquellos pares de divisas en los que el EA tiene un mejor comportamiento y será con estos pares en los que hagamos la optimización del EA.

Ten en cuenta que la opción de prueba en todos los pares de divisas (símbolos) toma los pares de divisas disponibles en la ventana de observación del mercado (Market Window). Así que asegúrate antes de comenzar la prueba que en esta ventana aparecen todos, o al menos la mayoría, los pares de divisas objetivo para tu EA. Para cambiar los símbolos mostrados haz clic derecho sobre la ventana de observación del mercado y selecciona “Símbolos…”.

Tras iniciar el Strategy Tester podrás ver una nueva ventana en la parte inferior del terminal correspondiente al Strategy Tester. Está ventana tiene varias pestañas. Para comenzar situate en la pestaña “configuración”. Aquí selecciona el EA que quieres probar, elige el período o timeframe y elige la opción “Optimización->Todos los símbolos seleccionados en MarketWatch”. Una buena opción es que selecciones también “Balance + max Profit Factor” en el parámetro de resultados de optimización así como modo de ejecución “Normal-Every Tick”.

Primera prueba en todos los pares

Los diferentes tipos de optimización tienen características específicas; puedes ver los detalles de cada tipo en la ayuda de Metatrader 5. El parámetro “Forward” debe ser puesto en No ya que vamos a realizar la optimización para datos pasados!!

Pasa ahora a la pestaña Inputs del Strategy Tester. En esta pestaña podrás elegir que parámetros optimizar. No obstante, estamos en la primera prueba preliminar cuyo objetivo es ver en que pares nuestro EA puede ser más rentable. Por ello, esta prueba se realizará con los valores de parámetros que aparecen en la columna “Valor”. Los que aparecen por defecto son los que vienen programados en el EA de forma predeterminada. Los valores predeterminados suelen ser los sugeridos por la estrategia o los valores más comunes de los indicadores técnicos usados por el EA. Es conveniente para esta prueba preliminar dejarlos tal cual.

Parámetros de entrada en la prueba preliminar

Ahora vuelve a la pestaña “Configuración” y haz clic en el botón “Empezar”. Cuando el test esté completo aparecerá un mensaje en la pestaña “Diario”. Ahora, en la pestaña “Resultados de optimización” se podrán ver los datos más relevantes de la prueba del EA para cada par de divisas basados en nuestro criterio de optimización (que fue Balance + max. Profit Factor).

Ordenemos los resultados de mayor a menor haciendo clic en la parte superior de la columna “Resultado”.

Strategy Tester: Análisis de resultados de prueba preliminar

Se puede ver que el EA probada puede ser rentable en los pares EUR/USD, AUD/CAD, USD/CAD, USD/JPY, etc en el timeframe elegido (H1 en el ejemplo). Ahora deberemos realizar la prueba preliminar en otros timeframes y comparar los resultados de varios timeframes entre sí para elegir el timeframe más adecuado. Tras obtener los resultados para todos los pares y en varios timeframes elegimos los pares y períodos en lo que el EA puede tener mejor comportamiento y se procede a la optimización. En este artículo, a modo de ejemplo, vamos a optimizar el EA ExpertMACD que viene con Metatrader 5 para el par EUR/USD en H1. A la hora de elegir el par y el timeframe debe tenerse en cuenta:

  • Factor de benefecio o Profit Factor: El factor de beneficio es la relación entre el beneficio total (suma del beneficio de todas las operaciones positivas) y las pérdidas totales (suma de las pérdidas de todas las operaciones con resultado negativo). Por tanto, a mayor factor de beneficio más rentable es la estrategia.
  • Drawdown %: Esto es drawdown relativo a la pérdida más grande sufrida por la estrategia (en tanto por ciento). A menor drawdown, mejor es la estrategia.
  • Factor de recuperación (Recovery Factor): es una forma de medir el grado de riesgo de la estrategia. Es el ratio del beneficio y el drawdown máximo.

Una vez elegido el par de divisas y el timeframe, vayamos a optimizar nuestro Expert Advisor.

Optimizar el Expert Advisor

La optimización es el proceso por el cuál se ajusta el rendimiento del EA probándolo con distintos valores de los parámetros de entrada. Es igual que una prueba, pero en lugar de realizar una única prueba, se realizan numerosas pruebas consecutivas cada una con valores diferentes de los parámetros de entrada con el objetivo de encontrar aquellos parámetros con los que el EA ofrece los mejores resultados.

Para comenzar, nos ponemos en la pestaña de configuración del Strategy Tester. Elegimos el EA, el par de divisas (símbolo) y timeframe. Ponemos ejecución normal, modo Every Tick. Para la optimización seleccionamos “Algoritmo basado en Fast Genetic” con resultados tipo Balance + max Profit Factor. Puedes detalles de los diferentes tipos de optimización en la ayuda de Metatrader 5 y elegir en tu caso el tipo que más se ajuste a tus necesidades.

Optimización de Expert Advisors: configuración

Ahora debemos ir a la pestaña “Inputs” del Strategy Tester. Aquí podemos ver todos los parámetros del EA disponibles para su optimización. Debemos seleccionar sólo aquellos que queramos optimizar. En nuestro ejemplo vamos a optimizar 5 parámetros del EA: el período lengo del MACD, el período rápido, el período de la línea de señal del MACD, el StopLoss y el TakeProfit.

Optimización de Expert Advisor: parámetros inputs

Cada parámetro que vamos a optimizar se marcará en las casillas de la izquierda. Para cada uno de ellos podemos especificar el valor en el que comenzar la prueba y el valor en el que terminar así como el incremento que ha de darse en cada paso. Por ejemplo, si optimizamos el período rápido del MACD comenzando en 12, con parada en 20 y un paso de 2, se hará la prueba con el valor 12, 14, 16, 18 y 20 (5 pases). La cantidad de parámetros a optimizar y los valores de comienzo, parada y paso de cada parámetro determinarán el número de pasadas que tendrá que realizar el strategy tester.

Elegir los valores de optimización de parámetros

Este es un paso importante. Veamos:

  • Empezar: Este es el valor de inicio que se usará para el parámetro o variable seleccionado para su optimización. Por ejemplo, en nuestro caso hemos elegido 12 como el inicio para el parámetro de período rápido del MACD. Este será el valor mínimo de período rápido del MACD utilizado por el probador de estrategias durante la optimización.
  • Paso: Este el valor de incremento. Si ponemos un incremento de 2, indica al strategy tester que use 12, 14, 16, etc. Esto no significa que estos valores se usen en este orden. El Strategy Tester selecciona de forma aleatoria valores entre el valor de la columna “Empezar” y el valor de la columna “Parar”, pero siempre será múltiplos de 2, que es el valor que hemos puesto en “Paso”.
  • Parar: En esta columna se indica el valor máximo que tomará el parámetro seleccionado durante la optimización.

En nuestro ejemplo, hemos puesto para el período rápido del MACD, 12 como valor de comienzo, 2 como incremento y 20 como valor de parada. Esto significa que el Strategy Tester tomará valores aleatorios, múltiplos de 2 y que se encuentren entre 12 y 20, ambos incluidos.

El número total de pruebas que realizará el strategy tester dependerá de la configuración que pongamos en estas 3 opciones para cada parámetro a optimizar. La combinación de posibles valores de cada parámetro lleva a que el número de pruebas totales crezca de forma exponencial a medida que se añaden más parámetros a la optimización pudiendo llegar el número total de pruebas a cientos o miles con unos pocos parámetros a optimizar; de igual modo, se incrementa enormemente el tiempo necesario para realizar la optimización a medida que se añaden parámetros a la optimización. Por tanto, ten en cuenta en optimizar aquellos parámetros de los que realmente dependen los resultados del EA. El valor de la columna “Paso” también influye, y mucho, en el número de pruebas totales y el tiempo necesario para completar la optimización; en nuestro ejemplo hemos puesto un incremento (paso) de 2 para el período rápido del MACD, si lo ponemos en 1, el número de posibilidades para el parámetro sería 2 veces mayor.

En Metatrader 5 también influye en el tiempo necesario para completar la optimización el número de núcleos del procesador de tu PC disponibles (núcleos CPU).

Una vez elegidos los parámetros a optimizar y sus respectivos valores para Empezar, Paso y Parar, volvemos a la pestaña “Configuración” y damos clic al botón “Empezar”.

Cuándo el proceso de optimización llega a su fin, podremos ver un mensaje como el siguiente en la pestaña “Diario” del Strategy Tester:

La finalización de la optimización se muestra en la pestaña

Los resultados de optimización aparecen en la pestaña “Resultados de optimización“. Podemos ordenar los resultados por balance final, beneficio obtenido, profit factor y por los valores de cada uno de los parámetros que seleccionamos para la optimización.

Informe de Optimización

Pasemos a la pestaña “Gráfico de optimización”, aquí veremos un gráfico similar a este, en el que cada punto representa un pase del stratey tester:

Gráfico de optimización

En este gráfico se observa en el eje X el número de test y en el eje Y el resultado del test basado en el tipo de resultado de optimización que fue seleccionado antes de iniciar la optimización, en el caso de nuestro ejemplo fue Balance + max Profit Factor.

Interpretar los resultados de optimización

Para interpretar un informe de optimización debidamente, debemos ir a la pestaña de “Resultados de Optimización”. Aquí hay algunos campos no visibles de forma predeterminada; sin embargo algunos de ellos son importantes para la correcta interpretación del informe. Para verlos debemos hacer clic derecho sobre cualquier sitio de esta pestaña y seleccionar los campos adicionales que queremos ver. Los campos adicionales que necesitaremos, como mínimo, serán el Drawdown % y el Profit Factor.

Una vez añadidos los campos adicionales, podremos proceder a analizar los resultados de optimización para poder elegir aquellos parámetros que constituyen la mejor configuración de nuestro EA.

Análisis del informe de optimización

A la hora de elegir la mejor configuración de nuestro EA podemos simplemente elegir la que da un beneficio mayor aunque esto no es recomendable. Lo mejor es elegir aquella configuración en la que el beneficio es alto y que, además, está asociado a un buen Profit Factor y a un drawdown bajo.

El probador de estrategias guarda los resultados de optimización en el directorio “Metatarder 5MQL5Testercache”. En este directorio se creará un archivo tipo xml cada vez que realices una optimizaicón. Estos archivos se pueden abrir con Excel, o cualquier otra hoja de cálculo, de modo que se pueden realizar cálculos y estudios estadísticos sobre los resultados. El nombre del archivo tiene la forma NombreEA.SIMBOLO.PERIODO.TipoOptimización.xml:

  • NombreEA: Nombre del Expert Advisor;
  • SIMBOLO: símbolo;
  • PERIODO: timeframe (M1,H1,…)
  • TipoOptimización: 1-Algoritmo slow complete, 2 – Algoritmo basado en fast genetic, 3 – Todos los símbolos seleccionados en “MarketWatch”.

Elegir los mejores resultados de optimización

Para obtener los mejores resultados es necesario mirar el gráfico de optimización. En este gráfico hacemos clic derecho y seleccionamos Gráfico 1D.

Elegir gráfico 1-D del gráfcio de optimización

De este modo podemos ver los valores de cada uno de los parámetros de entrada optimizados que dan los mejores resultados. Haciendo clic derecho sobre el gráfico podemos ir seleccionando, uno a uno, el parámetro optimizado que queremos mostrar en el eje X. Por ejemplo, podemos comenzar con el StopLoss:

Obtener el mejor valor de StopLoss de los resultados de optimización

Es claro que los mejores resultados se obtienen para un StopLoss de 24 puntos. Si miramos detenidamente el gráfico anterior vemos que un StopLoss de 28 puntos también da muy buenos resultados si bien los resultados superiores son más dispersos. Realizando lo mismo para el TakeProfit se obtiene que el mejor valor de TakeProfit es de 54 pips.

Si vemos el gráfico 1D para el período de la línea de señal del MACD se ve claro que los mejores resultados se obtienen cuándo este parámetro tiene un valor de 11:

Obtener el mejor valor de la línea de señal del MACD de los resultados de optimización

El análisis muestra un valor de 28 como el mejor para el periodo lento del MACD:

Obtener el mejor valor de período lento del MACD de los resultados de optimización

Haciendo lo mismo en el gráfico para el período rápido del MACD, se obtiene que el mejor valor para este parámetro es 14:

Obtener el mejor valor de período rápido del MACD de los resultados de optimización

Una vez obtenidos los valores de los parámetros que ofrecen los mejores resultados debemos proceder a realizar la última prueba: el test con los parámetros seleccionados en este apartado.

La prueba final

La prueba final se realiza configurando el expert advisor con los parámetros elegidos en el paso anterior como los mejores. Vamos a la pestaña Inputs del Probador de Estrategias y, haciendo doble clic en cada uno de los valores de los parámetros optimizados, vamos introduciendo los valores obtenidos anteriormente:

Parámetros de entrada (inputs) para la prueba final

En la pestaña Configuración deshabilitamos la optimización ya que ahora no vamos a optimizar, vamos a ver que resultados obtenemos con la configuración establecida:

Configuración para la prueba final en Strategy Tester

Ya estamos listos para pulsar el botón Empezar. Una vez que la prueba se ha completado podemos ver los resultados en la pestaña “Resultados” del Strategy Tester y se verá como esta imagen:

Resultados de la prueba de un Expert Advisor

También se puede ver el gráfico que muestra como varía el estado de la cuenta en la pestaña “Gráfico”:

Gráficos de resultados del Strategy Tester

Espero que te haya gustado este artículo y que hayas aprendido a elegir los mejores parámetros para un EA tras su optimización. Cualquier pregunta, sugerencia o discrepancia no dudes en hacerla.

Mostrar Mas