リアルタイムで見るTiki - ページ 18 1...11121314151617181920212223242526 新しいコメント Aleksey Mavrin 2020.02.04 19:02 #171 prostotrader: その議論のついでに、もう一つ実験をしてみました。 つまり、初期化時にマイクロ秒単位で時間を計っているのです。 と、毎回プリントする前に、もう一度時間をドリルで計っています。 理想は、そうであること しかし、そうなってしまうことが非常に多い(ログエクスポージャー)。 でも、4秒では収まらない...。 ああ、ついにタイミングを合わせる方法がわかったんだ、進歩だ!) s.s.時間が正確にディスクに書き込まれていないことを確認として、私はあなたに簡単なテストを与えるだろう、テストの操作の間にいくつかの計算を行い、平均7マイクロ秒を取っている。 同時に、マイクロ秒単位の同じ時間で、数十回+αの操作でプリントを出力しており、マイクロ秒ごとにプリントを出力していることがわかる。すべて納得のいくものだと思います。 ap:最初のPrintを2番目のPrintの直前に置くと、デルタはすでに0-1になるので、Printはこの連鎖の中で最も長くなります。 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 19:07 #172 Aleksey Mavrin: おお、ついにタイミングの取り方がわかったようだ、進歩したものだ!) どうしたんですか、先生?他にやることないのか? そこがすべての始まりです Aleksey Mavrin 2020.02.04 19:18 #173 prostotrader: そうでしょう?他にやることないのか? ここがすべての始まりです によって追加されました。 また、GetMicrosecondCount()は最大16msの誤差があることをご存知ないでしょうか!:) マイクロ秒を出す関数が、16ミリ秒まで誤差がある、つまり名前より一桁高い誤差がある、さて、さて)) prufでも確認できますか? prostotrader 2020.02.04 19:20 #174 Aleksey Mavrin: マイクロ秒を出す関数が最大16ミリ秒の誤差、つまり名前とは桁違いの誤差がある、さて、さて))これもプルーフで確認できるでしょうか? Got it wrong Aleksey Mavrin 2020.02.04 19:23 #175 prostotrader: 誤 まあ、すぐに間違いを認めたのは賞賛に値しますが;) 4秒の遅れは、ある時点で端末が混乱した可能性が高く、アンチウィルスがスキャンを開始した時などに起こるようです。 の事例を紹介します。 また、4秒というのは、ログキャッシュでPrintが4秒後になったということで、OnBookが4秒後に来たということではありません(その時のパソコンの負荷によってはあり得ると思いますが)。 s.w. as Printは、まずキューに入り、そこからログに入ります。 Yuriy Zaytsev 2020.02.04 19:48 #176 Aleksey Mavrin: まあ、すぐに間違いを認めたのは賞賛に値しますが;) 4秒の遅れは、ある時点で端末が混乱した 可能性が高く、アンチウィルスがスキャンを開始した場合などに起こるようです。 また、4秒というのは、ログキャッシュでPrintが4秒後に来た という意味であり、OnBookが4秒後に来たという意味ではありません(その時のパソコンの負荷によってはあり得ると思いますが)。 s.w. as Printは、まずキューに入り、そこからログに入ります。 ええ、可能です。 prostotrader 2020.02.04 19:51 #177 Aleksey Mavrin: また、4秒というのは、正確にはログキャッシュでPrintが4秒後に来たということであり、OnBookが4秒後に来たという ことではない(その時のパソコンの負荷によってはあり得ると思うが) s.w. プリントは、まずキューに入り、そこからログに入ります。 そうですね......どうでしょう? 1つのチャートはOnBook、もう1つは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の差は56ms とプリントの差は同じです :) 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 20:07 #178 prostotrader:そうですね、これはどうでしょう?1つのチャートはOnBook、もう1つはOnTickで動作していたOnTickとOnBookの差は56msそして、プリントの違いも同じです :) また、私は眠いので正確にはわからないし、疑問は経験豊富で賢明な人のものである)。 でも、Symbol()が時間を 食うのは初歩的なことだと思います))) so true test - check - I'm too lazy) それは長い球です。 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 20:10 #179 Aleksey Mavrin: また、私は眠いのでよくわからないし、疑問は経験豊かな賢者のものである)。 でも、Symbol()が時間を 食うのは初歩的なことだと思います))) so true test - check - I'm too lazy) それは長い球です。 :), おやすみなさい Yuriy Zaytsev 2020.02.04 20:42 #180 Aleksey Mavrin:また、私は眠いのでよくわからないし、疑問は経験豊富な賢者のものである)。でも、Symbol()が時間を 食うのは初歩的なことだと思います)))so true test - check - I'm too lazy)それは長い球です。 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千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
その議論のついでに、もう一つ実験をしてみました。
つまり、初期化時にマイクロ秒単位で時間を計っているのです。
と、毎回プリントする前に、もう一度時間をドリルで計っています。
理想は、そうであること
しかし、そうなってしまうことが非常に多い(ログエクスポージャー)。
でも、4秒では収まらない...。
ああ、ついにタイミングを合わせる方法がわかったんだ、進歩だ!)
s.s.時間が正確にディスクに書き込まれていないことを確認として、私はあなたに簡単なテストを与えるだろう、テストの操作の間にいくつかの計算を行い、平均7マイクロ秒を取っている。
同時に、マイクロ秒単位の同じ時間で、数十回+αの操作でプリントを出力しており、マイクロ秒ごとにプリントを出力していることがわかる。すべて納得のいくものだと思います。
ap:最初のPrintを2番目のPrintの直前に置くと、デルタはすでに0-1になるので、Printはこの連鎖の中で最も長くなります。
おお、ついにタイミングの取り方がわかったようだ、進歩したものだ!)
どうしたんですか、先生?他にやることないのか?
そこがすべての始まりです
そうでしょう?他にやることないのか?
ここがすべての始まりです
によって追加されました。
また、GetMicrosecondCount()は最大16msの誤差があることをご存知ないでしょうか!:)
マイクロ秒を出す関数が、16ミリ秒まで誤差がある、つまり名前より一桁高い誤差がある、さて、さて)) prufでも確認できますか?
マイクロ秒を出す関数が最大16ミリ秒の誤差、つまり名前とは桁違いの誤差がある、さて、さて))これもプルーフで確認できるでしょうか?
Got it wrong
誤
まあ、すぐに間違いを認めたのは賞賛に値しますが;)
4秒の遅れは、ある時点で端末が混乱した可能性が高く、アンチウィルスがスキャンを開始した時などに起こるようです。 の事例を紹介します。
また、4秒というのは、ログキャッシュでPrintが4秒後になったということで、OnBookが4秒後に来たということではありません(その時のパソコンの負荷によってはあり得ると思いますが)。
s.w. as Printは、まずキューに入り、そこからログに入ります。まあ、すぐに間違いを認めたのは賞賛に値しますが;)
4秒の遅れは、ある時点で端末が混乱した 可能性が高く、アンチウィルスがスキャンを開始した場合などに起こるようです。
また、4秒というのは、ログキャッシュでPrintが4秒後に来た という意味であり、OnBookが4秒後に来たという意味ではありません(その時のパソコンの負荷によってはあり得ると思いますが)。
s.w. as Printは、まずキューに入り、そこからログに入ります。ええ、可能です。
また、4秒というのは、正確にはログキャッシュでPrintが4秒後に来たということであり、OnBookが4秒後に来たという ことではない(その時のパソコンの負荷によってはあり得ると思うが)
s.w. プリントは、まずキューに入り、そこからログに入ります。そうですね......どうでしょう?
1つのチャートはOnBook、もう1つはOnTickで動作していました。
OnTickとOnBookの差は56ms
とプリントの差は同じです :)
そうですね、これはどうでしょう?
1つのチャートはOnBook、もう1つはOnTickで動作していた
OnTickとOnBookの差は56ms
そして、プリントの違いも同じです :)
また、私は眠いので正確にはわからないし、疑問は経験豊富で賢明な人のものである)。
でも、Symbol()が時間を 食うのは初歩的なことだと思います)))
so true test - check - I'm too lazy)
それは長い球です。
また、私は眠いのでよくわからないし、疑問は経験豊かな賢者のものである)。
でも、Symbol()が時間を 食うのは初歩的なことだと思います)))
so true test - check - I'm too lazy)
それは長い球です。
:), おやすみなさい
また、私は眠いのでよくわからないし、疑問は経験豊富な賢者のものである)。
でも、Symbol()が時間を 食うのは初歩的なことだと思います)))
so true test - check - I'm too lazy)
それは長い球です。
また、Symbol()が 時間を食うという懸念を払拭するために、両方のハンドラを等しく「フィード」させることもできます。