服务,MT5的新功能,MT4的葬礼就在眼前。 - 页 6

 
Petros Shatakhtsyan:


是的,但你也要考虑到只有一个定时器,而不是如此,如此的VC++,如果你有大量的定时检查,你就可能失去大量的ticks,一切都会变成一团糟。

这不是一个问题。只是在一个定时器中,每次定时器开始时,你做一次检查,其他的在最后一次相关检查后X秒。
 
Alexey Kozitsyn:
这不是一个问题。只是在一个定时器中,你每运行一次定时器就做 一次检查 其他的则在最后一次相关检查后X秒。


我不明白。你知道运行一个定时器需要多少钱吗。是否有可能运行1次以上。

我说过,每一个刻度 都很重要,而你说的是秒。它们都应该平行工作,相互独立。

 
Petros Shatakhtsyan:


我不知道。你知道运行定时器需要多少钱吗。 是否有可能运行1次以上。

我说过,每一个刻度 都很重要,而你说的是秒。

如果不能以其他方式完成任务,运行定时器的费用正好与任务所需的费用相同。它不需要运行很多次,只要在3次运行中做一次检查,3次中做一次检查即可。我希望现在的想法是清楚的。

 
Petros Shatakhtsyan:


如果EA处理每一个刻度,即使在计时器中使用了毫秒,也是低效的。

需要一个更简单的方法来直接从市场概览中获得所有的点位。

通过OpTisk是不可能的,因为它只在下一个tick出现在EA所处的位置时起作用。


当然,会有一些损失......但整个EA的逻辑执行速度也会有损失。
 
Maxim Dmitrievsky:

当然会有一些损失......但所有EA逻辑的执行速度也会有损失。


这就是为什么我告诉你要做另一个OnTick,它将接收来自市场概览中当前所有符号的ticks。一个简单而快速的变体。

而且不仅如此。你还应该有一个函数来返回每个符号所具有的实际杠杆率。

 
Petros Shatakhtsyan:


于是说再做一个OnTick,它从市场概览中目前所有的符号中得到了ticks。一个简单而快速的选择。

实际上,OnTick()跳过了ticks。甚至OnCalculate() 也会跳过ticks。此外,蜱虫可能成群结队。所以,计时器并不是很贵的东西,在分析许多人物时更是如此。最主要的是要使计算具有成本效益。
 
Alexey Kozitsyn:
实际上,OnTick()跳过了ticks。甚至OnCalculate()也会跳过ticks。此外,蜱虫可能成群结队而来。所以,计时器并不是很贵的东西,在分析许多人物时更是如此。最主要的是要进行经济计算。

那么,你也可以通过计时器来做。好的是我们有EventSetMillisecondTimer,但不好的是它也启动了OnTimer。我们应该添加OnMillisecondTimer。
 
Petros Shatakhtsyan:

嗯,你可以用计时器来做。EventSetMillisecondTimer 的存在是好事,但它同时也启动了OnTimer,这就不好了。你应该添加OnMillisecondTimer。

是什么阻碍了你这样做呢?

void OnTimer()
{
if( condition1 )
   {...копируем тики...}
if( condition2 )
   {...иной расчет, который не нужно запускать так часто, как condition1...}
}
而从整体上看,如果我们把符号字段作为OnBookEvent()处理程序加入,那就更好了。
 
Alexey Kozitsyn:
实际上,OnTick()跳过了ticks。甚至OnCalculate()也会跳过ticks。此外,蜱虫可能成群结队而来。所以,计时器并不是很贵的东西,在分析许多人物时更是如此。最主要的是要进行经济计算。

计时器也会跳过刻度,如果你需要直接数到刻度,你需要按那里的刻度量 来数......但这也救不了你......刻度可能来得非常快,而且是成批的,没错
 
Maxim Dmitrievsky:

计时器也会错过,如果你需要直接去打勾,你需要跟踪他们,通过打勾量 那里......但它也不会保存......打勾可以来得非常快和很多,是的。
没有什么能拯救这一点。你不可能绝对地处理每一个勾股。