初期化関数の戻り値の定数(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の値が代入されます。