MARKET
MT4ツールを、数字で作る。— Team REI|平日の朝に「相場分析」を更新しています|

OnDeinit ― 外れる直前に呼ばれる、後片付け処理|MQL4/MQL5リファレンス

MQLリファレンス›関数イベントハンドラOnDeinit
(‘both’, ‘MQL4 / MQL5 両対応’)イベントハンドラ後片付け

OnDeinit外れる直前に呼ばれる、後片付け処理

EA・インジケーターがチャートから外れる直前に呼ばれる。タイマーの停止・自分で描いたオブジェクトの削除など、後片付けをここに書く。

1書式

void OnDeinit(
   const int reason   // 外れた理由
);

書式はMQL4・MQL5で同じ。MQL4は同じ理由をUninitializeReason()でも取得できる。

2引数

引数 内容
reason 外れた理由。REASON_REMOVE(手動で外した)・REASON_CHARTCLOSE(チャートを閉じた)・REASON_PARAMETERS(パラメータ変更)等

3戻り値

戻り値は無し(void)。

4使用例

int OnInit() { EventSetTimer(60); return(INIT_SUCCEEDED); }
void OnTick() {}

void OnDeinit(const int reason)
{
   EventKillTimer();
   ObjectsDeleteAll(0, "mypanel_");
   Print("終了理由: ", reason);
}

MetaEditorでコンパイル0エラー・0警告を確認済み。

6よくある罠

⚠ 実務で踏んだもの
  • reasonがREASON_PARAMETERSのときは、パラメータ変更による再起動であり、この直後にまたOnInitから始まる。「完全に終了する」場合と混同すると、保持しておきたい状態を誤って消してしまう。
  • OnDeinitの中で新しく描画オブジェクトを作っても、ほぼ意味が無い。このあとすぐチャートから消える(あるいは既に消えかけている)タイミングのため。

7関連する関数

REI-FX&BO OFFICIAL LINE

ツールのダウンロードパスワードは
公式LINEで、すぐ届きます。

友だち追加の自動返信でパスワードをお送りします。
新しいツールの公開や、検証でわかったことも先にお知らせします。

全ツールのパスワード新作ツールをいち早く配信は月1〜2回だけ
LINEで友だち追加 パスワードを受け取る ›

追加後にひとことメッセージをいただけると、ツールづくりの参考にします。