インジケータの設定の定数:Integer型
インジケータの設定の定数は、インジケータにInteger型の値を入力するときに使用されます。
主に、IndicatorSetInteger関数です。
Get関数はありません。
インジケータの設定の定数:Integer型(ENUM_CUSTOMIND_PROPERTY_INTEGER)
| 定数 | 説明 |
| INDICATOR_DIGITS | インジケータの精度(小数点○桁)を設定 |
| INDICATOR_HEIGHT | サブウィンドウの高さを設定 |
| INDICATOR_LEVELS | サブウィンドウのレベルラインを設定 |
| INDICATOR_LEVELCOLOR | レベルラインの色を設定 |
| INDICATOR_LEVELSTYLE | レベルラインの種類を設定 |
| INDICATOR_LEVELWIDTH | レベルラインの幅を設定 |
インジケータの設定の定数:Integer型の使い方
主に、IndicatorSetInteger関数で使用されます。
上記の定数を入力しましょう。
すると、その定数に対応した設定値が、インジケータに反映されます。
例えば、以下のように使用します。
//IndicatorSetInteger関数
//インジケータの精度を小数点第一位に設定
bool indicatorSetInteger = IndicatorSetInteger(INDICATOR_DIGITS, 1);
返り値はbool型です。
成功すればtrue、失敗すればfalseが返ってきます。
サンプルプログラム
以下は、インジケータの設定の定数(Integer型)を使ったサンプルプログラムです。
サブウィンドウに表示するカスタムインジケータで、レベルラインや精度などを設定しています。
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Blue
double buf[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
SetIndexBuffer(0, buf);
SetIndexStyle(0, DRAW_LINE);
// インジケータの精度を小数点第2位に設定
bool result1 = IndicatorSetInteger(INDICATOR_DIGITS, 2);
if(result1)
Print("INDICATOR_DIGITS の設定に成功しました");
else
Print("INDICATOR_DIGITS の設定に失敗しました");
// サブウィンドウの高さを100ピクセルに設定
bool result2 = IndicatorSetInteger(INDICATOR_HEIGHT, 100);
if(result2)
Print("INDICATOR_HEIGHT の設定に成功しました");
else
Print("INDICATOR_HEIGHT の設定に失敗しました");
// レベルラインの本数を2本に設定
bool result3 = IndicatorSetInteger(INDICATOR_LEVELS, 2);
if(result3)
Print("INDICATOR_LEVELS の設定に成功しました");
else
Print("INDICATOR_LEVELS の設定に失敗しました");
// レベルラインの色を設定(0番目を赤、1番目を緑)
IndicatorSetInteger(INDICATOR_LEVELCOLOR, 0, clrRed);
IndicatorSetInteger(INDICATOR_LEVELCOLOR, 1, clrGreen);
// レベルラインのスタイルを設定(0番目を破線、1番目を点線)
IndicatorSetInteger(INDICATOR_LEVELSTYLE, 0, STYLE_DASH);
IndicatorSetInteger(INDICATOR_LEVELSTYLE, 1, STYLE_DOT);
// レベルラインの幅を設定
IndicatorSetInteger(INDICATOR_LEVELWIDTH, 0, 1);
IndicatorSetInteger(INDICATOR_LEVELWIDTH, 1, 1);
// レベルラインの値を設定
IndicatorSetDouble(INDICATOR_LEVELVALUE, 0, 70.0);
IndicatorSetDouble(INDICATOR_LEVELVALUE, 1, 30.0);
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
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);
}
このサンプルでは、RSIをサブウィンドウに表示し、以下の設定を行っています。
INDICATOR_DIGITS:小数点第2位まで表示するよう精度を設定しています。
INDICATOR_HEIGHT:サブウィンドウの高さを100ピクセルに設定しています。
INDICATOR_LEVELS:レベルラインを2本設定しています。
INDICATOR_LEVELCOLOR:1本目のレベルラインを赤、2本目を緑に設定しています。
INDICATOR_LEVELSTYLE:1本目を破線(STYLE_DASH)、2本目を点線(STYLE_DOT)に設定しています。
INDICATOR_LEVELWIDTH:レベルラインの幅をそれぞれ1に設定しています。
【補足】インジケータの設定の定数:Integer型の列挙型(ENUM_CUSTOMIND_PROPERTY_INTEGER)
インジケータの設定の定数は、ENUM_CUSTOMIND_PROPERTY_INTEGERという列挙型に含まれています。
列挙型は、定数群をひとまとめにしたものです。
以下のように使います。
ENUM_CUSTOMIND_PROPERTY_INTEGER customindPropertyInteger = INDICATOR_DIGITS;上記のようにプログラムすると、customindPropertyInteger変数に INDICATOR_DIGITSの数値が代入されます。





