【MQL4勉強プログラミング】インジケーターの値やグラフを表示させない値を設定する方法

ザフナーラボブログ

SetIndexEmptyValue()関数は、インジケーターをチャートウィンドウに描画させず、また、データウィンドウにも表示させない値を設定するために使用します。

SetIndexEmptyValue()関数は、以下のように定義されています。

void SetIndexEmptyValue(
int index,
double value
);

各引数の意味は、以下のとおりです。

  • int index
    チャートウインドウ」に描画させず、「データウィンドウ」にも表示させたくない値を設定するインジケーターのライン番号(=SetIndexBuffer()関数で指定した「0」~「7」の値)を指定します。
  • double value
    「チャートウィンドウ」に描画させず、「データウィンドウ」にも表示させない値を指定します。標準では「EMPTY_VALUE」です。

なお、SetIndexBuffer()関数の詳細については「こちら」を参照してください。

戻り値

SetIndexEmptyValue()関数はvoid型なので、戻り値はありません。

注意点

第二引数で指定した値は、「チャートウィンドウ」に描画されず、また、「データウィンドウ」にも表示されません。

第二引数の値は、標準では「EMPTY_VALUE」です。

具体例

あるインジケーターの値が「0.0」であれば、インジケーターに関する情報を表示させないようにするためには、以下のように記述します。


#property strict

#property indicator_separate_window

double Up[];
double Down[];

int OnInit()
{
  SetIndexBuffer(0,Up);
  SetIndexBuffer(1,Down);
  
  SetIndexStyle(0,DRAW_ARROW);
  SetIndexArrow(0,217);
  SetIndexStyle(1,DRAW_ARROW);
  SetIndexArrow(1,218);
  
  SetIndexEmptyValue(0,0.0);
  SetIndexEmptyValue(1,0.0);
  
  SetIndexLabel(0,”Up”);
  SetIndexLabel(1,”Down”);
  
  return(INIT_SUCCEEDED);
}