Discussing the article: "Reimagining Classic Strategies (Part 13): Minimizing The Lag in Moving Average Cross-Overs"

 

Check out the new article: Reimagining Classic Strategies (Part 13): Minimizing The Lag in Moving Average Cross-Overs.

Moving average cross-overs are widely known by traders in our community, and yet the core of the strategy has changed very little since its inception. In this discussion, we will present you with a slight adjustment to the original strategy, that aims to minimize the lag present in the trading strategy. All fans of the original strategy, could consider revising the strategy in accordance with the insights we will discuss today. By using 2 moving averages with the same period, we reduce the lag in the trading strategy considerably, without violating the foundational principles of the strategy.

For us to appreciate the significance of our discussion today, we will first establish a benchmark created by the traditional cross-over strategy. Then we will compare the legacy performance against what we stand to achieve using our reimagined version of the strategy.

I have selected the EURUSD pair for our discussion today. The EURUSD is the most actively traded currency pair in the world. It is significantly more volatile than most currency pairs and is generally not a good choice for simple cross-over-based strategies. As we have already discussed earlier, we will focus on the daily time frame. We will back test our strategy over approximately 4 years of historical data, from the 1st of January 2020 until the 24th of December 2024, the back test period is highlighted below in Fig 1.

Fig 1: Viewing our 4 year EURUSD back test period on our MetaTrader 5 terminal using the Monthly time frame

Although traditional cross-over strategies are intuitive to grasp and backed by fundamental principles that are reasonably sound, these strategies often require endless optimization to guarantee effective use. Additionally, the “right” periods to use for the slow and fast-moving indicator are not immediately obvious, and can change dramatically. 

Author: Gamuchirai Zororo Ndawana

 
Thanks for the code and Idea's , I like how you have structured your code . You have introduced me to the Vector data type , I had not used this before . very helpful to me else where 
  vector atr_mean;
      atr_mean.CopyIndicatorBuffer(atr_handler,0,0,90); atr_mean.Mean())
 
linfo2 #:
Thanks for the code and Idea's , I like how you have structured your code . You have introduced me to the Vector data type , I had not used this before . very helpful to me else where 
Thank you Niel, my aim is to blend simplicity with technical rigour,  it's nice to know that it is paying off.

And yeah man the vector class is a game changer, it actually provides  more functionality than we make use of on a day to day. 

I'm really looking forward to learn how to use the Matrix class because it allows us to build linear models in just 1 function call.