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
検索結果がありません。 |
検索結果がありません。 |