程序库: 多功能测试仪 - 页 11

 

有时有必要清理 Tester 文件夹。例如,一个适中的 opt 文件大小约为 2Mb。如果执行 10K 次优化,就已经达到 20 Gb。10K 字符--类似。

您可能会遇到文件夹过于臃肿的情况。

 

我试着将这几行写入我的 EA 和示例中的"移动平均线",我的目的是优化我的所有市场观察符号,但我得到了以下答案,希望能得到帮助。


#include <fxsaber\MultiTester\MultiTester.mqh>

void SetTesterSettings()


 
herrcrowley:

我试着将这几行写入我的 EA 和示例 "移动平均线 "中,我的目的是优化我的所有市场观察符号,但我得到了以下答案,希望能得到帮助。

在测试器中设置您的 EA。然后在终端运行MultiTester_Example

 

又见面了

非常感谢你的建议,现在当我使用 "自定义符号 "进行测试时,如果选择 "true",multitester 就不起作用,如果选择 "false",则只能测试实际要测试的符号。


 
herrcrowley:

非常感谢你的建议,现在当我使用 "自定义符号 "测试时,如果为真,多重测试器不起作用,如果为假,则只能测试实际要测试的符号。

不幸的是,由于语言障碍或其他障碍,我无法找出问题所在。

 

不知什么原因,多次测试运行都会卸载脚本。这种情况并不总是发生,有时早一些,有时晚一些。例如,它就发生在迭代 413 上。IsStopped 被设为 true,脚本卸载,整个工作在案例中间被搞砸了。没有错误信息。调试信息显示,在SendMessageW(Handle, WM_COMMAND, ID_EDIT_PASTE, 0) 之后的Sleep(100) 之后发生

在调用 static bool SetSettings( const string Str ) 时发生。

下面是可以使用的最小设置。但我怀疑这毕竟是 MetaTrader 的问题。版本 2245,但在最新的版本 2253 中也一样。版本 2190 也有,也许更早。

bool CloseAllOtherCharts()
{
  bool Res=false;
  for (long Chart = ::ChartFirst(); Chart != -1; Chart = ::ChartNext(Chart))
  {
    if(Chart != ::ChartID())
      Res |= ::ChartClose(Chart);
  }
  return Res;
}

void StartTest(string SymbName)
{
    string TesterInput = "[Tester]"+
                         "\nExpert=ChanRet"+
                         "\nSymbol="+SymbName+
                         "\nPeriod=M1"+
                         "\nOptimization=0"+
                         "\nModel=4"+
                         "\nFromDate=01.09.2019"+
                         "\nToDate=01.12.2019"+
                         "\nForwardMode=0"+
                         "\nDeposit=10000000"+
                         "\nCurrency=RUR"+
                         "\nProfitInPips=1"+
                         "\nLeverage=100"+
                         "\nExecutionMode=0"+
                         "\nOptimizationCriterion=6"+
                         "\nVisual=0";
    MTTESTER::SetSettings2(TesterInput);
    MTTESTER::ClickStart();
    while(!MTTESTER::IsReady() && !IsStopped())
      Sleep(100);
    CloseAllOtherCharts();
}

void OnStart()
{
  for(int i=0;i!=1000 && !IsStopped();++i)
  {
    StartTest("AFLT-12.19");
    StartTest("ALRS-12.19");
    Print((string)i);
  }
}
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Импортируемая функция не может иметь такого параметра (нельзя передавать указатель, класс или структуру, содержащую динамический массив, указатель, класс и т.д.) Недопустимый возвращаемый тип. Например, такая ошибка будет...
 
traveller00:

以下是播放时的最低设置。

无回放。所有 1000 项任务均可执行。但你必须勾选自动打开回溯测试图表的复选框,因为你是通过代码关闭图表的。我禁用了这个选项。也许这就是原因。

 
fxsaber:

勾选自动打开回溯测试图表。

我要问你一个更蠢的问题。这个勾选框在哪里?我在 MT5 中找不到。

 
traveller00:

这将是一个比较蹩脚的问题。这个勾选框在哪里?我在 MT5 中找不到。

 
traveller00:

如果要删除终端,脚本 将其暂停