Uninitialization reason の種類

EAやインジケーターを利用していると、様々タイミングでOnInit関数やOnDeinit関数が実行されます。
OnInit関数、OnDeinit関数が実行された理由は項目ごとに番号が割り振られており、公式ドキュメントでは、 Uninitialization reason code と表現されています。
Uninitialization reason code 調べることでなぜOnInit、OnDeinitが実行されたかを知ることができます。


Uninitialization reason code の確認


Uninitialization reason code はUninitializeReason関数を実行することで知ることが可能です。

int UninitializeReason();

OnDeinit関数内では、引数として渡されたreasonの値が Uninitialization reason code となっております。

void OnDeinit(const int reason){

}


Uninitialization reason code の意味


Uninitialization reason code は0~9の10種類存在します。

REASON_PROGRAM


EAがExpertRemove関数を実行したことでEAが終了となる場合のコード。
値は0

REASON_REMOVE


プログラムがチャートから削除された場合のコード。
値は1

REASON_RECOMPILE


実行中のプログラムに対してメタエディターなどで修正を加え、コンパイルを行った場合のコード。
値は2

REASON_CHARTCHANGE


プログラム実行中のチャートの通貨ペアまたは時間足が変更となった場合のコード。
値は3

REASON_CHARTCLOSE


プログラム実行中のチャートが閉じられた場合のコード。
値は4

REASON_PARAMETERS


プログラム実行中にパラメータを変更した場合のコード。
値は5

REASON_ACCOUNT


アカウントの切り替えなどで取引サーバーへ再接続が行われた場合のコード。
値は6

REASON_TEMPLATE


プログラム実行中のチャートに対してテンプレートの適用が行われた場合のコード。
値は7

REASON_INITFAILED


OnInitの結果が0またはINIT_SUCCEEDED以外だった場合のコード。
値は8

REASON_CLOSE


MT4が終了された場合のコード。
値は9
TwitterでシェアFacebookでシェアGoogle+でシェアはてなブックマークに追加

TOPへ