사용자 지정 지표 속성

사용자 지정 지표에 사용할 수 있는 지표 버퍼 수는 제한이 없습니다. 그러나 SetIndexBuffer() 함수를 사용하여 지표 버퍼로 지정된 각 배열에 대해 저장할 데이터 유형을 지정해야 합니다. 이 값은 ENUM_INDEXBUFFER_TYPE 열거값 중 하나일 수 있습니다.

ENUM_INDEXBUFFER_TYPE

ID

설명

INDICATOR_DATA

그릴 데이터

INDICATOR_COLOR_INDEX

색상

INDICATOR_CALCULATIONS

중간 계산을 위한 보조 버퍼

사용자 지정 지표에는 편리하게 표시할 수 있는 많은 설정이 있습니다. 이러한 설정은 IndicatorSetDouble(), IndicatorSetInteger()IndicatorSetString() 함수를 사용하여 해당 지표 특성을 할당하여 수행됩니다. 지표 속성 식별자가 ENUM_CUSTOMIND_PROPERTY 열거에 나열됩니다.

ENUM_CUSTOMIND_PROPERTY_INTEGER

ID

설명

속성 유형

INDICATOR_DIGITS

지시자 값 도면의 정확도

int

INDICATOR_HEIGHT

지표 창의 고정 높이 (전처리기 명령 #property indicator_height)

int

INDICATOR_LEVELS

지표 창의 레벨의 수

int

INDICATOR_LEVELCOLOR

레벨 선의 색상

색상                      제어자 = 레벨 숫자

INDICATOR_LEVELSTYLE

레벨 선의 스타일

ENUM_LINE_STYLE  제어자 = 레벨 숫자

INDICATOR_LEVELWIDTH

레벨 선의 두께

int                         제어자 = 레벨 숫자

INDICATOR_FIXED_MINIMUM

지표 창의 최소값 수정. 속성은 오직 IndicatorSetInteger() 함수로만 작성 가능합니다

bool

INDICATOR_FIXED_MAXIMUM

지표 창의 최대값 수정. 속성은 오직 IndicatorSetInteger() 함수로만 작성 가능합니다

bool

ENUM_CUSTOMIND_PROPERTY_DOUBLE

ID

설명

속성 유형

INDICATOR_MINIMUM

지표 창의 최소값

double

INDICATOR_MAXIMUM

지표 창의 최대값

double

INDICATOR_LEVELVALUE

레벨 값

double                    제어자 = 레벨 숫자

ENUM_CUSTOMIND_PROPERTY_STRING

ID

설명

속성 유형

INDICATOR_SHORTNAME

short 지표 이름

string

INDICATOR_LEVELTEXT

레벨 설명

string                    제어자 = 레벨 숫자

예:

//--- 지표 설정
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots   2
#property indicator_type1   DRAW_LINE
#property indicator_type2   DRAW_LINE
#property indicator_color1  clrLightSeaGreen
#property indicator_color2  clrRed
//--- 입력 매개변수
extern int KPeriod=5;
extern int DPeriod=3;
extern int Slowing=3;
//--- 지표 버퍼
double MainBuffer[];
double SignalBuffer[];
double HighesBuffer[];
double LowesBuffer[];
//+------------------------------------------------------------------+
//| 사용자 지정 지표 초기화 함수                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- 지표 버퍼 매핑
   SetIndexBuffer(0,MainBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,SignalBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,HighesBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(3,LowesBuffer,INDICATOR_CALCULATIONS);
//--- 정확성 설정
   IndicatorSetInteger(INDICATOR_DIGITS,2);
//--- 레벨 설정
   IndicatorSetInteger(INDICATOR_LEVELS,2);
   IndicatorSetDouble(INDICATOR_LEVELVALUE,0,20);
   IndicatorSetDouble(INDICATOR_LEVELVALUE,1,80);
//--- 하위 창의 최대값 및 최소값 설정
   IndicatorSetDouble(INDICATOR_MINIMUM,0);
   IndicatorSetDouble(INDICATOR_MAXIMUM,100);
//--- 인덱스를 그릴 첫 번째 막대를 설정
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,KPeriod+Slowing-2);
   PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,KPeriod+Slowing+DPeriod);
//--- 두 번째 선의 STYLE_DOT 설정
   PlotIndexSetInteger(1,PLOT_LINE_STYLE,STYLE_DOT);
//--- DataWindow 및 지표 하위 창 레이블
   IndicatorSetString(INDICATOR_SHORTNAME,"Stoch("+KPeriod+","+DPeriod+","+Slowing+")");
   PlotIndexSetString(0,PLOT_LABEL,"Main");
   PlotIndexSetString(1,PLOT_LABEL,"Signal");
//--- 도면 선을 빈 값으로 설정
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0);
   PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0);
//--- 초기화 완료
  }