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

TesterBenchmark - MetaTrader 5 库

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

当编写不同的代码版本时,您可能需要测量它们对测试器中 EA 交易整体性能的影响。这使您能够了解代码与其他程序相比的最优程度,并为进一步快速优化 EA 交易提供先决条件。 This approach allows us to identify the "bottleneck" in the EA performance.

The MetaTrader 5 provides an excellent function for profiling Expert Advisors on historical data.但它有一些缺点:速度慢(在视觉模式下),并且最终结果以相对单位呈现,即无法以绝对值比较性能。

此外,在 MetaTrader 5 中,即使在没有可视化的单次运行期间,EA 也会在本地代理上执行。有时需要花费很大一部分测试时间来将终端与相应的本地代理同步。因此,以下行的时间数据

1  欧元兑美元,M1:3387955蜱虫,52608生成的条形图。环境同步 00001.389。测试通过 0:00:09.422(包括刻度预处理0:00:00.187)。
核1  EURUSD,M1:总时间登录以停止测试0:00:10.811(包括0:00:01.389 为了历史数据同步)

无法很好地体现 EA/测试器的净性能,并且在不同的运行中可能存在很大差异。

策略测试器的净运行时间是从第一个 Tick 事件(第一个 OnTick)到测试间隔中最后一个 Tick 的时间。在此间隔之后,测试器立即调用 OnTester(随后调用 OnDeinit)。

该库允许向 EA 代码添加一行

#包括

并在日志中获取有关测试仪净性能的数据。

1  2017.0721 23:59:59  间隔=8.842s.,计数 =3387955,383166.1单位/秒1  欧元兑美元,M1:3387955蜱虫,52608生成的条形图。环境同步 0:00:01.389。测试通过 0:00:09.422(包括刻度预处理0:00:00.187)。
核1  EURUSD,M1:总时间登录以停止测试000:10.811(包括0:00:01.389 为了历史数据同步)

此外,如果您在测试器中从单次运行切换到优化模式(无需为 MetaTrader 5 指定优化范围),该库将运行 EA 指定次数,并生成测试器性能统计数据,您可以据此了解测试器的纯性能。

------测试仪初始化我=0通过=0 测试仪=8.687s.: 计数 =3387955,390002.9单位/秒,代理 = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.00.1-3000我=1通过=1 测试仪=8.702s.: 计数 =3387955,389330.6单位/秒,代理 = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.00.1-3000i 最小 =0结果[iMin] =8.687s。
最大 =1结果[iMax] =8.702s。
金额=2平均值 =8.694s。 -83.89%OnTesterDeinit------
间隔=20.729s.,计数 =0,0.0单位/秒

在本例中,很明显同一本地代理上有两个启动。显示最小、最大和平均计算时间。还显示优化的总时间(间隔)。百分比特征 (83.89%) 显示测试器的纯操作平均占用总优化器时间的多少(考虑与代理同步所需的时间)。

再添加一行

#定义PROFILER_OnTick// 测量所有 OnTick 执行的净时间,可能会稍微减慢总操作速度
#包括

您可以看到执行 OnTick 所花费的时间,不考虑模拟交易环境、性能等所花费的时间。

------测试仪初始化我=0通过=0 测试仪=9.540年代:勾选探查器:计数 =3387955, 间隔 =8.079s.,419359.4单位/秒,代理 = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.00.1-3000我=1通过=1 测试仪=9.471年代:勾选探查器:计数 =3387955, 间隔 =8.029s.,421956.9单位/秒,代理 = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.00.1-3000i 最小 =1结果[iMin] =9.471s。
最大 =0结果[iMax] =9.540s。
金额=2平均值 =9.505s。 -98.86%OnTesterDeinit------
间隔=19.231s.,计数 =0,0.0单位/秒


该库提供了一个带有标头的示例 EA (MQL4/5),这有助于了解该库的实际应用之一。


附件下载

📎 testerbenchmark.mqh (5.17 KB)

📎 testerbenchmark_example.mq5 (5.29 KB)

Source: MQL5 #18804

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