MQL5 リファレンスイベント操作EventSetMillisecondTimer 

EventSetMillisecondTimer

この関数はクライアント端末にこのエキスパートアドバイザーまたは指標のためのタイマー イベントは1秒未満の間隔で生成されるべきだと示します。

bool  EventSetMillisecondTimer(
  int  milliseconds      // ミリ秒数
  );

パラメータ

milliseconds

[in]  タイマーイベントの頻度を定義するミリ秒数

戻り値

実行成功の場合は true、それ以外の場合は falseエラーコードを受け取るには GetLastError() 関数が呼ばれるべきです。

注意事項

この機能は、高分解能タイマーが必要な場合のために設計されています。言い換えると、タイマーイベントは1秒に1回よりも頻繁に受信する必要があります。1秒以上の時間軸を持つ従来のタイマーが充分である場合 EventSetTimer() が使用されます。

ストラテジーテスターでは、最小で1000ミリ秒の間隔が使用されます。一般的に、タイマー期間が減少する際にはタイマーイベントのハンドラがより頻繁に呼び出されるようにテスト時間が増加します。リアルタイムモードで操作している場合、タイマーイベントは、ハードウェアの制約のために10〜16ミリ秒に1回以下で生成されます。

通常、この関数は OnInit() 関数またはクラスコンストラクタで呼ばれるべきです。タイマーからのイベントを処理するには、エキスパートアドバイザーまたは指標は OnTimer() 関数を持つべきです。

それぞれのエキスパートアドバイザーと指標は独自のタイマーを操作しそのタイマーのみからイベントを受信します。MQL5 プログラムが停止した場合、作成されて EventKillTimer() 関数で無効にされていないタイマーは強制的に破壊されます。

1 つのプログラムでは 1 つのタイマーのみが起動出来ます。各MQL5アプリケーションとチャートは、新たに到着したイベントが配置される独自のイベントキューを持っています。キューにすでにタイマーイベントがある、またはこのイベントが処理段階にある場合、新しいタイマーイベントは MQL5 アプリケーションキューには追加されません。