インジケータのdouble (実数) 型プロパティ値の設定 IndicatorSetDouble 関数

関数

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

IndicatorSetDouble 関数

この関数は、対応するインジケータの double (実数) 型のプロパティ値を設定します。

データ型と構成・戻り値

この関数には 2つの型があります。

bool IndicatorSetDouble(①, ③);
bool IndicatorSetDouble(①, ②, ③);

戻り値は、処理が成功した場合は true、それ以外は falseが返されます。

引数 [2~3]

IndicatorSetDouble関数は  2~3個の引数で構成されます。


引数名データ型単位初期値説明
prop_idintインジケータプロパティの識別子。
ENUM_CUSTOMIND_PROPERTY_DOUBLE 列挙値から選択。
prop_modifierint指定したプロパティの修飾子。修飾子が必要なのはレベルプロパティのみです。レベル線 (補助線) のインデックス値 (0~) で指定します。
prop_valuedouble設定するプロパティの値。

※②引数の番号付けは 0から始まりますが、「#property」を使ってコードの最初に設定する場合の番号付けは 1から始まりますのでご注意ください。

使用例

IndicatorSetDouble関数によるインジケータのプロパティ値の設定

IndicatorSetDouble関数を使って、表示インジケータのプロパティ値を設定します。

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

コード

// IndicatorSetDouble関数によるインジケータのプロパティ値の設定
#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)"); // レベルの説明
   
   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);
  }

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

結果

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