(‘mt4’, ‘MQL4’)実行制御要書き換え(MQL5)
UninitializeReasonEAが外れた理由を調べる(MQL4)
OnDeinitが呼ばれた理由(チャートを閉じた・パラメータを変えた・端末を終了した等)を調べる。理由によって後始末の処理を変えたいときに使う。
1書式
int UninitializeReason();
MQL5ではOnDeinit(const int reason)の引数として直接渡される形に変わる。
2引数
無し。
3戻り値
REASON_REMOVE・REASON_CHARTCLOSE・REASON_PARAMETERS等の定数。
4使用例
void OnDeinit(const int reason)
{
if(UninitializeReason() == REASON_PARAMETERS)
Print("パラメータ変更による再起動。保存済み設定は維持する");
else
Print("それ以外の理由で終了: ", reason);
}
MetaEditorでコンパイル0エラー・0警告を確認済み。
5MQL4→MQL5の違い
🔁 差分
MQL5ではUninitializeReason()という関数自体が無く、OnDeinit(const int reason)の引数reasonに直接同じ値が渡される。呼び出し方が関数からパラメータへ変わるだけで、値の意味は同じ。