哪个事件首先被调用? OnTick() 或 OnTimer()?
Which event is called first? OnTick() or OnTimer()?
如果我正在处理 OnTick 事件和 OnTimer 事件,队列中是否有偏好?在秒级计算时间敏感算法时,我想知道在 OnTimer 中编写整个 EA 是否更容易避免事件处理问题。
OnTimer
是预定的通话。如果您当前的 OnTimer
调用需要很长时间才能处理,则后续的 OnTimer
可能会被跳过。与 OnTick
相同。
如果假设 EA 从 00:00:00.021 开始,并且 EventSetTimer(1);
,那么 EA 将在第 21 毫秒每秒调用它(好吧,有些人说这并不总是正确的,但在大多数情况下是可以接受的个案)。同时,您可能在一秒钟内收到更多报价,或者根本没有报价。如果某些操作很重要,OnTimer()
可能会有所帮助。
您应该使用 OnTimer()
的标准是什么?在 MT4 中,示例之一是使用 renko 图表(实时,为了测试,在 MT4 中调用已关闭)。对于 MT4 和 5,如果您与多货币专家合作,OnTimer()
就可以了。您可以控制一个交易品种的 OnTick
,但不能控制 both/all,即使新报价未到达,也会调用 OnTimer
。
如果我正在处理 OnTick 事件和 OnTimer 事件,队列中是否有偏好?在秒级计算时间敏感算法时,我想知道在 OnTimer 中编写整个 EA 是否更容易避免事件处理问题。
OnTimer
是预定的通话。如果您当前的 OnTimer
调用需要很长时间才能处理,则后续的 OnTimer
可能会被跳过。与 OnTick
相同。
如果假设 EA 从 00:00:00.021 开始,并且 EventSetTimer(1);
,那么 EA 将在第 21 毫秒每秒调用它(好吧,有些人说这并不总是正确的,但在大多数情况下是可以接受的个案)。同时,您可能在一秒钟内收到更多报价,或者根本没有报价。如果某些操作很重要,OnTimer()
可能会有所帮助。
您应该使用 OnTimer()
的标准是什么?在 MT4 中,示例之一是使用 renko 图表(实时,为了测试,在 MT4 中调用已关闭)。对于 MT4 和 5,如果您与多货币专家合作,OnTimer()
就可以了。您可以控制一个交易品种的 OnTick
,但不能控制 both/all,即使新报价未到达,也会调用 OnTimer
。