【MQL4定数】インジケータ用ライン定数(ENUM_LINE_STYLE)

【辞書】MQLリファレンス

インジケータ用ライン定数(ENUM_LINE_STYLE)

インジケータ用ライン定数は、SetLevelStyle関数の引数として使用します。

SetLevelStyle関数は、インジケータで描画する線の種類や太さを設定する関数です。

インジケータで描画する線の種類を設定をするために、インジケータ用ライン定数を使うと良いでしょう。

例えば、点線で描画するとか、破線で描画するといったことが設定できます。

 

それぞれ、draw_style引数の入力値として、インジケータ用ライン定数を使うことができます。

 

インジケータ用ライン定数(ENUM_LINE_STYLE)

定数説明
STYLE_SOLID実線
STYLE_DASH破線
STYLE_DOT点線
STYLE_DASHDOT破線と点線
STYLE_DASHDOTDOT破線と点線と点線

 

インジケータ用ライン定数(ENUM_LINE_STYLE)の使い方

主に、SetLevelStyle関数の引数として使用されます。

それぞれ、draw_style引数の入力値として、インジケータ用ライン定数を使うことができます。

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

すると、その定数に対応したラインの種類が設定されます。

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

//SetLevelStyle関数
//点線で描画する
SetLevelStyle(STYLE_DOT, 1, clrYellow);

 

インジケータ用ライン定数を使ったプログラム例

以下は、インジケータ用ライン定数を使って、各種ラインスタイルを設定するサンプルプログラムです。

//+------------------------------------------------------------------+
//| サンプルインジケータ - ライン定数の使用例                          |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 clrRed

double buf[];

//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数                                      |
//+------------------------------------------------------------------+
int init()
{
   SetIndexBuffer(0, buf);
   SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2, clrRed);

   // レベルラインを点線で描画する
   SetLevelValue(0, 70.0);
   SetLevelValue(1, 30.0);
   SetLevelStyle(STYLE_DOT, 1, clrYellow);

   return(0);
}

//+------------------------------------------------------------------+
//| カスタムインジケータ計算関数                                        |
//+------------------------------------------------------------------+
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);
}
//+------------------------------------------------------------------+

上記のプログラムでは、SetLevelStyle関数にSTYLE_DOTを指定して、レベルラインを黄色の点線で描画しています。

また、SetIndexStyle関数でもライン定数を使用でき、STYLE_SOLIDを指定してインジケータラインを実線で描画しています。

 

【補足】インジケータ用ライン定数の列挙型(ENUM_LINE_STYLE)

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

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

以下のように使います。

ENUM_LINE_STYLE lineStyle = STYLE_DOT;

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