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

 
我回答了自己的问题:mqh 文件不需要单独编译。你也开始找了,不是吗?现在可以了。谢谢。
 

当您查看优化结果 时,您可能会喜欢某些单个段落,并希望快速获取有关这些段落的有用信息,以便日后使用。

我发现这种方法非常方便。

#define private public
  #include <fxsaber\MultiTester\MTTester.mqh>
#undef private

void OnDeinit( const int Reason )
{
  if (!MQLInfoInteger(MQL_OPTIMIZATION) && MQLInfoInteger(MQL_TESTER))
  {
    const datetime EndTime = TimeCurrent() - TimeCurrent() % (24 * 3600) + 24 * 3600;
        
    const string Str =          TimeToString(EndTime, TIME_DATE) + ": " +
                                DoubleToString(TesterStatistics(STAT_PROFIT), 0) + ", " +          
                                DoubleToString(TesterStatistics(STAT_TRADES), 0) + ", " +          
                                DoubleToString(TesterStatistics(STAT_PROFIT_FACTOR), 2) + ", " +          
                                DoubleToString(TesterStatistics(STAT_EXPECTED_PAYOFF), 2) + ", Fit = " +          
                                DoubleToString(TesterStatistics(STAT_CUSTOM_ONTESTER), 2) + "\n";

    MTTESTER::SetClipboard(_Symbol + " " + Str); // 将单次传递字符串放到剪贴板上。
  }

单个段落结束后,所有必要的信息都会以字符串的形式以简短的形式存在剪贴板中。我通过 CTRL+V 将其粘贴到现在更方便的地方。

然后,当积累了很多这样有趣的字符串后,我就会对整体情况进行评估。


当然,字符串是由你自己组成的。上面只是一个例子。最重要的是它适合剪贴板。

 

fxsaber,感谢您提供的多重测试仪!你们的出版物一如既往地出色!


在发明自行车之前,我想请教一下。

在 multitester 的帮助下,我通过符号列表优化了 EA 参数,得到了 .opt 文件列表,但优化结果只能针对每个符号单独查看。

我如何才能将它们合并为所有符号的 平均结果?比方说,我想得到两个参数(绿色阴影方格)的标准 MT5 2D 图形。

或者如何更方便地将所有结果合并到 Excel 表格中,手动将所有 S&P500 结果导出到 Excel 不是很方便....。

fxsaber
fxsaber
  • www.mql5.com
Предупреждение для тех, кто не знает (почти все). При передаче мастер-пароля (даже на короткое время) от MT4/5-торгового счета другому лицу автоматически происходит передача не только имени, на кого зарегистрирован торговый счет (как при передаче инвест-пароля), но и реального email-адреса и номера телефона, на которые зарегистрирован торговый...
 
Sunriser:

使用多参数测试仪对符号列表中的 EA 参数进行优化后,会得到一个 .opt 文件列表,只能分别查看每个符号的优化结果。

如何将它们合并为所有符号的 平均结果?比方说,我想获得两个参数(绿色阴影方格)的标准 MT5 2D 图形。

或者如何更方便地将所有结果合并到 Excel 表格中,手动将所有 S&P500 结果导出到 Excel 不是很方便....。

可以通过TesterCache 将多重优化的所有选项文件合并为一个。

TesterCache
TesterCache
  • www.mql5.com
MT5-тестер автоматически сохраняет оптимизационные кеши (данные оптимизации) в файлах  Tester\cache\*.opt . И умеет экспортировать/импортировать их. Данная библиотека позволяет работать с этими данными. Сценарии Вывод более полных данных, чем это предоставляет MT5-тестер. Создание критериев оптимизации в любое время после проведенной...
 
我正在尝试使用谷歌翻译,但就是不知道如何使用。有没有关于英语的教程?我不知道在什么情况下才能激活它,并列出要与我的专家进行测试的符号列表。还是我需要手动编辑一个代码文件,然后再导入?谢谢!
 
Thierry Waltrich:
我正在尝试使用谷歌翻译,但就是不知道如何使用。有没有关于英语的教程?我不知道在什么情况下我可以激活它,并列出要与我的专家进行测试的符号列表。还是我需要手动编辑一个代码文件,然后再导入?谢谢!

这里有一些人正在积极使用这个工具(或基于这个工具)。如果他们能帮助你理解它,那就太好了。

不幸的是,我已经与社区分享了太多我的工作,以至于我不仅找不到时间来建设性地回答入门级问题,而且我几乎已经停止了发布我的开发和成果的做法。

 

在手动分析优化结果时,这是一种向前运行的便捷方法。

// 从优化结果表中向前运行(在终端中运行)。
#include <fxsaber\MultiTester\MTTester.mqh> //https://www.mql5.com/zh/code/26132

sinput datetime inForward = D'2020.01.01'; // 从

const bool Init = EventSetMillisecondTimer(100);

void OnTimer()
{
  static const string Forward = "[Tester]\r\nFromDate=" + TimeToString(inForward, TIME_DATE) +
                                "\r\n[TesterInputs]\r\ninBestInterval_Action=true";
  static bool Ready = true;
  static bool Flag = false;
  
  static string Settings;
  
  if (Ready)
    Ready = MTTESTER::IsReady();
  else if (MTTESTER::IsReady())
    Ready = (Flag = !Flag) ? !(MTTESTER::GetSettings(Settings) && MTTESTER::SetSettings2(Forward) && MTTESTER::ClickStart(false))
                           : MTTESTER::SetSettings2(Settings);
}

我打开任何智能交易系统的优化表,然后在感兴趣的通道上点击 "运行单个测试"。我就能得到优化结果的前向输出。

这样可以节省很多时间(对我来说,一次测试只需几秒钟),尤其是在使用 BestInterval 时。

 
Thierry Waltrich:
我正在尝试使用谷歌翻译,但就是不知道如何使用。有没有关于英语的教程?我不知道在什么情况下才能激活它,并列出要与我的专家进行测试的符号列表。还是我需要手动编辑一个代码文件,然后再导入?谢谢!

您需要在策略测试器中选择要优化的专家,并设置要优化的参数。

然后编译示例 1 并将其拖放到任意图表上(运行),它就会开始在示例 1 代码中设置的图表和时间框架上运行您的智能交易系统。

因此,您需要一个 MultitesterExpert,它可以自动在不同的 _Symbol / _Period 等上运行优化后的智能交易系统。

通过学习示例 1 和示例 2 中的注释,您将能够在此基础上创建自己的 MultitesterExpert。

 

GetSettings(Str) 会中断对本地代理的测试。

GetSettings(Str) 用于查找测试中使用的刻度建模类型。

举例说明:

我在移动平均专家顾问示例代码中添加了以下内容:

#include <fxsaber\MultiTester\MTTester.mqh>

int OnInit()
  {

// 专家顾问的标准代码

// 获取测试仪设置
   string  Str;
   if(MQLInfoInteger(MQL_TESTER) && MTTESTER::GetSettings(Str))
     {
      Print(Str);
     }
   return(INIT_SUCCEEDED);
  }

我在运行优化时使用了完整的参数枚举,结果测试人员倾向于从任何选项卡切换到 "设置 "选项卡。

过多的建筑物被分配给本地代理,但它们没有被执行。


您能提出自己的建议吗?

附加的文件:
 
Sunriser:

能给我点提示吗?

在 OnTesterInit 中执行 GetSettings 设置,并通过 ParametersSetRange 将从中获取的值传递给 sinput 变量。

在本地代理中,sinput 变量将告诉您模式是什么。


在没有 DLL 的情况下,可以通过实际的刻度来确定模式。