インジケータ用ライン定数(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の数値が代入されます。





