EventSetTimer 関数
この関数は、タイマーを秒単位で設定します。EA または インジケータで使用することができます。
通常、この関数はOnInit関数またはクラスコンストラクタから呼び出されます。タイマーからのイベントを処理するには、EAにOnTimer関数が必要です。
EAとインジケータは独自のタイマーで動作し、タイマーからのみイベントを受け取ります。タイマーは作成されていてもEventKillTimer関数で無効になっていない時でも、MQL4プログラムの動作が停止するとすぐに強制的に無効になります。
各プログラムに対して、複数のタイマーを実行することはできません。各MQL4プログラムと各チャートには独自のイベントキューがあり、新しく受信したすべてのイベントがそこに配置されます。タイマーイベントがキューに存在するか、処理中の場合、新しいタイマーイベントはMQL4プログラムのキューに配置されません。
データ型と構成・戻り値
bool EventSetTimer(①);
戻り値は、処理が成功した場合は true、それ以外は falseが返されます。
発生するエラーについては、GetLastError関数で取得することができます。
引数 [1]
EventSetTimer関数は 1個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | seconds | int | - | - | タイマーイベントの発生頻度を設定する秒数。 |
使用例
EventSetTimer関数によるタイマーイベントの発生
EventSetTimer関数を使ってタイマーイベントを発生させます。
イベントの内容は、5秒間隔で現在のローカル時間をエキスパートタブに表示させます。
コード
// EventSetTimer関数によるタイマーイベントの発生
#property strict
void OnInit() {
EventSetTimer(5); // 5秒ごとにタイマーイベントを発生
}
void OnDeinit(const int reason) {
EventKillTimer(); // タイマーイベントを停止
ObjectsDeleteAll();
}
void OnTimer() {
Print("現在のローカル時間:", TimeLocal()); // タイマーイベント
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
![](https://naruhodo-mt4.com/wp-content/uploads/2023/06/P843eventsettimer.png)