请观看如何免费下载自动交易
请在Facebook上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
显示:
1373
等级:
(25)
已发布:
2018.03.16 14:26
\MQL5\Experts\fxsaber\AccurateTimer\ \MQL5\Include\
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

MetaTrader 4/5 标准计时器 是基于系统计时器调用,所以可能工作得不够精确。我们可以通过运行下面的简单 EA 交易来验证:

input int Timer = 1000; // 计时器被触发的毫秒数

#define TOSTRING(A) #A + " = " + (string)(A) + " ms.\n"

const bool Init = EventSetMillisecondTimer(Timer);

// 在图表上以注释的形式显示当前时间误差和它的平均值
void OnTimer()
{
  static ulong StartTime = 0;
  static int Count = 0;
  static int Sum = 0;

  if (StartTime)
  {
    const int RunTime = (int)(GetMicrosecondCount() - StartTime) / 1000;
    const int Error = RunTime - Timer * Count;

    Sum += Error;

    Comment(TOSTRING(Timer) + TimeToString(RunTime / 1000, TIME_SECONDS) + "\n" +
            TOSTRING(Error) + TOSTRING((double)Sum / Count));
  }
  else
    StartTime = GetMicrosecondCount();

  Count++;
}

在图表注释 (左上角)中,它显示了计时器延迟是如何增长的:

屏幕截图显示,才一分钟,秒级计时器就造成了超过一秒的延迟。随着时间发展,延迟还会继续增长!

这个开发库可以为任何EA交易/指标提高标准计时器的精确度,为此,应该在代码的开始加入下面的代码行:

#include <AccurateTimer.mqh> // 提高标准计时器的精确度

随后,显示出下面的注释:

在运行10分钟之后,与理想(理论)计时器的平均偏差大约是1毫秒,并且误差不会增长。

有更精确的计时器总是好的,而对于一些任务来说是必须的。例如,秒级计时器与 交易服务器时间 同步。

这个跨平台开发库与所有的使用标准计时器r (OnTimer)的EA交易/指标都兼容,它不会影响到在策略测试器重的执行速度,

只需要一行代码就可以提高您已有或者新程序的精确度!

由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/19859

ZScore ZScore

ZScore 指标显示了价格相对其平均值的偏差。

价格图表上的 RSI 价格图表上的 RSI

在价格图表上的标准 RSI。

有颜色参数的自定义移动平均 有颜色参数的自定义移动平均

对"自定义移动平均"指标的修改: 现在,线的颜色可以通过输入参数来传入了,

移动平均带 移动平均带

这个指标显示的移动平均有上涨和下跌区域。