ミリ秒単位のタイムスタンプを提供する新しいmql4.... - ページ 2

 
ミリ秒やナノ秒が非常に重要 で、これらの刻みがインターネット経由で入ってくる場合は注意が必要です(ネットワークバインドIO)。何か悪いことを企んでいるのでない限り、ナノ秒の時間分解能はおそらく過剰な要求でしょう
 
angevoyageur:
mql5には、そのような情報はありません。しかし、ミリ秒単位で使用できるTimer イベントがあります。

現在の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_ミリ秒でジャンプしているようです。その結果、レガシーシステムにおけるコンピュータサイエンスの制限のようなものがあることがわかりました。もし、誰かがその理由を説明してくれるなら、私はうれしいです[ 私のたわごとにもかかわらず]。mql5も同じような制限を受けているのでしょうか?さて、もう1つのテストは、すぐそこです :)

 

MQL開発者がどのWidows API関数をカプセル化したかを知ることは、常に努力する価値があります。

この場合、答えは簡単で、GetTickCountを 使用しています。

GetTickCount 関数の分解能は システムタイマーの分解能に制限されており、通常10ミリ秒から16ミリ秒 の範囲になります。

 

以前ググってみたところ、よくわからないのですが、GetTickCount()はWindowsOSからそのまま出てきた関数の ようです。これは正確を期すためのものではなく、ミリ秒レベルの正確さが必要なものには使うべきではないようです(ミリ秒単位で値を返すとはいえ)。

私はスリープとティックカウントの取得をテストしましたが、常にエラーが発生します。それがスリープによるものかGTCによるものかを判断するのは難しいですが、私の推測では両方だと思います。

 
Ovo:

MQL開発者がどのWidows API関数をカプセル化したかを知ることは、常に努力する価値があります。

この場合、答えは簡単で、GetTickCountを 使用しています。

GetTickCount 関数の分解能は システムタイマーの分解能に制限されており、通常10ミリ秒から16ミリ秒 の範囲になります。

ありがとうございました。
 
ubzen:

現在のmql4相当は以下のようなものです。

GTCをテストしたところ、16_ミリ秒でジャンプしているようです。その結果、レガシーシステムにおけるコンピュータサイエンスの制限のようなものがあることがわかりました。もし、誰かがその理由を説明してくれるなら、私はうれしいです[ 私のたわごとにもかかわらず]。mql5も同じような制限を受けているのでしょうか?さて、もう1つのテストは、すぐにやってきます :)

16ミリ秒の制限は、ハードウェアの制限から来るものですが、より良い精度のタイマーを得るための他の方法があります。
mql5でもGetTickCount()には同じ制限がありますが、上で説明したように、他にも使える機能(タイマーイベント)があります。

 
Ovo:

MQL開発者がどのWidows API関数をカプセル化したかを知ることは、常に努力する価値があります。

この場合、答えは簡単で、GetTickCountを 使用しています。

GetTickCount 関数の分解能は システムタイマーの分解能に制限されており、通常10ミリ秒から16ミリ秒 の範囲になります。


そうなのですが、それが何を意味するのかを知るのは難しいのです。もし解像度が16msなら、0,16,32,48...などの値が表示されると思うのですが。

0から16の間のものは見たことがありませんが、16程度の値はすべて見ています。

 
angevoyageur:

16ミリ秒の制限はハードウェアの制限から来るものですが、より精度の高いタイマーを得るには他の方法があります。
mql5でもGetTickCount()に同じ制限がありますが、上で説明したように、他にも使える機能(タイマーイベント)があります。

了解です :)
 
RaptorUK:
VolumeはTick countの略で、取引量やロットとは関係ない。


情報ありがとうございます。なんで今まで気づかなかったんだろう。この場合、かなり無駄な(あるいは誤解を招く)情報のようです。

私は本当にいくつかのブローカーから本物のレベル2ボリュームデータを探す必要があります。幸いなことに、私のECNブローカーは、実際のボリュームでレベル2取引データを提供しています。