IndicatorSetInteger()

 IndicatorSetInteger()関数は、int型のインジケータープロパティの値を設定するために使用します。

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

bool IndicatorSetInteger(
int prop_id,
int prop_value
);

又は

bool IndicatorSetInteger(
int prop_id,
int prop_modifier,
int prop_value
);

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

  • int prop_id
    以下の表に従って、値を設定したいインジケータープロパティを設定します。

    インジケータープロパティ
    説 明
    プロパティの型
    INDICATOR_DIGITS表示されるインジケーターの値の小数点以下の桁数
    int
    INDICATOR_HEIGHTサブウィンドウの高さ
    int
    INDICATOR_LEVELS表示されるレベルラインの数
    int
    INDICATOR_LEVELCOLOR表示されるレベルラインの色
    color
    INDICATOR_LEVELSTYLE表示されるレベルラインの描画スタイル
    ENUM_LINE_STYLE
    INDICATOR_LEVELWIDTH表示されるレベルラインの太さ
    int

    ENUM_LINE_STYLEの値は、以下の表に従って設定します。

    種 類
    定 数
    内 容
    STYLE_SOLID
    実線
    STYLE_DASH
    長音線(― ― ―)
    STYLE_DOT
    短音線(---)
    STYLE_DASHDOT
    長音線と短音線(―-―-)
    STYLE_DASHDOTDOT
    長音線と短音線(―--―--)
  • int prop_modifier
    インジケータープロパティの修飾子を指定します。
    修飾子はレベルプロパティでのみ必要となります。
  • int prop_value
    インジケータープロパティの値を指定します。

戻り値

 IndicatorSetInteger()関数が正常に実行された場合は「true」、そうでない場合は「false」が返されます。

注意点

 レベル番号のナンバリングは、#property命令を使用する場合はから、IndicatorSetInteger()関数を使用する場合はからとなります。

 レベル番号が不正確に設定された場合は、意図したのとは異なった表示がなされます。

具体例

 サブウィンドウにRSI、RSIの値が「20」と「30」の位置に、太さ「2」・「金色」・「実線」のレベルラインを表示させたい場合は、以下のように記述します。


#property strict

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 Aqua

input int RSI_Period = 14;

double RSI[];

int OnInit()
{
  SetIndexBuffer(0,RSI);
  
  SetIndexStyle(0,DRAW_LINE,STYLE_SOLID);
  
  IndicatorSetDouble(INDICATOR_LEVELVALUE,0,20);
  IndicatorSetDouble(INDICATOR_LEVELVALUE,1,30);
  IndicatorSetDouble(INDICATOR_LEVELVALUE,2,40);
  
  IndicatorSetInteger(INDICATOR_LEVELS,2); //3本目のレベルラインは表示されない。
  
  IndicatorSetInteger(INDICATOR_LEVELSTYLE,0,STYLE_SOLID);
  IndicatorSetInteger(INDICATOR_LEVELCOLOR,0,clrGold);
  IndicatorSetInteger(INDICATOR_LEVELWIDTH,0,2);
  
 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[])
{
  int limit = Bars - IndicatorCounted();
  
  for(int i = limit - 1; i >= 0; i--)
     {
       RSI[i] = iRSI(NULL,0,RSI_Period,PRICE_CLOSE,i);
     }
     
  return(rates_total);
}

IndicatorSetInteger

関連ツール

インジケーターつくーる
MQL言語の学習ができ、裁量トレーダーもインジケーター開発が可能に
MQL言語の学習ができ、裁量トレーダーもインジケーター開発が可能に?|?fx-on.com

GogoJungleで購入する

 プログラミングの知識がなくても、ほぼマウスで選ぶだけで独自のインジケーターを作成することができるツールです。

 以下は、「インジケーターつくーる」の紹介動画です。