新的mql4提供时间戳中的毫秒.... - 页 4

 
autoabacus:

...
非常有趣。谢谢你。
 

我注意到mt4现在有一个GetMicroSecondCount()。就精度而言,这是否优于使用GetTickCount函数?

使用GetMicrosecondCount()与GetTickCount()相比有什么优势/劣势? 它是否会使用更多的资源? 我认为MicroSec的分辨率会比MilliSec更优越。 你总是可以将MicroSec转换为Millisec或更低的分辨率,但你不能拿Millisec来获得MicroSecs或更高的分辨率。


为什么MQ对毫秒级的时间戳建议使用GTC函数而不是GMicroC? 我理解,也许以前没有GMicroC函数,但现在有了,为什么不更新文档,推荐使用GMicroC来提高时间戳的分辨率?

 
4evermaat:

我注意到mt4现在有一个GetMicroSecondCount()。就精度而言,这是否优于使用GetTickCount函数?

使用GetMicrosecondCount()与GetTickCount()相比有什么优势/劣势? 它是否会使用更多的资源? 我认为MicroSec的分辨率会比MilliSec更优越。 你总是可以将MicroSec转换为Millisec或更低的分辨率,但你不能拿Millisec来获得MicroSecs或更高的分辨率。


为什么MQ对毫秒级的时间戳建议使用GTC函数而不是GMicroC? 我理解,也许以前没有GMicroC函数,但现在有了,为什么不更新文档,推荐使用GMicroC来提高时间戳的分辨率?

似乎你喜欢抱怨 你要求的是毫秒,而现在你有微秒。无论如何,如果TimeCurrent()(和其他从服务器返回的时间)能返回毫秒,那就更好了。

如果你想和Metaquotes谈谈,你应该写信给ServiceDesk,他们很少回复这个论坛。

 
4evermaat:

我注意到mt4现在有一个GetMicroSecondCount()。就精度而言,这是否优于使用GetTickCount函数?

使用GetMicrosecondCount()与GetTickCount()相比有什么优势/劣势? 它是否会使用更多的资源? 我认为MicroSec的分辨率会比MilliSec更优越。 你总是可以将MicroSec转换为Millisec或更低的分辨率,但你不能拿Millisec来获得MicroSecs或更高的分辨率。


为什么MQ对毫秒级的时间戳建议使用GTC函数而不是GMicroC? 我理解,也许以前没有GMicroC函数,但现在有了,为什么不更新文档,推荐使用GMicroC来提高时间戳的分辨率?

虽然GetTickCount是一个核心的Windows API函数(从Windows开始),但其他函数需要(虽然简单)实现。它们相互之间没有关系。
 
zirkoner:

似乎你喜欢抱怨,你要求的是毫秒,现在却有了微秒。总之,如果TimeCurrent()(以及其他从服务器返回的时间)能返回毫秒,那就更好了。

如果你想和Metaquotes谈谈,你应该写信给ServiceDesk,他们很少回复这个论坛。

我不是在抱怨,只是想知道为什么现在有了更精确的新函数,他们(或任何人)仍然推荐旧函数。 我已经写信给服务台。

Ovo
虽然GetTickCount是一个核心的Windows API函数(从Windows开始),但另一个函数需要(虽然简单)实现。它们相互之间没有关系。

GetMicroSecondCount()使用什么实现来获得时间戳中的微秒精度?

 
4evermaat:

GetMicroSecondCount()使用什么实现来获得时间戳中的微秒精度?

我很清楚如何编码,但我不是MQ的编码员。不管怎样,如果他们已经为你做了工作,你为什么还需要知道它呢?
 

为了获得系统时间,以毫秒为单位,从历时开始。


#include <WinAPI\windef.mqh>
#import
"kernel32.dll" void GetSystemTimeAsFileTime(FILETIME& t); #import ulong getCurrentEpochMsc(){      FILETIME t;      GetSystemTimeAsFileTime(t);      ulong time = (long)t.dwHighDateTime << 32 | t.dwLowDateTime;      ulong diffTo1970 = 11644473600000;      return (ulong)(time * 0.0001 - diffTo1970 - TimeGMTOffset()*1000); }
 
owneroxxor: 以毫秒为单位获取系统时间,从历时开始。

一个日期时间 是指从纪元开始的秒数。铸成一个长条,然后乘以1000。 没有必要做这些事情。

 
William Roeder:

一个Datetime 是指从纪元开始的秒数。铸成一个长条,然后乘以1000,不需要这么多。

你没有考虑到,在某些情况下(比如我),我需要知道系统的当前瞬间(精确到毫秒),以便与下单的TimeMsc()进行比较。在这种情况下,你所说的是不成立的。

 
owneroxxor:

你没有考虑到,在某些情况下(比如我),我需要知道系统的当前瞬间(精确到毫秒),以便与下单的TimeMsc()进行比较。在这种情况下,你所说的是不成立的。

只需使用GetTickCount()