How to backtest and optimize the NewWave Expert Advisor on MT5 platform.

27 September 2022, 13:36
Sergey Belov

Hello friends!

With the advent of the new MT5 platform, the process of testing and optimization has become easier and better. Due to the fact that the platform uses the real tick quotes of the broker and the real values ​​of the spread, the quality of testing has increased and tends to 100 percent.
It depends, of course, on the broker whether it saves historical data correctly.
There are such brokers that do not have some time intervals. This applies to different currency pairs.
In any case, the simulation quality is higher than that of the previous MT4 platform. Personally, I trust the new platform more.

What I aslo likeon the new platform is that it can use multiple cores, computers and cloud technologies when optimizing.
Thus, the Expert Advisor optimization process increases many times over, even by tens and hundreds.
In my case, about 25-30 simultaneous processes are involved in the optimization.

So. First, go to the MT5 strategy tester (Ctrl+R) and select single testing.

Let's take for example my Expert Advisor New Wave
The link to the advisor is available at the link:

And my real signal at:

Testing mode.

As a rule, I first do testing with next tester parameters:

Test parameter. First step.

I choose the period of testing and optimization within 1-2 years. Because history never repeats itself and good results in the past do not guarantee them in the future. So testing more shows the performance of the adviser algorithm itself and its preliminary settings.

Modelling I set to "Every tick based on real ticks" to get simulation results close to 100%.

I choose a reasonable value of the deposit based on the type of expert adviser.

For grid algorithms and different variations of Mertingale, the deposit must be at least 2000 units with a standard account type.
In my case, the EA uses a grid of orders, and therefore I use values from 2000 for testing.

My next step is to check the EA settings with a different value of the Delay parameter.

Backtesting - next step.
I use Delays as "Random delay".

Now let's move on to the Expert Advisor optimization mode.
For a faster and more optimal optimization process, I choose this mode "Fast genetic based algorithm".
As I said, I choose the period of testing and optimization within 1-2 years.
I see no reason to use a longer period. History does not repeat itself, just as world events do not repeat themselves, which make serious adjustments to the currency market (in our case).

A longer optimization period will more average all values. But sometimes it is also useful, I will not hide.
From time to time I make settings for periods of 5 years for different Expert Advisors and currency pairs.

Switch to optimization mode
And now what parameters I optimize and in what ranges.

Optimization parameter range

I usually don't include the "Timeframe" parameter in the optimization process.
In this case, I already know that the EA shows the best results when working with two timeframe values.
These are M5 and M15.

And so I split the optimization process into two. To speed up. Thus, I get sets of parameters for two different timeframes.

But those who wish can also include this parameter in the optimization process.

This is how I decided which timeframes to look at, by quickly optimizing for a short period of time.

Optimization with varTF

After the completion of the EA optimization process, I choose which sets I like best and run them on the backtest. Pre-writing them into files.

When choosing ready-made sets, I pay attention to profit, profit factor and drawdown. Therefore, the set of settings used is not always the most profitable.

And in the end, when I have already decided which set of parameters I will use, I do backtesting of these parameters with different values of the risk parameter to find the optimal value according to my deposit and my desired risk.

This concludes my short
brief instruction on testing and optimizing my expert adviser.
Thank to all!

Best regards, Sergey.

Share it with friends: