Algoritmo genético Metatrader 4

En este artículo vamos a continuar hablando de las optimizaciones en metatrader 4 profundizando en un concepto muy interesante para cuando queremos hacer optimizaciones cuyo tiempo de procesamiento es muy alto.

Te aconsejamos, sino lo has hecho ya, que veas los siguientes artículos antes de continuar:

  1. Como realizar un backtest en Metatrader 4
  2. Como realizar una optimización en Metatrader 4

Como os comentábamos en el anterior artículo, nos encontramos a veces con el problema de que al optimizar, el número de combinaciones es altísimo y por tanto el tiempo de procesamiento se puede ir incluso a años, por lo que es inviable hacer una optimización de este tipo.

Metatrader ya pensó en esto y para ello creo la opción de “Algortimo genético”, hay mucho escrito en Internet sobre en qué consisten los algoritmos genéticos, pero resumiendo mucho, lo que va hacer el optimizador es ir realizando test aleatorios e ir tomando los que mejor resultado van dando, para luego hacer test aleatorios alrededor de esas combinaciones que mejores resultados han dado.

Esto se realiza en bucle hasta que se llega a un punto en el que no se consiguen combinaciones mejores y termina el proceso. De esta forma, solamente se hace una pequeña parte de todas las combinaciones, consiguiendo sino la mejor combinación posible una de las mejores.

¿Cómo utilizar el algoritmo genético en Metatrader 4?

En las pruebas vamos a seguir utilizando el EA MACD Simple que viene por defecto en Metatrader 4. Para ello en Propiedades del Experto, en la pestaña de Prueba, activaremos la opción de Algoritmo genético, como se ve en la imagen.

Algoritmo genético en Metatrader 4

Después elegimos el parámetro a optimizar, que será el valor del test que tomará el algoritmo genético para obtener la mejor combinación de parámetros. Aquí dependerá de cuál es el mejor resultado para ti, para algunos es el test que más beneficios da, para otros el que menor drow down tenga con beneficios, etc. Metatrader nos permite optimizar en función a los siguientes parámetros:

Parámetros algoritmo genético Metatrader 4

Nosotros tomaremos para la prueba el Balance.

En la siguiente imagen seleccionamos los parámetros a optimizar, en este caso hemos añadido todos menos lots, el total de combinaciones es de 22400.

Set parámetros de entrada para optimización Metatrader 4

Hemos realizado la prueba sin y con algoritmo genético, para comparar la duración y los resultados obtenidos.

La prueba se realiza para EURUSD M15 desde el 01.01.2019 hasta el 31.03.2019, con los datos por defecto que nos proporciona el bróker.

Sin utilizar algoritmo genético

Al inicio de la prueba, el tiempo que nos estimaba metatrader era de cerda de 19 horas para realizar un total de 22400 combinaciones.

Estimación tiempo sin algoritmo genético Metatrader 4

Una vez terminada la prueba el tiempo de procesamiento ha sido de 18 horas y 12 minutos.

Tiempo optimización sin algoritmo genético Metatrader 4

Los resultados obtenidos son los siguientes:

Resultados optimización sin algoritmo Metatrader 4

Podemos ver que la mejor combinación con un profit de 365.66, un factor de beneficio de 2.51 es para la combinación de parámetros:

TakeProfit=200, TrailingStop=90, MACDOpenLevel=3, MACDCloseLevel=10, MATrendPeriod=51, Lots=0.1

Utilizando algoritmo genético

Haciendo aproximadamente 1280 combinaciones, metatrader nos estima que la prueba estará terminada en aproximadamente una hora.

Estimación tiempo optimización con algoritmo genético Metatrader 4

Una vez terminada la prueba el tiempo de procesamiento ha sido de tan solo 26 minutos, no le ha hecho falta ni si quiera llegar a las 1280 combinaciones.

Tiempo de optimización con algoritmo genético Metatrader 4

Los resultados obtenidos son los siguientes:

Resultados optimización con algoritmo Metatrader 4

Podemos ver que la mejor combinación con un profit de 365.66 un factor de beneficio de 2.51 es para la combinación de parámetros:

TakeProfit=200, TrailingStop=90, MACDOpenLevel=3, MACDCloseLevel=10, MATrendPeriod=51, Lots=0.1

Es decir, exactamente la misma combinación en ambas pruebas. Esto no siempre será así, en optimizaciones con millones de combinaciones es más probable que no de exactamente la mejor combinación de todas, pero al menos será una que se acerque mucho.

Teniendo en cuenta el ahorro de tiempo, en ciertas optimizaciones no queda más remedio que realizarlas utilizando el algoritmo genético.

Con esto es suficiente para que puedas ir haciendo tus primeras optimizaciones con un gran número de combinaciones, te animo que para la misma optimización utilices los diferentes parámetros de optimización, para que puedas comparar los resultados.

Espero te haya ayudado, si tienes cualquier pregunta no dudes en dejarnos un mensaje en los comentarios, estaremos encantados de ayudarte.

Si ya tienes una estrategia que operas en manual y quieres automatizarla ponte en contacto con nosotros para que te hagamos un presupuesto sin compromiso.