그리기 스타일

사용자 지정 지표를 만들 때 기본 차트 창 또는 차트 하위 창에 표시되는 18가지 그래핑 플로팅 유형 중 하나를 지정할 수 있습니다. ENUM_DRAW_TYPE 열거에 지정됩니다.

하나의 사용자 지정 지표에서 모든지표 빌딩/도면 유형을 사용할 수 있습니다. 각 구성 유형에는 그리기에 필요한 데이터를 저장하기 위한 1~5 개의 글로벌 배열 사양이 필요합니다. 이러한 데이터 배열은 SetIndexBuffer() 함수를 사용하여 지표 버퍼로 바인딩되어야 합니다. 각 버퍼에 대해 ENUM_INDEXBUFFER_TYPE의 데이터 유형을 지정해야 합니다.

그리기 스타일에 따라 1~4개의 값 버퍼 (INDICATOR_DATA로 표시됨)가 필요할 수 있습니다. 스타일에 동적 색상 교체를 허용하는 경우(모든 COLOR가 포함됨), 하나의 색상 버퍼가 더 필요합니다(표시돈 유형 INDICATOR_COLOR_INDEX). 색상 버퍼는 항상 스타일에 해당하는 값 버퍼 뒤에 바인딩됩니다.

ENUM_DRAW_TYPE

ID

설명

Data buffers

Color buffers

DRAW_NONE

Not drawn

1

0

DRAW_LINE

1

0

DRAW_SECTION

섹션

1

0

DRAW_HISTOGRAM

0선으로부터의 히스토그램

1

0

DRAW_HISTOGRAM2

두 지표 버퍼의 히스토그램

2

0

DRAW_ARROW

화살표 그리기

1

0

DRAW_ZIGZAG

스타일 지그재그로 막대에서 수직 단면 허용

2

0

DRAW_FILLING

두 수준 사이의 색상 채우기

2

0

DRAW_BARS

일련의 막대로 표시

4

0

DRAW_CANDLES

일련의 촛대로 표시

4

0

DRAW_COLOR_LINE

다중 색상 선

1

1

DRAW_COLOR_SECTION

다중 색상 섹션

1

1

DRAW_COLOR_HISTOGRAM

0선의 다중 색상 히스토그램

1

1

DRAW_COLOR_HISTOGRAM2

두 지표 버퍼의 다중 색상 히스토그램

2

1

DRAW_COLOR_ARROW

다중 색상 화살표 그리기

1

1

DRAW_COLOR_ZIGZAG

다중 색상 지그재그

2

1

DRAW_COLOR_BARS

다중 색상 막대

4

1

DRAW_COLOR_CANDLES

다중 색상 캔들스틱

4

1

 

ENUM_PLOT_PROPERTY에 나열된 선택한 그리기 유형 식별자의 화면표시를 세분화하기 위해 사용됩니다.

다음 함수의 경우: PlotIndexSetInteger()PlotIndexGetInteger()

ENUM_PLOT_PROPERTY_INTEGER

ID

설명

속성 유형

PLOT_ARROW

스타일 DRAW_ARROW에 대한 화살표

uchar

PLOT_ARROW_SHIFT

스타일 DRAW_ARROW에 대한 화살표의 수직 이동

int

PLOT_DRAW_BEGIN

DataWindow에서 그려지지 않은 초기 막대 수 및 값

int

PLOT_DRAW_TYPE

그래픽 구성 유형

ENUM_DRAW_TYPE

PLOT_SHOW_DATA

DataWindow에 구성 값 표시 기호

bool

PLOT_SHIFT

막대의 시간 축을 따라 표시된 지표 이동

int

PLOT_LINE_STYLE

선 그리기 스타일

ENUM_LINE_STYLE

PLOT_LINE_WIDTH

그리기 선 굵기

int

PLOT_COLOR_INDEXES

색상의 숫자

int

PLOT_LINE_COLOR

그리기 색상을 포함하는 버퍼의 인덱스

color       제어자 = 색상 인덱스 수

 

다음 함수의 경우: PlotIndexSetDouble()

ENUM_PLOT_PROPERTY_DOUBLE

ID

설명

속성 유형

PLOT_EMPTY_VALUE

그리기가 없는 빈 플롯 값

double

다음 함수의 경우: PlotIndexSetString()

ENUM_PLOT_PROPERTY_STRING

ID

설명

속성 유형

PLOT_LABEL

DataWindow에 표시할 지표 그래픽 시리즈의 이름. 표시할 여러 지표 버퍼가 필요한 복잡한 그래픽 스타일로 작업할 경우 ","를 구분 기호로 사용하여 각 버퍼의 이름을 지정할 수 있습니다. 샘플코드가 DRAW_CANDLES에 표시됩니다

string

사용자 지정 지표에서 선을 그리는 데 5가지 스타일을 사용할 수 있습니다. 선 굵기 0 또는 1에 대해서만 유효합니다.

ENUM_LINE_STYLE

ID

설명

STYLE_SOLID

실선

STYLE_DASH

파선

STYLE_DOT

점선

STYLE_DASHDOT

일점 쇄선

STYLE_DASHDOTDOT

이점 쇄선

 

선 그리기 스타일 및 도면 유형을 설정하려면 PlotIndexSetInteger() 함수를 사용합니다. 피보나치 확장의 경우 ObjectSetInteger() 함수를 사용하여 레벨의 두께 및 그리기 스타일을 표시할 수 있습니다.

예:

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//--- 지표 버퍼
double         MABuffer[];
//+------------------------------------------------------------------+
//| 사용자 지정 지표 초기화 함수                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- 배열을 인덱스가 0인 지표 버퍼에 바인딩합니다.
   SetIndexBuffer(0,MABuffer,INDICATOR_DATA);
//--- 선 그리기 설정
   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
//--- 선 스타일 설정
   PlotIndexSetInteger(0,PLOT_LINE_STYLE,STYLE_DOT);
//--- 선 색상 설정
   PlotIndexSetInteger(0,PLOT_LINE_COLOR,clrRed);
//--- 선 굵기 설정
   PlotIndexSetInteger(0,PLOT_LINE_WIDTH,1);
//--- 선 레이블 설정
   PlotIndexSetString(0,PLOT_LABEL,"이동 평균");
//---
  }
//+------------------------------------------------------------------+
//| 사용자 지정 지표 반복 함수                              |
//+------------------------------------------------------------------+
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[])
  {
//--- 
   for(int i=prev_calculated;i<rates_total;i++)
     {
      MABuffer[i]=close[i];
     }
//--- 다음 번 호출에 대해 prev_calculated 값을 반환
   return(rates_total);
  }