哪个事件首先被调用? OnTick()或OnTimer()?

时间:2019-05-13 23:06:18

标签: mql5 metatrader5

如果我正在处理OnTick事件以及OnTimer事件,队列中是否存在首选项?在几秒钟内计算对时间敏感的算法时,我想知道是否更容易在OnTimer中编写整个EA以避免事件处理问题。

1 个答案:

答案 0 :(得分:0)

OnTimer是预定的呼叫。如果您当前的OnTimer调用需要花费很长时间来处理,则后续的OnTimer可能会被跳过。与OnTick相同。 如果假设EA以EventSetTimer(1);从00:00:00.021开始,那么EA将在21毫秒每秒调用一次(好吧,有人说这并不总是正确的,但在大多数情况下是可以接受的) 。同时,您可能在一秒钟内收到更多滴答声,或者根本没有滴答声。如果某些操作很重要,OnTimer()可能会有所帮助。
您应该使用OnTimer()的标准是什么?在MT4中,示例之一是使用renko图表(实时,对于测试,MT4中的呼叫已关闭)。如果您使用多币种专家,那么对于MT4&5来说OnTimer()都很好。您可以控制OnTick的一个符号,但不能同时控制两个/全部符号,即使新的报价没有到达,也会调用OnTimer