AccurateTimer - MetaTrader 5 库



MetaTrader 4/5标准定时器基于系统计时器调用,因此可能无法准确工作。我们可以通过运行以下简单的 Expert Advisor 来检查这一点:
输入 整数定时器=1000;// 定时器触发的毫秒数 #定义托串(A)#一个+”=“+ (细绳)(A) +“女士。\n” 常量 布尔值初始化=事件集毫秒定时器(计时器);// 显示当前计时器误差及其平均值作为图表上的注释 空白 定时器() { 静止的 乌龙开始时间 =0; 静止的 整数计数 =0; 静止的 整数总和=0; 如果(开始时间) { 常量 整数运行时间 = (整数)(获取微秒计数() - 开始时间) /1000; 常量 整数错误 = 运行时间 - 计时器 * 计数; 总和+=误差; 评论(TOSTRING(定时器) +字符串时间(运行时/1000,TIME_SECONDS) +“\n”+ TOSTRING(错误) + TOSTRING((双倍的)总和/计数)); } 别的 开始时间 =获取微秒计数(); 计数++; }
在图表注释(左上角)中,它显示了计时器延迟如何增长:

屏幕截图显示,在短短一分钟内,第二个计时器就产生了超过一秒的滞后。而且这种滞后随着时间的推移而增加!
该库可以提高任何 EA 交易/指标的标准计时器的准确性。为此,应在代码开头添加以下行:
#包括<准确计时器.mqh>// 提高标准定时器的精度
之后将显示以下评论:

运行十分钟后,与理想(理论)计时器的平均偏差约为 1 毫秒,并且误差不会增大。
有一个准确的计时器总是好的。但对于某些任务来说这是必须的。例如,第二个定时器与交易服务器时间。
该跨平台库与所有使用标准定时器(OnTimer)。它不会影响策略测试器中的执行速度。
只需一行即可提高现有程序和新程序的准确性!
附件下载
📎 accuratetimer_example1.mq5 (0.85 KB)
📎 accuratetimer_example2.mq5 (0.82 KB)
📎 accuratetimer.mqh (2.97 KB)
Source: MQL5 #19859
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录
