EventSetMillisecondTimer 関数
この関数は、タイマーをミリ秒単位 (1000ミリ秒 = 1秒) で設定します。EA または インジケータで使用することができます。
数秒間隔のタイマーの場合は、EventSetTimer関数を使用してください。
通常、この関数はOnInit関数またはクラスコンストラクタから呼び出されます。タイマーからのイベントを処理するには、EA または インジケータにOnTimer関数が必要です。
EAとインジケータは独自のタイマーで動作し、タイマーからのみイベントを受け取ります。タイマーは作成されていてもEventKillTimer関数で無効になっていない時でも、MQL4プログラムの動作が停止するとすぐに強制的に無効になります。
各プログラムに対して、複数のタイマーを実行することはできません。各MQL4プログラムと各チャートには独自のイベントキューがあり、新しく受信したすべてのイベントがそこに配置されます。タイマーイベントがキューに存在するか、処理中の場合、新しいタイマーイベントはMQL4プログラムのキューに配置されません。
データ型と構成・戻り値
bool EventSetMillisecondTimer(①);
戻り値は、処理が成功した場合は true、それ以外は falseが返されます。
発生するエラーについては、GetLastError関数で取得することができます。
引数 [1]
EventSetMillisecondTimer関数は 1個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | milliseconds | int | - | - | タイマーイベントの発生頻度を設定するミリ秒数。 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()); // タイマーイベント
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)