アンイニシャル定数(REASON_○○)
アンイニシャル定数は、プログラムが終了した理由を定数にしたものです。
エラーコード定数と似ていますが、アンイニシャル定数はプログラムが正常に終了したときに使用されます。
作成したプログラムがうまくロードされないとき、デバッグするために使用すると良いでしょう。
特に、エラーが出ない場合に、アンイニシャル定数を確認して見ることをオススメします。
アンイニシャル定数を取得するには、UninitializeReason関数を使用します。
UninitializeReason関数を使用することで、最近のアンイニシャル定数を取得することができます。
また、アンイニシャル定数は、OnDeinit関数の引数としても使われています。
OnDeinit関数は、プログラムが自動的に使う関数なので、特に意識する必要はありませんが知っておくと良いでしょう。
アンイニシャル定数(REASON_○○)
定数 | 数値 | 説明 |
REASON_PROGRAM | 0 | ExpertRemove関数で終了した |
REASON_REMOVE | 1 | プログラムがチャートから削除された |
REASON_RECOMPILE | 2 | プログラムが再コンパイルされた |
REASON_CHARTCHANGE | 3 | 通貨ペアまたは時間軸が変更された |
REASON_CHARTCLOSE | 4 | チャートが閉じられた |
REASON_PARAMETERS | 5 | ユーザーによって入力パラメータが変更された |
REASON_ACCOUNT | 6 | トレードサーバーへの再接続が発生した または別アカウントに変更された |
REASON_TEMPLATE | 7 | 新しいテンプレートが適用された |
REASON_INITFAILED | 8 | OnInit関数が0以外の値を返した |
REASON_CLOSE | 9 | ターミナルが閉じられた |
アンイニシャル定数(REASON_○○)の使い方
アンイニシャル定数は、_UninitReasonという変数に格納されます。
_UninitReason変数は、アンイニシャルされたときに自動的にアンイニシャル定数が格納されます。
最近のアンイニシャル変数を取得したい場合は、UninitializeReason関数を使用します。
UninitializeReason関数を使うことにより、_UninitReason変数の値を取得することができます。
例えば、以下のように使用します。
void OnStart() {
ExpertRemove();
Print(UninitializeReason());
}
上記のように記述することで、以下のような出力を得ることができます。
0