Algorítmos genéticos vs. Búsqueda simple en el Optimizador MetaTrader 4

Andrey Khatimlianskii | 12 febrero, 2016

1. ¿Qué son los algoritmos genéticos?

La plataforma MetaTrader 4 ahora ofrece algoritmos genéticos de optimización de las entradas del Asesor experto. Reducen bastante el tiempo de optimización sin invalidación de las pruebas. El principio de su funcionamiento se describe con detalle en el artículo Algoritmos Genéticos: Matemáticas .

Este artículo está dedicado a la optimización de las entradas del AE utilizando algoritmos genéticos comparados con los resultados obtenidos utilizando la búsqueda directa, completa de valores del parámetro.

2. El Asesor experto

Para mis experimentos, completé el AE CrossMACD, que puede que conozca del artículo Gestión de las órdenes: ¡Es sencillo!:

Ahora es un Asesor experto prácticamente completo. Sería apropiado optimizarlo y usarlo en trading. Puede descargar el AE <a href="/es/articles/download/1409/CrossMACD_DeLuxe.mq4" title=" Algorítmos genéticos vs. Búsqueda simple en el Optimizador MetaTrader 4

El artículo compara el tiempo y los resultados de la optimización del Asesor experto utilizando algoritmos genéticos y los que se obtienen con la búsqueda simple.


1. ¿Qué son los algoritmos genéticos?

La plataforma MetaTrader 4 ahora ofrece algoritmos genéticos de optimización de las entradas del Asesor experto. Reducen bastante el tiempo de optimización sin invalidación de las pruebas. El principio de su funcionamiento se describe con detalle en el artículo Algoritmos Genéticos: Matemáticas .

Este artículo está dedicado a la optimización de las entradas del AE utilizando algoritmos genéticos comparados con los resultados obtenidos utilizando la búsqueda directa, completa de valores del parámetro.

2. El Asesor experto

Para mis experimentos, completé el AE CrossMACD, que puede que conozca del artículo Gestión de las órdenes: ¡Es sencillo!:

  • Añadí StopLoss y TakeProfit a las posiciones colocadas.
  • Añadí Trailing Stop.
  • Utilicé el parámetro Open Luft para las señales de filtro: Ahora aparecerá una señal si se cruza la línea cero en un número concreto de puntos (con la precisión de una posición decimal).
  • Añadí el parámetro CloseLuft para el filtro similar de señales cerradas.
  • Puse los periodos de promedios de movimiento lento y rápido en las variables externas utilizadas para los cálculos MACD.

Ahora es un Asesor experto prácticamente completo. Sería apropiado optimizarlo y usarlo en trading. Puede descargar el AE CrossMACD_DeLuxe.mq4 en su ordenador y probarlo de forma independiente.

3. Optimización

Ahora podemos empezar a optimizar el AE. Se realizarán tres pruebas con diferentes cargas de optimización. Esto ayudará a comparar los beneficios que se obtienen utilizando los algoritmos genéticos en varias situaciones.

Después de cada prueba, eliminaré manualmente la caché del tester para que las siguientes pruebas no utilicen combinaciones que ya se han encontrado. Esto sólo es necesario para que el experimento sea más preciso; normalmente el cambio automático de los resultados mejora la optimización repetida.

Para comparar los resultados, la optimización con algoritmos genéticos se hará dos veces: la primera vez para encontrar el beneficio máximo (Beneficio); y la segunda para encontrar el factor de beneficio (Factor de Beneficio) más algo. Después de eso, los tres mejores resultados de ambos métodos de optimización se pondrán en el informe sintetizado.

La optimización es puramente experimental. El objetivo de este artículo no es encontrar las entradas que obtengan los mejores beneficios.

Prueba 1

  • Símbolo del gráfico – EURUSD;
  • Periodo de tiempo de la del gráfico – H1;
  • Periodo de prueba – 2 años;
  • Elaboración – "Sólo precios abiertos";
  • Entradas buscadas en:

Nombre variable

Valor inicial

Fase

Valor final

StopLoss

0

10

100

TakeProfit

0

10

150

TrailingStop

0

10

100

OpenLuft

0

5

50

CloseLuft

0

5

50

Número de búsquedas

234256

Hay que tener en cuenta que, cuando se usan los algoritmos genéticos, se espera que el tiempo de optimización sea aproximadamente el mismo que el de la optmización con la búsqueda directa de entradas. La diferencia es que los algoritmos genéticos eliminan algunas combinaciones innecesarias y, de este modo, reducen la cantidad de pruebas necesarias (puede que en decenas, cientos o miles de veces). Por eso no debería orientarse según el tiempo de optimización esperado cuando use los algoritmos genéticos. El tiempo real de la optimización siempre será más corto:

Búsqueda directa

Algoritmo genético

Como puede ver, la optimización con algoritmos genéticos duró menos de cuatro minutos, en lugar de las cinco horas y media que se esperaban.



El gráfico de optimización con algoritmos genéticos también difiere de la de la búsqueda directa. Como ya se han eliminado las malas combinaciones, las pruebas siguientes se realizan con combinaciones más beneficiosas por defecto. Por eso el gráfico de balance aumenta:




Vamos a explicar con más detalle los resultados de ambos métodos de optimización.

Tabla de resultados:


Búsqueda directa

Algoritmo genético

Tiempo total de la optimización

4 h 13 min 28 sec

3 min 50 sec


SL

TP

TS

Open Luft

Close Luft

Beneficion

SL

TP

TS

Open Luft

Close Luft

Beneficion

1

70

140

0

20

30

1248,08

70

140

0

20

30

1248,08

2

70

140

0

20

35

1220,06

70

140

0

20

35

1220,06

3

70

150

0

20

30

1176,54

70

150

0

20

30

1176,54


SL

TP

TS

Open Luft

Close Luft

Factor de beneficio

SL

TP

TS

Open Luft

Close Luft

Factor de beneficio

1

100

50

40

50

5

4,72

0

50

40

50

5

4,72

2

90

50

40

50

5

4,72

90

50

40

50

5

4,72

3

80

50

40

50

5

4,72

80

50

40

50

0

4,72

Como puede ver en la tabla, ¡la optimización con algoritmos genéticos es bastante más rápida! Los resultados son prácticamente los mismos. Hay varios resultados con un beneficio máximo de 4,72, por eso se informa de varias combinaciones de entradas, pero no es muy importante.

Ahora vamos a intentar reducir la cantidad de búsquedas, pero aumentar el tiempo de prueba. Utilizaremos el modelo "Todos los ticks".

Prueba 2

  • Símbolo del gráfico – EURUSD;
  • Periodo de tiempo de la del gráfico – H1;
  • Periodo de prueba – 2 años;
  • modelo – "Todos los ticks";
  • Entradas buscadas en:

Nombre variable

Valor inicial

Fase

Valor final

StopLoss

0

10

100

TakeProfit

0

10

150

TrailingStop

0

10

100

OpenLuft

0

10

50

Número de búsquedas

11 616

Tabla de resultados:


Búsqueda directa

Algoritmo genético

Tiempo total de la optimización

32 h 32 min 37 sec

1 h 18 min 51 sec


SL

TP

TS

Open Luft

Beneficio

SL

TP

TS

Open Luft

Beneficio

1

50

0

0

20

1137,89

50

0

0

20

1137,89

2

70

0

0

20

1097,87

70

0

0

20

1097,87

3

60

0

0

20

1019,95

60

0

0

20

1019,95


SL

TP

TS

Open Luft

Factor de beneficio

SL

TP

TS

Open Luft

Factor de beneficio

1

50

90

60

50

4,65

50

90

60

50

4,65

2

50

140

60

50

4,59

50

140

60

50

4,59

3

100

90

60

50

4,46

70

90

60

50

4,46

Para tal cantidad de búsquedas, el rango de optimización varía 25 veces, que tampoco está mal. Los resultados coinciden prácticamente al 100%, la única diferencia está en el valor StopLoss en el tercer pase. El factor de beneficio sigue siendo el máximo.

Ahora vamos a intentar aumentar la cantidad de búsquedas y reducir el tiempo de prueba. Utilizaremos el modelo "Puntos de control".

Prueba 3

  • Símbolo del gráfico – EURUSD;
  • Periodo de tiempo de la del gráfico – H1;
  • Periodo de prueba – 2 años;
  • modelo – "Puntos de control"
  • Entradas buscadas en:

Nombre variable

Valor inicial

Fase

Valor final

StopLoss

0

10

100

OpenLuft

0

5

50

CloseLuft

0

5

50

Número de búsquedas

1 331

Tabla de resultados:


Búsqueda directa

Algoritmo genético

Tiempo total de la optimización

33 min 25 sec

31 min 55 sec


SL

Open Luft

Close Luft

Beneficio

SL

Open Luft

Close Luft

Beneficio

1

0

0

45

1078,03

0

0

45

1078,03

2

70

20

15

1063,94

70

20

15

1063,94

3

70

20

25

1020,19

70

20

25

1020,19


SL

Open Luft

Close Luft

Factor de beneficio

SL

Open Luft

Close Luft

Factor de beneficio

1

80

50

15

2,73

80

50

15

2,73

2

70

50

15

2,73

70

50

15

2,73

3

90

50

15

2,65

90

50

15

2,65

La situación ha cambiado. Los periodos de optimización coinciden (se admite un error insignificante), y los resultados son idénticos. Esto se puede explicar con que la optimización sólo ha consistido en 1 331 búsquedas y esta cantidad de pases no es suficiente para utilizar algoritmos genéticos. No tienen tiempo para "coger velocidad"; la optimización es más rápida por la eliminación de ciertas combinaciones de entradas incorrectas, pero con tal cantidad de combinaciones como las de arriba, los algoritmos genéticos no pueden definir qué "progenitores" (combinaciones de entradas) generan malas "off-spring". Por lo que tiene sentido utilizarlos.


4. Conclusiones

Los algoritmos genéticos son una buena incorporación a las estrategias de optimización de MT 4. La optimización mejora mucho si la cantidad de búsquedas es grande, los resultados coinciden con los que se obtienen con la optimización normal.



Por lo que no tiene sentido utilizar la búsqueda completa en las entradas. Los algoritmos genéticos encontrarán los mejores resultados más rápido y sin reducir eficiencia.



5. Epílogo

Tras escribir el artículo, satisfice mi curiosidad y realicé una optimización de CrossMACD_DeLuxe en todas las entradas. Hice más de cien millones de combinaciones (103 306 896). La optimización con los algoritmos genéticos sólo me llevó 17 horas, mientras que la optimización con búsqueda en todas las entradas aproximadamente tardaría 35 años (301 223 horas).