Descargar MetaTrader 5

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

12 febrero 2016, 15:24
Andrey Khatimlianskii
0
449

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 <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).



Traducción del ruso hecha por MetaQuotes Software Corp.
Artículo original: https://www.mql5.com/ru/articles/1409

Archivos adjuntos |
Sincronización de Asesores expertos, script e indicadores. Sincronización de Asesores expertos, script e indicadores.

El artículo contempla la necesidad y las normas principales para desarrollar un bloque de programas que contenga un Asesor experto, un script y un indicador.

Meta proyecto COT - nuevos horizontes para el análisis del informe CFTC en MetaTrader 4 Meta proyecto COT - nuevos horizontes para el análisis del informe CFTC en MetaTrader 4

El artículo es sobre el uso de datos del informe del CFTC (de interés abierto) en MetaTrader. El artículo describe el proyecto META COT en detalles, se muestra cómo cargar y procesar la información necesaria. El Asesor Experto incluido en el proyecto nos ayudará a analizar la eficacia del concepto presentado en el artículo. Finalmente, sacaremos algunas conclusiones y ofreceremos sugerencias útiles.

MQL4 como herramienta para Trading, o el Análisis técnico avanzado. MQL4 como herramienta para Trading, o el Análisis técnico avanzado.

El trading es, ante todo, un cálculo de probabilidades. El refrán que dice que la ociosidad es un motor para el progreso, nos revela la razón por la que se están desarrollando todos estos indicadores y sistemas de trading. Resulta que la mayoría de los principiantes en el estudio del trading, realizan teorías de trading. Pero, afortunadamente, todavía hay algunos secretos de mercado no descubiertos, y se utilizan herramientas para analizar los movimientos de precios, básicamente, como los indicadores técnicos o matemáticas y paquetes stat. Gracias a Bill Williams por su contribución a la teoría de movimientos de mercado. Aunque, quizás, es algo pronto para dormirse en los laureles.

Recuento múltiple de barras nulas en algunos indicadores Recuento múltiple de barras nulas en algunos indicadores

El artículo trata sobre el problema de recuento del valor del indicador en la Terminal de Cliente de MetaTrader 4 cuando cambia la barra nula. Resume la idea general de cómo añadir al código del indicador algún elemento de programa extra que permita restablecer el código de programa guardado antes del recuento múltiple.