ライブラリ: 正確なタイマー - ページ 2

 
Maxim Kuznetsov:

上記はすべて異なるタイマーである。ロードされたマシンでは、その違いは大きく、自然なものとなる。

ビビリオ・ライブラリーでは、相違はない。

 
Maxim Kuznetsov:

上記はすべて異なるタイマーである。負荷の高いマシンでは、その差は大きく、自然なものとなる

この矛盾は何だろう?

このライブラリは、このような "自然な "矛盾を取り除くために書かれた。

 
Andrey Khatimlianskii:

何が矛盾しているんだ?

ライブラリーは、こうした "自然な "矛盾を取り除くために書かれたものだ。

両者は違うものを測っている。
 
Maxim Kuznetsov:
これらは異なるものを測定する。

ある種のティッカーシンボルを基準にしてみよう。例えば、腕時計。今から1時間後にあなたのコンピューターに表示される時刻が(ティッカーによって)ベンチマークとどれだけ違うか見てみましょう。もちろん、違いはあるだろう。

しかし、その違いは比較することでわかる。秒タイマーや100ミリ秒タイマーを使ってみよう。そして、基準タイマーの3600「秒」とタイマーの3600「秒」の後、基準との差がどうなるかを見てください。

 
Maxim Kuznetsov:
彼らは違うものを測っている。

何を測定するかに違いはあるのだろうか?

Xミリ秒ごとにアクションを実行するというタスクがあるが、通常のタイマーでは実装が特殊なためできない。

ライブラリを使えば、このギャップを埋めることができる。

 
Andrey Khatimlianskii:

何を測ろうが違いはないだろう?

Xミリ秒ごとにアクションを実行するというタスクがあるが、普通のタイマーでは実装が特殊なのでできない。

ライブラリを使えば、このギャップを埋めることができる。

おいおい)まず問題を作り出し、それを英雄的に解決する。そんな問題はない。

 
Rashid Umarov:

さあ :)まず問題を作り出し、それを英雄的に解決する。問題はない。

まあ、問題は


 
アップデート後、利用可能になります。

Frame-режим

最適化結果のフレームを収集するモードの Expert Advisor は、Expert Advisorの通常動作の 以下の標準 イベントを無視します:InitDeinitNewTickTradeTradeTransactionBookEventTimerChartEvent だけが 有効なイベントです。

ただし、本ライブラリでは、この EA 操作モードでもタイマーを有効にすることができます。

#define  ACCURATETIMER_FRAME_MODE // フレームモードで動作するアドバイザーのタイマーを動作させる。

OnChartEvent(空でも可)はソースEAに記述する必要があり、対応するフレームの脆弱 性はOnTimerで伝播し始めることに注意してください。

このような Expert Advisor の例を添付します。

// フレームモードでのEAタイマー動作のデモ

#define  ACCURATETIMER_FRAME_MODE // フレームモードで動作するアドバイザーのタイマーを動作させる。 
#include <AccurateTimer.mqh>     // 標準タイマーの精度を上げる

sinput uint Range = 1; // 最適化のための入力パラメータ

#define  SETRANGE(A, START, STEP, END) ParameterSetRange(#A, true, A, START, STEP, END)

void OnTesterInit() { SETRANGE(Range, 0, 1, Range); }

void OnTesterDeinit() { EventSetTimer(1); } // 最適化終了時にタイマーを設定する。

// フレームの脆弱性に注意!-https://www.mql5.com/ru/forum/170952/page71#comment_6626688
void OnChartEvent( const int id, const long& lparam, const double& dparam, const string& sparam ) {}
void OnTimer()
{
  static const bool IsFrame = MQLInfoInteger(MQL_FRAME_MODE);
  
  if (IsFrame)
    Print("Hello World!");
}
 

fxsaber:

フレームモード

最適化結果フレーム収集モードのExpert Advisor は 、通常の Expert Advisor 作業の 次の標準イベントを無視 します: InitDeinitNewTickTrade、TradeTransactionBookEventTimerChartEventだけが動作するイベントとして残ります

これは部分的に 正しい表現です。議論済みです

 
Dennis Kirichenko:

部分的には 正しい。議論されてきたことだ

偏見には気づかなかった。私が言った通りだ。