mql5言語の特徴、微妙なニュアンスとテクニック - ページ 90

 
アレクセイ・ナヴォイコフ

これは高解像度のwinapiタイマーを使用したバリエーションで、5.6e-13秒の精度が得られます。

何を言ってるんだ?その周波数は1786GHzであることが判明した。そして、これが赤外線の周波数です。:))
そこは周波数とカウンターがごっちゃになってるだけだろ。
実際は3.8e-07秒です。それは、約1/3マイクロ秒の時間です。MQLと有意な差はない


 
ニコライ・セムコ

何を言ってるんだ?その結果、1786GHzであることが判明した。そして、それが赤外線の周波数です。:))
そこは周波数とカウンターがごっちゃになってるだけだろ。
実際は3.8e-07秒です。それは、約1/3マイクロ秒の時間です。MQLと大差ない。

はい、その通りです、間違えました。

 
アレクセイ・ナヴォイコフ

そうです、ごっちゃになっています)

これは本当の意味での解決策ですが。
確認したところ、同社のカウンターは現地時間の変更に反応しない。
そのため、マイクロ秒が必要で、長時間使用する場合は、Kernel32.dllを使用してください。
ありがとうございました。

結局はバグなんですね、MQの場合は簡単に直せます。
 

サービスデスクにまとめて要望を出す必要がある。そうしないと意味がないからです。 コンパイラのバグに対応しなくなったくらいですから。要望はたくさんあるのですが、すべて無駄になってしまいます。

同じように、ミリ秒のTimeLocalとTimeCurrent(特に2番目は自分で実装するのは問題があるので)を作ってもらうようお願いしています。

 
Konstantin:

があり、例えばここでGUIをアンロードするのに使うことができます。

チャート全体のCanvasクラス・オブジェクト、テーブルのデータ、クラスタ・データ、レベルなどの描画、OnTimerを最大にしてGUIをそこに置くと(私はいつもそのようにしています)、タイムラグなしで1つのチャートが私のVPSを約45-60%ロードします、250の遅延を行うと、すべてが最小に正常化され、グラフィックはボタンに明確に応答します、システムはロードされないのです

ここで取り上げたGetMicrosecondCount() とOnTimer()にはどのような関係があるのでしょうか?
 
アレクセイ・ナヴォイコフ

これは高解像度のwinapiタイマーを使用したバリエーションで、3.8e-07 秒の精度が得られます。

マイクロ秒はこうして数える
 
Renat Fatkhullin:
マイクロ秒はこうして数える。

Renatさん、ローカル時間の GetMicrosecondCount()へのバインディングを修正できませんか?
この機能を知らない人には、最も予測できない結果になる可能性があるからです。




int OnInit()
  {
   EventSetMillisecondTimer(1000);
   return(INIT_SUCCEEDED);
  }
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   return(rates_total);
  }
void OnTimer()
  {
    Comment("Программа уже работает: "+(string)(round(double(GetMicrosecondCount())/1000000.0))+" сек");
  }
 
いや、時間間隔を正確に計るための相対的なタイマーであって、天文学的な時間ではない。
 
レナト・ファットフーリン
いや、正確な時間間隔の相対的なタイマーであって、天文学的な時間ではないんです。

ありがとうございます、知ります。
参考にさせていただきました。

 
Renat Fatkhullin:
これがマイクロ秒の数え方です。

GetTickCountも 同じように計算してはどうでしょうか。 そうすると、15msの解像度の問題がなくなり、何らかの問題が発生することになります。