[MQL] OnDeinit()関数のreason code一覧
OnDeinit()
関数の引数reason
は種類が多いので覚えるのが結構大変です。
私は覚えるのをあきらめて一覧にすることにしました。
OnDeinit()関数とは
OnDeinit()
関数とは、EAやインジケーターの終了時に呼び出される関数です。
終了時に行いたい処理がある場合に記述します。よくある使用例としては、インジの終了時にオブジェクトを削除するなどです。
OnDeinit()
関数の定義は下記の通り。
void OnDeinit(const int reason){
//ここに終了時に実行したい処理を記述する
}
引数reason
にはプログラム終了の理由(きっかけ、原因)を示す定数が入ります。reason
はプログラムの終了理由に応じて自動で入力されるため、自分で入力することはありません。
OnDeinit()関数のreason一覧
下記表はOnDeinit()
関数のreason
一覧です。英語はMQL4のマニュアルの文章そのまま。日本語は私のメモ。
reason | 値 | 説明 |
---|---|---|
REASON_PROGRAM | 0 | Expert Advisor terminated its operation by calling the ExpertRemove() function 【解釈】ExpertRemove()関数によってEAを終了した 【注意】ExpertRemove()関数はEAでのみ機能するため、本reasonはEAのみで使う |
REASON_REMOVE | 1 | Program has been deleted from the chart 【解釈】プログラムがチャートから外された 【注意】ChartIndicatorDelete()関数でインジが外された場合もこのreasonになる。 |
REASON_RECOMPILE | 2 | Program has been recompiled 【解釈】プログラムがコンパイルされた |
REASON_CHARTCHANGE | 3 | Symbol or chart period has been changed 【解釈】チャートのシンボルまたは時間足が変更された |
REASON_CHARTCLOSE | 4 | Chart has been closed 【解釈】チャートが閉じられた 【注意】組表示の切り替えもこのreasonになる |
REASON_PARAMETERS | 5 | Input parameters have been changed by a user 【解釈】ユーザーが設定パラメータの値を変更した |
REASON_ACCOUNT | 6 | Another account has been activated or reconnection to the trade server has occurred due to changes in the account settings 【解釈】アカウントが変更されたまたはアカウント設定の変更によりサーバーに再接続した |
REASON_TEMPLATE | 7 | A new template has been applied 【解釈】定型チャートが適用された |
REASON_INITFAILED | 8 | This value means that OnInit() handler has returned a nonzero value 【解釈】初期化処理(OnInit関数)が失敗した |
REASON_CLOSE | 9 | Terminal has been closed 【解釈】MT4を終了した |
まとめ
reason codeをしっかり区別して使い分けられるようになると、終了時の処理を場合分けできるので便利です。
コメント
この記事へのコメント(0 件)