イベントのタイマーをミリ秒単位でセット EventSetMillisecondTimer 関数

関数

イベント操作関数

EventSetMillisecondTimer 関数

この関数は、タイマーをミリ秒単位 (1000ミリ秒 = 1秒) で設定します。EA または インジケータで使用することができます。

数秒間隔のタイマーの場合は、EventSetTimer関数を使用してください。 

通常、この関数はOnInit関数またはクラスコンストラクタから呼び出されます。タイマーからのイベントを処理するには、EA または インジケータにOnTimer関数が必要です。

EAとインジケータは独自のタイマーで動作し、タイマーからのみイベントを受け取ります。タイマーは作成されていてもEventKillTimer関数で無効になっていない時でも、MQL4プログラムの動作が停止するとすぐに強制的に無効になります。

各プログラムに対して、複数のタイマーを実行することはできません。各MQL4プログラムと各チャートには独自のイベントキューがあり、新しく受信したすべてのイベントがそこに配置されます。タイマーイベントがキューに存在するか、処理中の場合、新しいタイマーイベントはMQL4プログラムのキューに配置されません。

データ型と構成・戻り値

bool EventSetMillisecondTimer(①);

戻り値は、処理が成功した場合は true、それ以外は falseが返されます。
発生するエラーについては、GetLastError関数で取得することができます。

引数 [1]

EventSetMillisecondTimer関数は 1個の引数で構成されます。


引数名データ型単位初期値説明
millisecondsintタイマーイベントの発生頻度を設定するミリ秒数。
1000ミリ秒 = 1秒

使用例

EventSetMillisecondTimer関数によるタイマーイベントの発生

EventSetMillisecondTimer関数を使ってタイマーイベントを発生させます。

イベントの内容は、2.5秒間隔で現在のローカル時間をエキスパートタブに表示させます。

コード

// EventSetMillisecondTimer関数によるタイマーイベントの発生
#property strict
void OnInit() {
   EventSetMillisecondTimer(5);                // 2.5秒(2500ミリ秒)ごとにタイマーイベントを発生
}

void OnDeinit(const int reason) {
   EventKillTimer();                           // タイマーイベントを停止
   ObjectsDeleteAll();
}

void OnTimer() {
   Print("現在のローカル時間:", TimeLocal()); // タイマーイベント
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

タイトルとURLをコピーしました