スポンサーリンク
ホーム » MQL5リファレンス » 【MQL5】EventKillTimer関数について
a

【MQL5】EventKillTimer関数について

MQL5リファレンス
スポンサーリンク
スポンサーリンク

EventKillTimer関数の働き・役割

EventKillTimer関数は既に設定されているタイマーを停止する役割を持っています。

EventKillTimer関数を使用することで、EventSetTimer関数等で生成したタイマーイベント(=プログラムが定期的に特定の時間間隔で動作を行うために発生するイベント)の発生を停止することができます。

特に、プログラムが終了する際には、設定されたタイマーが自動的に破棄される前に、EventKillTimer関数を呼び出してタイマーを明示的に停止することが推奨されています​

従って、EventKillTimer関数は殆どの場合EventSetTimer関数及びOnTimer関数とワンセットで使われます

EventSetTimer関数についての詳細は↓の記事をご参照ください

OnTimer関数についての詳細は↓の記事をご参照ください

スポンサーリンク

EventKillTimer関数の引数について

EventKillTimer関数引数を取らず、呼び出すだけで関連付けられたタイマーイベントを停止します​

スポンサーリンク

関数の戻り値について

EventKillTimer関数には戻り値がありません(void型

したがって、EventKillTimer関数を呼び出した結果として何かを受け取ることはありません

スポンサーリンク

EventKillTimer関数を使う際の注意点

EventKillTimer関数は、EventSetTimer関数またはEventSetMillisecondTimer関数によって設定されたタイマーが存在する場合にのみ使用するべきです。

MQL5において、EventSetTimer関数EventSetMillisecondTimer関数を用いてタイマーが設定されると、指定した間隔でOnTimerイベントが発生し続けます。

これにより、例えば定期的に市場データをチェックするといった操作が可能になります。EventKillTimer関数はこれらのタイマーを停止させる役割を持つため、タイマーが設定されていない状態でEventKillTimer関数を呼び出しても何の効果もありませんし、エラーが発生する可能性もあります。

また、EventKillTimer関数はプログラムのデストラクタやOnDeinit関数で呼び出すことが一般的です。

プログラムが終了する際には、それまでに使用していたリソースを適切に解放することが一般的なプログラミングの慣習となっています。

MQL5のコンテキストで言えば、OnInit関数で設定したタイマーは、プログラムがもはや必要としないか、終了する際にOnDeinit関数で停止させる必要があります。

これにより、不要なタイマーがシステム資源を消費し続けることを防ぎます。

いずれにしても、EventKillTimer関数を呼び出すタイミングは、タイマーを不要とする状況やプログラムの終了時など、明確にしておく必要があります

スポンサーリンク

EventKillTimer関数を使ったサンプルコード

以下は、EventKillTimer関数を使用してタイマーを停止する簡単な例です。

// OnInit関数でタイマーを1分間隔で設定します
int OnInit() {
    Comment("");  // コメントをクリア
    EventSetTimer(60);  // 60秒ごとにタイマーイベントを生成
    return(INIT_SUCCEEDED);
}

// OnTimer関数でタイマーイベントが発生するたびに呼ばれます
void OnTimer() {
    datetime serverTime = TimeCurrent();  // サーバーの現在時刻を取得

    // サーバー時刻をコンソールに出力
    Print("サーバーの現在時刻: ", TimeToString(serverTime, TIME_DATE|TIME_MINUTES));
}

// ファイルがチャートから削除される時に実行される関数
void OnDeinit(const int reason) {
    EventKillTimer();  // タイマーを停止します

    // チャートから削除されたことをユーザーに通知
    if (reason == REASON_REMOVE) {
        Comment("このエキスパートアドバイザーはチャートから削除されました。");
    }
}
スポンサーリンク

サンプルコードに使われた関数や文法要素の解説

OnTimer関数についての詳細は↓の記事をご参照ください

  • TimeCurrent関数: サーバーの最後に知られている時刻を取得します。

TimeCurrent関数についての詳細は↓の記事をご参照ください

TimeToString関数についての詳細は↓の記事をご参照ください

OnDeinit関数についての詳細は↓の記事をご参照ください

EventKillTimer関数:今回解説した、タイマーイベントを停止する関数です。

Comment関数:チャートの左上にテキストを表示するために使用します。この例では、エキスパートアドバイザーがチャートから削除されたときにメッセージを表示しています。

Comment関数についての詳細は↓の記事をご参照ください

<参照>

EventSetMillisecondTimer関数/OnTimer関数/GetLastError関数/OnInit関数/コンストラクタ/EventSetTimer関数/TimeCurrent関数/OnDeinit関数

※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる

<MQL5でEAを作ろう講座>

をメインコンテンツとして展開しています。

【言語基礎編】

【中級実際にEAを作ろう編】

【発展編・MT5用EAを作る工程をカスタマイズしていく】

第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。

関連用語リンク集

MQL5FX関連の用語リンク集です。
当サイトでは、元々わからない言葉や概念に出くわしたら、すぐその言葉に立ち戻れるよう、かなり細かく内部リンクを張り巡らせており、多様な用語を網羅しています。

興味のある内容に直接アクセスし、疑問の解決にお役立ていただければと思います。

スポンサーリンク
MQL5リファレンス
スポンサーリンク
シェアする
エムキューエルをフォローする
スポンサーリンク
【超入門】MQL5 でEAを作ろうブログ
タイトルとURLをコピーしました