欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

MultiTester - MetaTrader 5 库

author emer | 570 人阅读 | 0 人评论 |

MultiTester - library for MetaTrader 5

MultiTester - library for MetaTrader 5

MultiTester - library for MetaTrader 5

MultiTester - library for MetaTrader 5

MultiTester - library for MetaTrader 5

MultiTester - library for MetaTrader 5

MultiTester - library for MetaTrader 5

MultiTester - library for MetaTrader 5

有时您需要对多个交易品种运行 EA 交易。为此,MT5 测试器中有一个“市场报价窗口中选择的所有交易品种”模式。这允许您在不同交易品种上运行相同的 EA 设置。

但有时您需要多次运行不同的 MT5 测试程序。这个库可以让你做到这一点。

您可以设置任意数量的交易品种、时间范围、间隔的组合。不仅对它们进行单次运行,而且还进行优化,包括前进。

我们根据需要配置 MT5-Tester。

MultiTester - library for MetaTrader 5

图中显示,优化将以一定的时间间隔对真实的蜱虫进行全面的暴力破解。

创建所需优化的列表。例如,您可以通过该库的交付来运行“EA 交易”。

MultiTester - library for MetaTrader 5

通过如图所示的设置,它将对市场报价中的所有交易品种运行优化,并且对于每个交易品种,它将在 M1 和 M15 时间范围内进行优化。

结果会是这样的

MultiTester - library for MetaTrader 5

现在您可以使用标准 MT5 测试工具安全地查看优化结果。

MultiTester - library for MetaTrader 5

让我们首先考虑一个非常简单的例子。

#包括// 在测试器中进行多次运行/优化。

// 该函数负责生成任务列表
空白SetTester设置()
{
  测试仪设置.Add(“澳元加元”);// 使用测试器中指定的设置运行 AUDCAD。  
  测试仪设置.Add(“欧元兑美元”,PERIOD_H1);// 使用测试器中指定的设置运行 EURUSD H1。  
  测试仪设置.Add(“英镑兑美元”,PERIOD_M6,D'2019.07.01',D'2019.09.01');// 按指定的时间间隔运行 GBPUSD M6。}

运行此 EA 的结果将是使用源代码中读取的设置对测试器进行三次调用。

我们来分析一下EA交易的源代码,一开始给出了启动演示。

#包括// 在测试器中多次运行/优化

输入 布尔值周期_M1 =错误的;        // 开启M1
输入 布尔值周期_M5 =错误的;        // 开启M5
输入 布尔值周期_M15 =错误的;        // 开启M15
输入 布尔值  错误的;// 仅自定义字符

// 该函数负责生成任务列表。
空白SetTester设置()
{
  // 从市场观察中搜索所有交易品种。  为了整数我=符号总数真的)--1;我 >=0;我 - )
  {
    常量 细绳姓名 =符号名称(我,真的);

    如果(!OnlyCustomSymbols ||符号信息整数(姓名,SYMBOL_CUSTOM))
    {
      如果(期间_M1)
        TesterSettings.Add(名称,PERIOD_M1);// 如果设置了 M1,则将每个字符与此 TF 相加。      如果(期间_M5)
        TesterSettings.Add(名称,PERIOD_M5);// 如果设置了 M1,则将每个字符与此 TF 相加。      如果(期间_M15)
        TesterSettings.Add(名称,PERIOD_M15);// 如果设置了 M15,则将每个符号与此 TF 相加。      如果(!Period_M1 && !Period_M5 && !Period_M15)// 如果没有设置 TF,我们就在 TF 上运行 Expert Advisor。        TesterSettings.Add(名称);
    }
  }
}

第二个示例根据市场观察中标记的 TF 和符号生成任务列表。再次,我们看一下源代码中的注释。

所以,我们需要做的就是写这个字符串

#包括// 在测试器中进行多次运行/优化。


只编写一个以直观方式生成任务的函数。

// 该函数负责生成任务列表。
空白SetTester设置()



附件下载

📎 multitester_example.mq5 (1.18 KB)

📎 multitester_example2.mq5 (0.62 KB)

📎 settings.mqh (1.35 KB)

📎 string.mqh (1.29 KB)

📎 task.mqh (7.66 KB)

📎 testersettings.mqh (3.05 KB)

📎 multitester.mqh (4.74 KB)

📎 mttester.mqh (120.02 KB)

Source: MQL5 #26132

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录