【MQL4定数】アンイニシャル定数(REASON_○○)

【辞書】MQLリファレンス

アンイニシャル定数(REASON_○○)

アンイニシャル定数は、プログラムが終了した理由を定数にしたものです。

エラーコード定数と似ていますが、アンイニシャル定数はプログラムが正常に終了したときに使用されます。

作成したプログラムがうまくロードされないとき、デバッグするために使用すると良いでしょう。

特に、エラーが出ない場合に、アンイニシャル定数を確認して見ることをオススメします。

アンイニシャル定数を取得するには、UninitializeReason関数を使用します。

UninitializeReason関数を使用することで、最近のアンイニシャル定数を取得することができます。

また、アンイニシャル定数は、OnDeinit関数の引数としても使われています。

OnDeinit関数は、プログラムが自動的に使う関数なので、特に意識する必要はありませんが知っておくと良いでしょう。

アンイニシャル定数(REASON_○○)

定数数値説明
REASON_PROGRAM0ExpertRemove関数で終了した
REASON_REMOVE1プログラムがチャートから削除された
REASON_RECOMPILE2プログラムが再コンパイルされた
REASON_CHARTCHANGE3通貨ペアまたは時間軸が変更された
REASON_CHARTCLOSE4チャートが閉じられた
REASON_PARAMETERS5ユーザーによって入力パラメータが変更された
REASON_ACCOUNT6トレードサーバーへの再接続が発生した
または別アカウントに変更された
REASON_TEMPLATE7新しいテンプレートが適用された
REASON_INITFAILED8OnInit関数が0以外の値を返した
REASON_CLOSE9ターミナルが閉じられた

アンイニシャル定数(REASON_○○)の使い方

アンイニシャル定数は、_UninitReasonという変数に格納されます。

_UninitReason変数は、アンイニシャルされたときに自動的にアンイニシャル定数が格納されます。

最近のアンイニシャル変数を取得したい場合は、UninitializeReason関数を使用します。

UninitializeReason関数を使うことにより、_UninitReason変数の値を取得することができます。

例えば、以下のように使用します。

void OnStart() {
    ExpertRemove();
    Print(UninitializeReason());
}

 

上記のように記述することで、以下のような出力を得ることができます。

0