【MQL4定数】インジケータの設定の定数:Integer型(ENUM_CUSTOMIND_PROPERTY_INTEGER)

【辞書】MQLリファレンス

インジケータの設定の定数:Integer型

インジケータの設定の定数は、インジケータにInteger型の値を入力するときに使用されます。

主に、IndicatorSetInteger関数です。

Get関数はありません。

 

インジケータの設定の定数:Integer型(ENUM_CUSTOMIND_PROPERTY_INTEGER)

定数説明
INDICATOR_DIGITSインジケータの精度(小数点○桁)を設定
INDICATOR_HEIGHTサブウィンドウの高さを設定
INDICATOR_LEVELSサブウィンドウのレベルラインを設定
INDICATOR_LEVELCOLORレベルラインの色を設定
INDICATOR_LEVELSTYLEレベルラインの種類を設定
INDICATOR_LEVELWIDTHレベルラインの幅を設定

 

インジケータの設定の定数:Integer型の使い方

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

上記の定数を入力しましょう。

すると、その定数に対応した設定値が、インジケータに反映されます。

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

  //IndicatorSetInteger関数
  //インジケータの精度を小数点第一位に設定
   bool  indicatorSetInteger = IndicatorSetInteger(INDICATOR_DIGITS, 1);

 

返り値はbool型です。

成功すればtrue、失敗すればfalseが返ってきます。

 

サンプルプログラム

以下は、インジケータの設定の定数(Integer型)を使ったサンプルプログラムです。

サブウィンドウに表示するカスタムインジケータで、レベルラインや精度などを設定しています。

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Blue

double buf[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexBuffer(0, buf);
   SetIndexStyle(0, DRAW_LINE);

   // インジケータの精度を小数点第2位に設定
   bool result1 = IndicatorSetInteger(INDICATOR_DIGITS, 2);
   if(result1)
      Print("INDICATOR_DIGITS の設定に成功しました");
   else
      Print("INDICATOR_DIGITS の設定に失敗しました");

   // サブウィンドウの高さを100ピクセルに設定
   bool result2 = IndicatorSetInteger(INDICATOR_HEIGHT, 100);
   if(result2)
      Print("INDICATOR_HEIGHT の設定に成功しました");
   else
      Print("INDICATOR_HEIGHT の設定に失敗しました");

   // レベルラインの本数を2本に設定
   bool result3 = IndicatorSetInteger(INDICATOR_LEVELS, 2);
   if(result3)
      Print("INDICATOR_LEVELS の設定に成功しました");
   else
      Print("INDICATOR_LEVELS の設定に失敗しました");

   // レベルラインの色を設定(0番目を赤、1番目を緑)
   IndicatorSetInteger(INDICATOR_LEVELCOLOR, 0, clrRed);
   IndicatorSetInteger(INDICATOR_LEVELCOLOR, 1, clrGreen);

   // レベルラインのスタイルを設定(0番目を破線、1番目を点線)
   IndicatorSetInteger(INDICATOR_LEVELSTYLE, 0, STYLE_DASH);
   IndicatorSetInteger(INDICATOR_LEVELSTYLE, 1, STYLE_DOT);

   // レベルラインの幅を設定
   IndicatorSetInteger(INDICATOR_LEVELWIDTH, 0, 1);
   IndicatorSetInteger(INDICATOR_LEVELWIDTH, 1, 1);

   // レベルラインの値を設定
   IndicatorSetDouble(INDICATOR_LEVELVALUE, 0, 70.0);
   IndicatorSetDouble(INDICATOR_LEVELVALUE, 1, 30.0);

   return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars = IndicatorCounted();
   int limit = Bars - counted_bars - 1;

   for(int i = limit; i >= 0; i--)
     {
      // RSIの値をバッファに格納(サンプルとして使用)
      buf[i] = iRSI(NULL, 0, 14, PRICE_CLOSE, i);
     }

   return(0);
  }

 

このサンプルでは、RSIをサブウィンドウに表示し、以下の設定を行っています。

INDICATOR_DIGITS:小数点第2位まで表示するよう精度を設定しています。

INDICATOR_HEIGHT:サブウィンドウの高さを100ピクセルに設定しています。

INDICATOR_LEVELS:レベルラインを2本設定しています。

INDICATOR_LEVELCOLOR:1本目のレベルラインを赤、2本目を緑に設定しています。

INDICATOR_LEVELSTYLE:1本目を破線(STYLE_DASH)、2本目を点線(STYLE_DOT)に設定しています。

INDICATOR_LEVELWIDTH:レベルラインの幅をそれぞれ1に設定しています。

 

【補足】インジケータの設定の定数:Integer型の列挙型(ENUM_CUSTOMIND_PROPERTY_INTEGER)

インジケータの設定の定数は、ENUM_CUSTOMIND_PROPERTY_INTEGER​という列挙型に含まれています。

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

以下のように使います。

ENUM_CUSTOMIND_PROPERTY_INTEGER customindPropertyInteger = INDICATOR_DIGITS;

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