新的mql4提供时间戳中的毫秒.... - 页 2 1234 新评论 ydrol 2013.09.12 07:06 #11 请注意,如果毫秒和纳秒是如此重要,这些时间点是通过互联网进入的(网络绑定的IO)。除非你打算做一些坏事,否则非秒级的时间分辨率可能是多余的。 Ubzen 2013.09.12 07:35 #12 angevoyageur: 在mql5中也没有这样的信息。但是有一个Timer事件,可以用毫秒的精度,虽然我不知道这个功能在新的mql4中是否可用。 目前mql4的等价物是如下所示。 void start(){ while(true){ do_something....; Sleep(1000); //Sleep for one Second. RefreshRates(); } } void start(){ static bool RunOnce; if(RunOnce) return; int Begin=GetTickCount(); while(GetTickCount()<Begin+1000){ Print("GetTickCount()="+GetTickCount()); Sleep(1); } RunOnce=true; } 我测试了GTC,它似乎跳了16_milliseconds。我发现,这可能是传统系统的某种计算机科学的限制。如果有人愿意解释一下原因[尽管我在胡言乱语],我会很高兴。嗯,不知道mql5是否有同样的限制?好吧,还有一个测试,马上就到了 :) Ex Ovo Omnia 2013.09.12 07:49 #13 总是值得努力找出,MQL开发人员封装了什么Widows API函数。 在这种情况下,答案很简单--他们使用了GetTickCount 它说。 GetTickCount 函数的分辨率 受限于系统定时器的分辨率,通常在10毫秒到16毫秒之间。 Ian Flanagan 2013.09.12 07:49 #14 我以前在谷歌上搜索过,虽然我不太明白,但似乎GetTickCount()是一个直接来自windows操作系统的函数。它并不意味着精确,也不应该被用于需要精确到毫秒级别的事情(尽管它返回的是毫秒级的值)。 我已经用sleep和get tick count做了测试,总是有错误,很难说是由Sleep还是GTC引起的,但我猜是两者都有。 Ubzen 2013.09.12 07:51 #15 Ovo: 总是值得努力找出,MQL开发人员封装了什么Widows API函数。 在这种情况下,答案很简单--他们使用了GetTickCount 它说。 GetTickCount 函数的分辨率 受限于系统定时器的分辨率,通常在10毫秒到16毫秒之间。 谢谢你。 Alain Verleyen 2013.09.12 07:53 #16 ubzen: 目前的mql4等价物是如下所示。 我测试了GTC,它似乎跳了16_milliseconds。我发现,这可能是传统系统的某种计算机科学的限制。如果有人愿意解释一下原因[尽管我在胡言乱语],我会很高兴。嗯,不知道mql5是否有同样的限制?好吧,还有一个测试马上就来 :)16毫秒的限制来自于硬件的限制,但是还有其他方法可以获得更好的精度的计时器。 mql5对GetTickCount()也有同样的限制,但正如我在上面试图解释的,还有其他的功能可以使用(定时器事件)。 Ian Flanagan 2013.09.12 07:55 #17 Ovo: 总是值得努力找出,MQL开发人员封装了什么Widows API函数。 在这种情况下,答案很简单--他们使用了GetTickCount 它说。 GetTickCount 函数的分辨率 受限于系统定时器的分辨率,通常在10毫秒到16毫秒之间。 是的,它是这么说的,但很难知道这到底是什么意思。如果分辨率是16毫秒,我希望看到0、16、32、48......等值。 我从来没有看到0到16之间的东西,但我看到每一个关于16的值。 Ubzen 2013.09.12 07:58 #18 angevoyageur: 16毫秒的限制来自于硬件的限制,但是还有其他方法可以获得更好的精度的定时器。 mql5对GetTickCount()也有同样的限制,但正如我在上面试图解释的那样,还有其他可以使用的功能(定时器事件)。 明白了:) Alain Verleyen 2013.09.12 08:53 #19 ubzen: 找到你了 :) 计时器、计时器解析和高效代码的开发 Windows的定时器分辨率:百万瓦特被浪费了 szgy74 2013.09.12 15:17 #20 RaptorUK: 成交量是一个不好的名字,实际上是 "Tick count"......它与交易量/手数无关......它之所以可以变化超过1,是因为你可以错过ticks。 谢谢你的信息。我想知道我以前怎么没有注意到这一点。在这种情况下,这似乎是一个相当无用(或误导)的信息。 我真的要从一些经纪商那里寻找真正的level2交易量数据。幸运的是,我的ECN经纪人提供了真实交易量的level2交易数据。 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在mql5中也没有这样的信息。但是有一个Timer事件,可以用毫秒的精度,虽然我不知道这个功能在新的mql4中是否可用。
目前mql4的等价物是如下所示。
我测试了GTC,它似乎跳了16_milliseconds。我发现,这可能是传统系统的某种计算机科学的限制。如果有人愿意解释一下原因[尽管我在胡言乱语],我会很高兴。嗯,不知道mql5是否有同样的限制?好吧,还有一个测试,马上就到了 :)
总是值得努力找出,MQL开发人员封装了什么Widows API函数。
在这种情况下,答案很简单--他们使用了GetTickCount 它说。
GetTickCount 函数的分辨率 受限于系统定时器的分辨率,通常在10毫秒到16毫秒之间。
我以前在谷歌上搜索过,虽然我不太明白,但似乎GetTickCount()是一个直接来自windows操作系统的函数。它并不意味着精确,也不应该被用于需要精确到毫秒级别的事情(尽管它返回的是毫秒级的值)。
我已经用sleep和get tick count做了测试,总是有错误,很难说是由Sleep还是GTC引起的,但我猜是两者都有。
总是值得努力找出,MQL开发人员封装了什么Widows API函数。
在这种情况下,答案很简单--他们使用了GetTickCount 它说。
GetTickCount 函数的分辨率 受限于系统定时器的分辨率,通常在10毫秒到16毫秒之间。
目前的mql4等价物是如下所示。
我测试了GTC,它似乎跳了16_milliseconds。我发现,这可能是传统系统的某种计算机科学的限制。如果有人愿意解释一下原因[尽管我在胡言乱语],我会很高兴。嗯,不知道mql5是否有同样的限制?好吧,还有一个测试马上就来 :)16毫秒的限制来自于硬件的限制,但是还有其他方法可以获得更好的精度的计时器。
mql5对GetTickCount()也有同样的限制,但正如我在上面试图解释的,还有其他的功能可以使用(定时器事件)。
总是值得努力找出,MQL开发人员封装了什么Widows API函数。
在这种情况下,答案很简单--他们使用了GetTickCount 它说。
GetTickCount 函数的分辨率 受限于系统定时器的分辨率,通常在10毫秒到16毫秒之间。
是的,它是这么说的,但很难知道这到底是什么意思。如果分辨率是16毫秒,我希望看到0、16、32、48......等值。
我从来没有看到0到16之间的东西,但我看到每一个关于16的值。
16毫秒的限制来自于硬件的限制,但是还有其他方法可以获得更好的精度的定时器。
mql5对GetTickCount()也有同样的限制,但正如我在上面试图解释的那样,还有其他可以使用的功能(定时器事件)。
找到你了 :)
计时器、计时器解析和高效代码的开发
Windows的定时器分辨率:百万瓦特被浪费了成交量是一个不好的名字,实际上是 "Tick count"......它与交易量/手数无关......它之所以可以变化超过1,是因为你可以错过ticks。
谢谢你的信息。我想知道我以前怎么没有注意到这一点。在这种情况下,这似乎是一个相当无用(或误导)的信息。
我真的要从一些经纪商那里寻找真正的level2交易量数据。幸运的是,我的ECN经纪人提供了真实交易量的level2交易数据。