【MQL4定数】初期化関数の戻り値の定数(ENUM_INIT_RETCODE)

【辞書】MQLリファレンス

初期化関数の戻り値の定数(ENUM_INIT_RETCODE)

初期化関数の戻り値の定数(ENUM_INIT_RETCODE)は、OnInit関数の戻り値として使われる関数です。

初期化が成功したのか、失敗したのかを戻すことができます。

初期化関数の戻り値の定数(ENUM_INIT_RETCODE)

定数説明
INIT_SUCCEEDED初期化成功
INIT_FAILED初期化失敗
INIT_PARAMETERS_INCORRECTパラメータに異常値が代入されている
INIT_AGENT_NOT_SUITABLEメモリ不足などの問題が発生

初期化関数の戻り値の定数の使い方

主に、OnInit関数で使用されます。

OnInit関数の戻り値として記述します。

システムで自動的に戻る定数ではなく、開発者が戻す定数なので、戻す定数を間違えないように注意しましょう。

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

//異常値を検出するためのパラメータ
input int ma_period=10;

int OnInit()
  {


   //パラメータが異常かどうかをチェック
   if(ma_period <= 0)
     {
      //パラメータが異常なので、INIT_PARAMETERS_INCORRECT定数を戻す
      return (INIT_PARAMETERS_INCORRECT);
     }


   //メモリに異常がないかチェック
   int memory = TerminalInfoInteger(TERMINAL_MEMORY_TOTAL);
   if(memory < 2000)
     {
      //メモリが異常なので、INIT_AGENT_NOT_SUITABLE定数を戻す
      return (INIT_AGENT_NOT_SUITABLE);
     }


   //その他異常がないかチェック
   double ma = iMA(Symbol(), PERIOD_CURRENT, 14, 0, MODE_SMA, PRICE_CLOSE, 0);
   if(ma <= 0)
     {
      //値が異常なので、INIT_FAILED定数を戻す
      return(INIT_FAILED);
     }


   //正常なので、INIT_SUCCEEDED定数を戻す
   return(INIT_SUCCEEDED);
  }

ほとんどの場合、成功(INIT_SUCCEEDED)と異常(INIT_FAILED)の定数を使えば良いので、この2つを覚えておくと良いでしょう。

【補足】初期化関数の戻り値の定数の列挙型(ENUM_INIT_RETCODE)

初期化関数の戻り値の定数は、ENUM_INIT_RETCODEという列挙型に含まれています。

列挙型は、定数群をひとまとめにしたものです。

以下のように使います。

ENUM_INIT_RETCODE initRetcode = INIT_SUCCEEDED;

上記のようにプログラムすると、initRetcode変数に INIT_SUCCEEDEDの値が代入されます。