错误、漏洞、问题 - 页 1808

 
fxsaber:
_TimeCurrent = MathMax(SymbolInfoInteger(Symbol1, SYMBOL_TIME), SymbolInfoInteger(Symbol2, SYMBOL_TIME), ...);
到目前为止,真的只有这么多东西可以用。通过选择最长的时间。但这是在每个OnBookEvent()中获得两个时间值的额外成本......
 
Alexey Kozitsyn:
到目前为止,真的只有这么多东西可以用。通过选择最长的时间。但在每个OnBookEvent()中获得两个时间值是额外的开支......
通过GetMicrosecondCount模拟TimeTradeServer。或者将TimeTradeServer和TimeCurrent之间的差值添加到BookEvent的99%。
 

对SR的申请#1674783

请尽快决定!

 
fxsaber:
通过GetMicrosecondCount模拟TimeTradeServer。或者在99%的BookEvent中加入TimeTradeServer和TimeCurrent之间的差异。
这仍然是得到多个参数。
 
Alexey Kozitsyn:
这仍然是一个获得一些参数的问题。
问题不在于参数的数量,而在于其总的廉价程度。
 
fxsaber:
问题不在于参数的数量,而在于其总的廉价程度。
所以你认为TimeTradeServer() 会比SymbolInfoInteger( _Symbol, SYMBOL_TIME )快?
 
Alexey Kozitsyn:
那么,你认为TimeTradeServer() 会比SymbolInfoInteger( _Symbol, SYMBOL_TIME )工作得快吗?

TimeTradeServer通过GetMicrosecondCount工作,将相应的差值加入到TimeCurrent中。

我不知道你需要得到什么。但在微秒上省钱对我来说似乎并不合理。

 
fxsaber:

TimeTradeServer通过GetMicrosecondCount工作,将相应的差值加入到TimeCurrent中。

我不知道你需要得到什么。但在我看来,以微秒为单位的节约并不合理。

我需要得到当前时间 的正确值。我要求从当前时间的OnBookEvent()中写入与时间绑定的参数值。我需要的是当前的时间,而不是过去的时间,而且最好不要用拐杖的形式获得几个时间值,选择最大的值。TimeCurrent()应该处理这个任务(根据文档的描述)。但事实证明,它现在并没有这样做!
 
Alexey Kozitsyn:
我需要得到当前时间 的正确值。我正在从OnBookEvent()查询当前时间,以写入与时间绑定的参数的值。我需要的是当前的时间,而不是过去的时间,而且最好不要使用获取多个时间值并选择最高值的拐杖。TimeCurrent()应该处理这个任务(根据文档的描述)。但事实证明,它现在并没有这样做!。
我还没有检查过。
datetime NewTimeCurrent( void )
{
  static ulong PrevStartTime = GetMicrosecondCount();
  static datetime PrevTimeCurrent = TimeCurrent(); // TimeTradeServer()
  
  const datetime NewTimeCurrent = TimeCurrent(); // TimeTradeServer()
  const ulong NowTime = GetMicrosecondCount();
  
  if (PrevTimeCurrent < NewTimeCurrent)  
  {
    PrevTimeCurrent = NewTimeCurrent;
    
    PrevStartTime = NowTime;
  }
  
  return(PrevTimeCurrent + (datetime)((NowTime - PrevStartTime) / 1000000));
}
你可以说得更精确些。例如,你可以通过查询SymbolInfoTick(+CopyTicks)来运行所有字符。从那里,划出以毫秒为单位的时间。我只是不明白它能有什么实际用途。
 
fxsaber:
通过查询SymbolInfoTick(+CopyTicks)来运行所有字符。从那里,划出以毫秒为单位的时间。
TimeCurrent 的毫秒级类似物早就该出现了,它在GUI中的反映也是如此。