实时的提基 - 页 18 1...11121314151617181920212223242526 新评论 Aleksey Mavrin 2020.02.04 20:02 #171 prostotrader: 在辩论进行的同时,我做了另一个实验。 我的意思是,在初始化过程中,我以一微秒为单位计时。 在每次打印之前,我都会再次钻研时间。 理想情况下,它应该是这样的 但很多时候,结果是这样的(日志曝光)。 但它不适合4秒... 哦,他们终于知道如何计时了,有进步!) s.s.为了证实时间没有完全写入磁盘,我给你一个简单的测试,在测试的操作之间做一些计算,平均需要7微秒。 同时我们看到,在相同的时间内,以微秒为单位,打印输出的时间为几十+这样的操作,每微秒都有打印输出。我认为这一切都很有意义。 ap:如果你把第一个打印放在第二个之前,那么delta已经是0-1了,所以这个打印是这个链条中最长的。 for(int count=0;count<10000;count++) { ul=GetMicrosecondCount(); Print("MicrosecondCount ",ul); Test(); ul_cur=GetMicrosecondCount(); Print("MicrosecondCount ", ul_cur, " delta ",ul_cur-ul); } prostotrader 2020.02.04 20:07 #172 Aleksey Mavrin: 哦,他们终于知道如何计时了,进步了!) 你怎么了,先生?你难道没有更好的事情可做吗? 这就是一切开始的地方! Aleksey Mavrin 2020.02.04 20:18 #173 prostotrader: 不是吗,先生?你难道没有更好的事情可做吗? 这就是一切开始的地方! 由以下人员添加 另外,你不知道GetMicrosecondCount()的误差高达16ms吗?:) 给出微秒的函数,误差高达16毫秒,即误差比它的名字高一个数量级,好吧,好吧))你也能用pruf来确认吗? prostotrader 2020.02.04 20:20 #174 Aleksey Mavrin: 一个给出微秒的函数,其误差高达16毫秒,也就是说,这个误差比它的名字大一个数量级,好吧,好吧))你能不能也用普鲁夫来确认一下? 弄错了 Aleksey Mavrin 2020.02.04 20:23 #175 prostotrader: 错了 好吧,为你直接承认错误而喝彩;) 4秒的滞后很可能是真的,在某些时候,终端被混淆了,这似乎发生在杀毒软件开始扫描的时候等等。 案件。 而4秒意味着Print在日志缓存中晚了4秒,而不是OnBook晚了4秒(尽管我认为这有可能,这取决于电脑此刻的加载方式)。 s.w.因为打印首先进入队列,然后从那里进入日志。 Yuriy Zaytsev 2020.02.04 20:48 #176 Aleksey Mavrin: 好吧,为你直接承认错误而喝彩;) 4秒的滞后很可能是真的,在某些时候,终端被混淆 了,这似乎发生在杀毒软件开始扫描等情况下。 而4秒的确切意思是,Print在日志缓存中晚了4秒,而不是OnBook晚了4秒(尽管我认为这有可能,这取决于你在那一刻如何加载计算机。) s.w.因为打印首先进入队列,然后从那里进入日志。 是的,这是有可能的。 prostotrader 2020.02.04 20:51 #177 Aleksey Mavrin: 而4秒的意思正是指Print在日志缓存中晚了4秒,而不是说OnBook晚了4秒(虽然我猜这是有可能的,取决于当时电脑的加载方式)。 s.w. 打印首先进入队列,然后从那里进入日志。 嗯,是的,怎么样? 一个图表运行的是OnBook,另一个是OnTick。 //+------------------------------------------------------------------+ //| Ticks_test.mq5 | //| Copyright 2019 prostotrader | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2019 prostotrader" #property link "https://www.mql5.com" #property version "1.00" //--- bool is_book; enum ENUM_BOOK_OR_TICK { USE_BOOK, // Use OnBookEvent USE_TICK // Use OnTick }; input ENUM_BOOK_OR_TICK Mode = USE_BOOK; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { if(Mode == USE_BOOK) is_book = MarketBookAdd(Symbol()); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { if(Mode == USE_BOOK) { if(is_book == true) MarketBookRelease(Symbol()); } } //+------------------------------------------------------------------+ //| BookEvent function | //+------------------------------------------------------------------+ void OnBookEvent(const string &symbol) { if((Symbol() != symbol) || (Mode != USE_BOOK)) return; Print(__FUNCTION__, "; Time: ", GetTickCount(), " ms"); } void OnTick() { if(Mode != USE_TICK) return; Print(__FUNCTION__, "; Time: ", GetTickCount(), " ms"); } //+------------------------------------------------------------------+ 在OnTick和OnBook之间相差56毫秒 和印刷品有相同的区别 :) 2020.02.04 22:37:48.212 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205482644 ms 2020.02.04 22:37:49.268 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 20548369 0 ms 2020.02.04 22:37:50.354 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205484782 ms 2020.02.04 22:37:50.354 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205484782 ms 2020.02.04 22:37:51.064 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205485484 ms 2020.02.04 22:37:51.064 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205485484 ms 2020.02.04 22:37:52.833 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205487262 ms 2020.02.04 22:37:52.833 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205487262 ms 2020.02.04 22:38:01.932 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205496357 ms 2020.02.04 22:38:01.932 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205496357 ms 2020.02.04 22:38:05.310 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205499742 ms 2020.02.04 22:38:05.310 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205499742 ms 2020.02.04 22:38:07.706 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205502129 ms 2020.02.04 22:38:07.706 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205502129 ms 2020.02.04 22:38:09.426 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205503845 ms 2020.02.04 22:38:09.426 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205503845 ms 2020.02.04 22:38:10.035 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205504453 ms 2020.02.04 22:38:10.035 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205504453 ms 2020.02.04 22:38:14.225 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205508650 ms 2020.02.04 22:38:14.225 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205508650 ms 2020.02.04 22:38:14.252 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205508681 ms 2020.02.04 22:38:14.252 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205508681 ms 2020.02.04 22:38:14.593 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205509024 ms 2020.02.04 22:38:14.593 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205509024 ms 2020.02.04 22:38:15.105 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205509523 ms 2020.02.04 22:38:15.105 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205509523 ms 2020.02.04 22:38:15.584 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205510007 ms 2020.02.04 22:38:16.226 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205510647 ms 2020.02.04 22:38:16.232 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205510662 ms 2020.02.04 22:38:16.232 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205510662 ms 2020.02.04 22:38:21.476 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205515904 ms 2020.02.04 22:38:21.477 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205515904 ms 2020.02.04 22:38:22.403 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205516824 ms 2020.02.04 22:38:22.404 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205516824 ms 2020.02.04 22:38:23.582 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205518010 ms 2020.02.04 22:38:23.583 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205518010 ms 2020.02.04 22:38:24.707 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205519133 ms 2020.02.04 22:38:24.708 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205519133 ms 2020.02.04 22:38:30.962 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205525389 ms 2020.02.04 22:38:30.962 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205525389 ms 2020.02.04 22:38:31.188 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205525607 ms 2020.02.04 22:38:31.189 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205525607 ms 2020.02.04 22:38:31.989 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205526418 ms 2020.02.04 22:38:31.989 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205526418 ms 2020.02.04 22:38:32.048 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205526481 ms 2020.02.04 22:38:32.048 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205526481 ms 2020.02.04 22:38:32.140 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205526559 ms 2020.02.04 22:38:32.140 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205526559 ms 2020.02.04 22:38:32.153 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205526574 ms 2020.02.04 22:38:32.153 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205526574 ms 2020.02.04 22:38:32.589 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205527011 ms 2020.02.04 22:38:32.590 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205527011 ms 2020.02.04 22:38:39.930 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205534359 ms 2020.02.04 22:38:39.931 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205534359 ms 2020.02.04 22:38:40.009 Ticks_test_2 (GOLD-3.20,M1) OnTick; Time: 205534437 ms 2020.02.04 22:38:40.009 Ticks_test_2 (GOLD-3.20,M1) OnBookEvent; Time: 205534437 ms Aleksey Mavrin 2020.02.04 21:07 #178 prostotrader:对了,这个怎么样?一个图表运行的是OnBook,另一个是OnTick。在OnTick和OnBook之间相差56毫秒而在印刷方面也有同样的区别 :) 同样,我也不是很确定,因为我很困,而怀疑是有经验的人和聪明人的事)。 但我认为这只是基本原理,Symbol()会吃掉时间 )) 如此真实的测试 - 检查 - 我太懒了) 它是一个漫长的球。 void OnBookEvent(const string &symbol) { ul=GetTickCount(); if((Symbol() != symbol) || (Mode != USE_BOOK)) return; Print(__FUNCTION__, "; Time: ", ul, " ms"); } void OnTick() { ul=GetTickCount(); if(Mode != USE_TICK) return; Print(__FUNCTION__, "; Time: ", ul, " ms"); } //+------------------------------------------------------------------+ prostotrader 2020.02.04 21:10 #179 Aleksey Mavrin: 同样,我也不确定,因为我很困,而怀疑是有经验和有智慧的人的事)。 但我认为,Symbol()占用了时间,这只是一个基本的问题。) 如此真实的测试 - 检查 - 我太懒了) 它是一个漫长的球。 :), 晚安 Yuriy Zaytsev 2020.02.04 21:42 #180 Aleksey Mavrin:同样,我也不确定,因为我很困,怀疑是有经验的人和明智的人的命运)。但我认为,Symbol()占用了时间,这只是一个基本的问题。)如此真实的测试 - 检查 - 我太懒了)它是一个漫长的球。 string gSymbol; int OnInit() { gSymbol = Symbol(); return 0; } void OnBookEvent(const string &symbol) { ul=GetTickCount(); if((Symbol() != symbol) || (Mode != USE_BOOK)) return; Print(__FUNCTION__, "; Time: ", ul, " ms"); } void OnTick() { ul=GetTickCount(); if((Symbol() != gSymbol) || (Mode != USE_TICK)) return; // можно попробовать привести оба обработчика к одинаковому коду Print(__FUNCTION__, "; Time: ", ul, " ms"); } //+------------------------------------------------------------------+ 另外,为了消除对Symbol() 吞噬时间的担忧,让两个处理程序同样 "进食"。 1...11121314151617181920212223242526 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在辩论进行的同时,我做了另一个实验。
我的意思是,在初始化过程中,我以一微秒为单位计时。
在每次打印之前,我都会再次钻研时间。
理想情况下,它应该是这样的
但很多时候,结果是这样的(日志曝光)。
但它不适合4秒...
哦,他们终于知道如何计时了,有进步!)
s.s.为了证实时间没有完全写入磁盘,我给你一个简单的测试,在测试的操作之间做一些计算,平均需要7微秒。
同时我们看到,在相同的时间内,以微秒为单位,打印输出的时间为几十+这样的操作,每微秒都有打印输出。我认为这一切都很有意义。
ap:如果你把第一个打印放在第二个之前,那么delta已经是0-1了,所以这个打印是这个链条中最长的。
哦,他们终于知道如何计时了,进步了!)
你怎么了,先生?你难道没有更好的事情可做吗?
这就是一切开始的地方!
不是吗,先生?你难道没有更好的事情可做吗?
这就是一切开始的地方!
由以下人员添加
另外,你不知道GetMicrosecondCount()的误差高达16ms吗?:)
给出微秒的函数,误差高达16毫秒,即误差比它的名字高一个数量级,好吧,好吧))你也能用pruf来确认吗?
一个给出微秒的函数,其误差高达16毫秒,也就是说,这个误差比它的名字大一个数量级,好吧,好吧))你能不能也用普鲁夫来确认一下?
弄错了
错了
好吧,为你直接承认错误而喝彩;)
4秒的滞后很可能是真的,在某些时候,终端被混淆了,这似乎发生在杀毒软件开始扫描的时候等等。 案件。
而4秒意味着Print在日志缓存中晚了4秒,而不是OnBook晚了4秒(尽管我认为这有可能,这取决于电脑此刻的加载方式)。
s.w.因为打印首先进入队列,然后从那里进入日志。好吧,为你直接承认错误而喝彩;)
4秒的滞后很可能是真的,在某些时候,终端被混淆 了,这似乎发生在杀毒软件开始扫描等情况下。
而4秒的确切意思是,Print在日志缓存中晚了4秒,而不是OnBook晚了4秒(尽管我认为这有可能,这取决于你在那一刻如何加载计算机。)
s.w.因为打印首先进入队列,然后从那里进入日志。是的,这是有可能的。
而4秒的意思正是指Print在日志缓存中晚了4秒,而不是说OnBook晚了4秒(虽然我猜这是有可能的,取决于当时电脑的加载方式)。
s.w. 打印首先进入队列,然后从那里进入日志。嗯,是的,怎么样?
一个图表运行的是OnBook,另一个是OnTick。
在OnTick和OnBook之间相差56毫秒
和印刷品有相同的区别 :)
对了,这个怎么样?
一个图表运行的是OnBook,另一个是OnTick。
在OnTick和OnBook之间相差56毫秒
而在印刷方面也有同样的区别 :)
同样,我也不是很确定,因为我很困,而怀疑是有经验的人和聪明人的事)。
但我认为这只是基本原理,Symbol()会吃掉时间 ))
如此真实的测试 - 检查 - 我太懒了)
它是一个漫长的球。
同样,我也不确定,因为我很困,而怀疑是有经验和有智慧的人的事)。
但我认为,Symbol()占用了时间,这只是一个基本的问题。)
如此真实的测试 - 检查 - 我太懒了)
它是一个漫长的球。
:), 晚安
同样,我也不确定,因为我很困,怀疑是有经验的人和明智的人的命运)。
但我认为,Symbol()占用了时间,这只是一个基本的问题。)
如此真实的测试 - 检查 - 我太懒了)
它是一个漫长的球。
另外,为了消除对Symbol() 吞噬时间的担忧,让两个处理程序同样 "进食"。