IndicatorSetString()

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

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

bool IndicatorSetString(
int prop_id,
string prop_value
);

又は

bool IndicatorSetString(
int prop_id,
int prop_modifier,
string prop_value
);

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

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

    インジケータープロパティ
    説 明
    プロパティの型
    INDICATOR_SHORTNAMEインジケーターの名前
    string
    INDICATOR_LEVELTEXTレベルラインの説明
    string
    修飾子=レベル番号
  • int prop_modifier
    インジケータープロパティの修飾子を指定します。
    修飾子はレベルプロパティでのみ必要となります。
  • string prop_value
    インジケータープロパティの値を指定します。

戻り値

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

注意点

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

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

具体例

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


#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,40);
  IndicatorSetDouble(INDICATOR_LEVELVALUE,1,30);
  IndicatorSetDouble(INDICATOR_LEVELVALUE,2,20);
  
  IndicatorSetInteger(INDICATOR_LEVELS,2);
  
  IndicatorSetInteger(INDICATOR_LEVELSTYLE,0,STYLE_SOLID);
  IndicatorSetInteger(INDICATOR_LEVELCOLOR,0,clrGold);
  IndicatorSetInteger(INDICATOR_LEVELWIDTH,0,1);
  
  IndicatorSetString(INDICATOR_LEVELTEXT,0,"Level 1");
  IndicatorSetString(INDICATOR_LEVELTEXT,1,"Level 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);
}

IndicatorSetString

関連ツール

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

GogoJungleで購入する

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

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