使用计时器

对于许多应用任务而言,能够按计划以指定时间间隔执行操作非常重要。在 MQL5 中,此功能由计时器提供,这是一个系统时间计数器,可配置为向 MQL 程序定期发送通知。

在 MQL5 API 中,有多个用于设置或取消计时器通知的函数:EventSetTimerEventSetMillisecondTimerEventKillTimer。这些通知本身以特殊类型的事件形式进入程序:在源代码中为它们保留了OnTimer处理程序。本章将讨论这组函数。

需要提醒的是,在 MQL5 中,只有在图表上运行的交互式程序(即指标和EA 交易)才能接收事件。 脚本服务 不支持任何事件,包括来自计时器的事件。

但在 时间处理函数一章中,我们已经涉及了相关主题:

  • 获取当前本地或服务器时钟的时间戳 (TimeLocal/TimeCurrent)
  • 使用以下函数使程序按指定时间段暂停: Sleep
  • 获取计算机系统时间计数器的状态,该计数器可从操作系统启动时开始计数 (GetTickCount) 或从 MQL 程序启动时开始计数 (GetMicrosecondCount)

这些选项对所有类型的 MQL 程序完全开放。

在前面的章节中,我们已经多次使用了计时器函数,尽管直到现在才会对它们进行正式说明。由于计时器事件仅在指标或 EA 交易中可用,因此在讲解程序本身之前很难对其进行研究。在我们掌握了指标创建之后,计时器的主题将成为一个顺理成章的延续。

基本上,我们使用计时器来等待时间序列的构建。这类示例可以在以下章节中找到: 等待数据多货币和多时间范围指标支持多个交易品种和时间范围使用内置指标

此外,在 删除指标实例一节的指标“动画”演示中,我们每隔 5 秒,对从属指标类型进行一次定时检测。