Discusión sobre el artículo "Reimaginando las estrategias clásicas en MQL5 (Parte 13): Minimizar el retraso en los cruces de medias móviles"

 

Artículo publicado Reimaginando las estrategias clásicas en MQL5 (Parte 13): Minimizar el retraso en los cruces de medias móviles:

Los cruces de medias móviles son ampliamente conocidos por los operadores de nuestra comunidad y, sin embargo, la esencia de la estrategia ha cambiado muy poco desde su creación. En este artículo, le presentaremos un ligero ajuste a la estrategia original, cuyo objetivo es minimizar el retraso presente en la estrategia de trading. Todos los seguidores de la estrategia original podrían considerar revisar la estrategia de acuerdo con las ideas que discutiremos hoy. Al utilizar dos medias móviles con el mismo periodo, reducimos considerablemente el retraso en la estrategia de trading, sin violar los principios fundamentales de la estrategia.

Para poder apreciar la importancia de nuestro debate de hoy, primero estableceremos un punto de referencia creado por la estrategia tradicional de cruce. A continuación, compararemos el rendimiento anterior con lo que esperamos conseguir utilizando nuestra versión renovada de la estrategia.

He seleccionado el par EURUSD para nuestro debate de hoy. El EURUSD es el par de divisas más negociado del mundo. Es significativamente más volátil que la mayoría de los pares de divisas y, por lo general, no es una buena opción para estrategias simples basadas en cruces. Como ya hemos comentado anteriormente, nos centraremos en el marco temporal diario. Realizaremos una prueba retrospectiva de nuestra estrategia con datos históricos de aproximadamente cuatro años, desde el 1 de enero de 2020 hasta el 24 de diciembre de 2024. El periodo de la prueba retrospectiva se destaca a continuación en la figura 1.

Figura 1: Visualización de nuestro periodo de backtest de 4 años del EURUSD en nuestra terminal MetaTrader 5 utilizando el marco temporal mensual.

Aunque las estrategias tradicionales de cruce son intuitivas de comprender y están respaldadas por principios fundamentales razonablemente sólidos, estas estrategias a menudo requieren una optimización interminable para garantizar un uso eficaz. Además, los periodos «adecuados» que deben utilizarse para el indicador de movimiento lento y rápido no son evidentes a primera vista y pueden cambiar drásticamente. 


Autor: Gamuchirai Zororo Ndawana

 
Gracias por el código y las ideas, me gusta como has estructurado tu código. Usted me ha introducido al tipo de datos Vector, yo no había utilizado esto antes. muy útil para mí en otros lugares
  vector atr_mean;
      atr_mean.CopyIndicatorBuffer(atr_handler,0,0,90); atr_mean.Mean())
 
linfo2 #:
Gracias por el código y las ideas, me gusta como has estructurado tu código. Me has introducido en el tipo de datos Vector, no lo había usado antes, me ha sido muy útil.
Gracias Niel, mi objetivo es combinar la simplicidad con el rigor técnico, es bueno saber que está dando sus frutos.

Y sí hombre la clase vector es un cambio de juego, en realidad proporciona más funcionalidad de la que hacemos uso en el día a día.

Tengo muchas ganas de aprender a usar la clase Matrix porque nos permite construir modelos lineales con una sola llamada a una función.
 
Muchas gracias por esta maravillosa forma de estructurar el código. Como principiante, este artículo ha llevado mi aprendizaje muy lejos. Más grasa en el codo. Dios te bendiga para mí. Gracias.