サブウィンドウのレベル線設定 SetLevelStyle 関数

関数

カスタムインジケータ関数

SetLevelStyle 関数

この関数は、サブウィンドウにプロットされるインジケータの水平レベル線 (補助線) のスタイル、線幅、色を設定します。

データ型と構成・戻り値

void SetLevelStyle(①, ②, ③);

戻り値は無し。

引数 [3]

SetLevelStyle関数は 3個の引数で構成されます。


引数名データ型単位初期値説明
draw_styleintレベル線のスタイル。ENUM_LINE_STYLE 列挙値から選択。「EMPTY」の時は幅を変更しません。
line_widthintレベル線の幅。1 (細) ~5 (太) で設定。「EMPTY」の時は幅を変更しません。
clrcolorレベル線の。「CLR_NONE」の時は色を変更しません。

※引数①のスタイルの設定は、引数②の線幅が 1の時のみ有効です。

使用例

SetLevelStyle関数によるレベル線の設定

SetLevelStyle関数を使って、サブウィンドウに表示される水平レベル線 (補助線) のスタイルと線幅、色を設定します。

次のコードはインジケータ用のコードです。インジケータ用コードの作成方法についてはこちらを参考にしてください。

コード

// SetLevelStyle関数によるインジケータのプロパティ値の設定
#property strict
#property indicator_separate_window // サブウィンドウに表示
int OnInit() 
  {
   // インジケータint型のプロパティ
   IndicatorSetInteger(INDICATOR_LEVELS, 3);             // インジケータレベルの数
   IndicatorSetInteger(INDICATOR_LEVELCOLOR, clrYellow); // レベルラインの色
   IndicatorSetInteger(INDICATOR_LEVELSTYLE, 2);         // レベルラインのスタイル
   IndicatorSetInteger(INDICATOR_LEVELWIDTH, 1);         // レベルラインの太さ(pixel単位設定)
   IndicatorSetInteger(INDICATOR_HEIGHT, 150);           // インジケータウィンドウの固定高さ(pixel単位設定)
   
   // インジケータdouble型のプロパティ
   IndicatorSetDouble(INDICATOR_MAXIMUM, 110.0);      // インジケータウィンドウの最大値
   IndicatorSetDouble(INDICATOR_MINIMUM, 0.0);        // インジケータウィンドウの最小値
   IndicatorSetDouble(INDICATOR_LEVELVALUE, 0, 25.0); // レベル値の設定
   IndicatorSetDouble(INDICATOR_LEVELVALUE, 1, 50.0); // レベル値の設定
   IndicatorSetDouble(INDICATOR_LEVELVALUE, 2, 75.0); // レベル値の設定
   
   // インジケータstring型のプロパティ
   IndicatorSetString(INDICATOR_SHORTNAME, "テスト");                // インジケータの略称名
   IndicatorSetString(INDICATOR_LEVELTEXT, 0, "レベル1(index=0)"); // レベルの説明
   IndicatorSetString(INDICATOR_LEVELTEXT, 1, "レベル2(index=1)"); // レベルの説明
   IndicatorSetString(INDICATOR_LEVELTEXT, 2, "レベル3(index=2)"); // レベルの説明

   SetLevelStyle(STYLE_DASH, 1, clrRed);
   
   return(INIT_SUCCEEDED);
  }
  
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   return(rates_total);
  }

インジケータ用コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

SetLevelStyle関数が無い時の状態

SetLevelStyle関数が有る時の状態

タイトルとURLをコピーしました