Libraries: MultiTester - page 8

 
We can make a separate advisor for cleaning the screen in the multitester kit, until MQ finally remove this feature with optimisation charts. By the way, I am going to use the possibility of running an additional Expert Advisor in the multitester for final processing of the table oftest results.
 
Good Beer:
You could make a separate screen cleaner EA in the multitester kit, until MQ finally remove that optimisation chart thingy of theirs.
#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/ru/code/26132

void OnStart()
{
  while (MTTESTER::CloseNotChart() && !IsStopped())
    ;
}
 
fxsaber:
WOW!!!! And it was already there. It works! Thanks.
 
Good Beer:
WOW!!!! And it was already there. It works! Thanks.

But it works well and fast only if the script is thrown on the chart. If you call it through TesterSettings.Add(), it deletes everything slowly at first, and then it loops. Apparently !IsStopped() does not see the end command, and ExpertRemove() is not suitable in this case.

 
Good Beer:

But it works well and fast only if the script is thrown on the chart. If you call it through TesterSettings.Add(), it deletes everything slowly at first, and then it loops.

I doubt it will help, but try replacing these lines

        user32::SendMessageW(handle, WM_CLOSE, 0, 0);
        Res = true;


with this one

        Res = user32::SendMessageW(handle, WM_CLOSE, 0, 0);


Honestly, it's all cosmetic, so I don't feel much like dealing with it. Apparently, I'm slipping into a state where the effort spent on supporting the posted solutions leaves no opportunity to create new ones. I guess this is a standard situation.

 
fxsaber:

I doubt this will help, but try replacing these lines


with this


Honestly, it's all cosmetic, so I don't feel much like figuring it out. Apparently, I'm slipping into a state where the effort spent on supporting the posted solutions leaves no opportunity to create new ones. I guess this is a standard situation.

Thank you for that. These optimisation charts will be removed anyway, otherwise it's a disgrace to MQ and cheesy. It's better to drop the script 1 time, to press F4 300 times.
 
I will save it here.

Forum on trading, automated trading systems and testing trading strategies

New version of the MetaTrader 5 build 2190 platform

fxsaber, 2019.10.31 08:53 pm.

I have two add-ons in distant plans

  1. Calculating the optimal portfolio for given sets. Optimised, selected the sets you like. And then the add-in will assemble the optimal portfolio from these sets.
  2. Adaptive optimisation. You run the add-in where you set the interval length and frequency of overoptimisation. And for any Expert Advisor an adaptive pass is built. In this way you can quickly check the robustness of the TS.
We need such third-party add-ons for Tester. There are no technical limitations for writing them now. I would like them not to be in the future.
 

When you look at a large number of optimisation caches after a multi-tester run, you do the same thing.

  1. You choose the best pass to start a single run (via PCM).
  2. If you like it, switch off optimisation and increase the interval.
  3. Click Start.

The most time is spent on point 2. Mistakes are often made. You want to semi-automate. And there is a solution!


Copy this text to the clipboard

[Tester]
Optimization=0
FromDate=2019.01.01


Then just press CTRL+V in the Settings tab. This will automatically disable optimisation and set the desired date.


ZY I was in a hurry to rejoice. The input parameters of the Expert Advisor are reset to default with such a buffer.

 
Additional functionality of MTTester.mqh.

Forum on trading, automated trading systems and testing trading strategies.

Libraries: TesterCache

fxsaber, 2019.11.11 04:45 pm.

  uchar Bytes[];
  
  MTTESTER::GetLastOptCache(Bytes);
 

A qualitative leap in Tester automation.


#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/ru/code/26132

void OnStart()
{  
  MessageBox(MTTESTER::GetSettings()); // Current Tester settings

  string Settings = "[Tester]\nFromDate=2019.09.01"; // Setting the start date of the Test interval
  MTTESTER::SetSettings(Settings); // Set the appropriate settings
}


Now full freedom in Tester automation.


Thank you very much @Slava for your help!