EAとインジケータのタイマーイベント生成間隔(1msec単位)をクライアントターミナルへ指示します。
EventSetMillisecondTimer
関数書式
bool EventSetMillisecondTimer(
int milliseconds // 時間(分解能:1msec)
);
- 引数
引数名 | 初期値 | I/O | 詳細 |
milliseconds | - | In | タイマーイベントの発生間隔を1msec単位で指定します。 |
- 戻り値
成功した場合はtrueを返します。
失敗した場合はfalseを返します。
エラーコードの確認はGetLastError()関数を使用します。
- その他
この関数は、高分解能タイマーが必要な場合の為に使用します。
タイマーイベントが1秒間に2回以上発生させたい場合に使用しますが、
数秒周期のタイマーで十分の場合は、従来のEventSetTimer()関数を使用します。
通常、この関数はOnInit()関数で呼び出します。
タイマーイベントを処理するにはOnTimer()関数が必要です。
各EAと各インジケータは、自身のタイマーからのタイマーイベントを受信します。
作成されたタイマーがEventKillTimer()関数によって無効にされていない場合は、
MQL4アプリケーションシャットダウン時にタイマーは強制的に無効にされます。
各プログラムでタイマーは1つだけ起動する事が出来ます。
各MQL4プログラムアプリケーションとチャートは、
新しく受信した全てのイベントを配置する独自のキューを持っています。
キューが既にタイマーイベントを含んでいるか、またはタイマーイベントの処理中の場合は、
新しいタイマーイベントはキューに追加されません。
- サンプルソース
void OnInit() {
EventSetMillisecondTimer(1000);//1秒ごとにOnTimer関数を起動する
}