イベントのタイマーをセット EventSetTimer 関数

関数

イベント操作関数

EventSetTimer 関数

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

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

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

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

データ型と構成・戻り値

bool EventSetTimer(①);

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

引数 [1]

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


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

使用例

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

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

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

コード

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

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

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

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

結果

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