개체가 첨부된 차트 모서리

차트 모서리를 설정할 수 있는 여러 그래픽 개체가 있으며, 이 개체에 상대적인 좌표는 픽셀 단위로 지정됩니다. 다음은 개체의 유형입니다 (괄호 안에 개체 유형 식별자가 지정됨):

  • 레이블 (OBJ_LABEL);
  • 버튼 (OBJ_BUTTON);
  • 비트맵 레이블 (OBJ_BITMAP_LABEL);
  • 편집 (OBJ_EDIT).
  • 직사각형 레이블 (OBJ_RECTANGLE_LABEL);

개체

ID

X/Y

너비/높이

날짜/가격

OBJPROP_CORNER

OBJPROP_ANCHOR

OBJPROP_ANGLE

텍스트

OBJ_TEXT

레이블

OBJ_LABEL

예(읽기 전용)

버튼

OBJ_BUTTON

비트맵

OBJ_BITMAP

예(읽기 전용)

비트맵 레이블

OBJ_BITMAP_LABEL

예(읽기 전용)

편집

OBJ_EDIT

직사각형 레이블

OBJ_RECTANGLE_LABEL

표에서 사용되는 명칭은 다음과 같습니다:

  • X/Y – 차트 모서리에 상대적인 픽셀로 지정된 고정점 좌표;
  • 너비/높이 – 개체의 너비와 높이를 가집니다. "읽기 전용"의 경우 개체가 차트에 렌더링된 후에만 너비와 높이 값이 계산됩니다;
  • 날짜/가격 – 고정점 좌표는 날짜 및 가격 값을 사용하여 지정됩니다;
  • OBJPROP_CORNER – 고정점 좌표가 지정되는 차트 모서리를 정의합니다. ENUM_BASE_CORNER 열거의 4개 값 중 하나일 수 있습니다;
  • OBJPROP_ANCHOR – 개체 자체에 고정점을 정의하며, ENUM_ANCHOR_POINT 열거의 9개 값 중 하나일 수 있습니다. 좌표는 바로 이 지점에 선택한 차트 모서리까지 지정됩니다;
  • OBJPROP_ANGLE – 개체 회전 각도를 시계 반대 방향으로 지정합니다.

X 및 Y 좌표를 픽셀 단위로 측정할 차트 모서리를 지정하려면 다음에서 ObjectSetInteger(chartID, name, OBJPROP_CORNER, chart_corner)를 사용합니다:

  • chartID - 차트 식별자;
  • name –  그래픽 개체의 이름;
  • OBJPROP_CORNER – 바인딩 모서리를 지정하는 속성 ID;
  • chart_corner – 원하는 차트 코너는 ENUM_BASE_CORNER 열거값 중 하나일 수 있습니다.

ENUM_BASE_CORNER

ID

설명

CORNER_LEFT_UPPER

좌표 중심은 차트의 좌측 상단 모서리에 있습니다

CORNER_LEFT_LOWER

좌표 중심은 차트의 좌측 하단 모서리에 있습니다

CORNER_RIGHT_LOWER

좌표 중심은 차트의 우측 하단 모서리에 있습니다

CORNER_RIGHT_UPPE

좌표 중심은 차트의 우측 상단 모서리에 있습니다

예:

void CreateLabel(long   chart_id,
                 string name,
                 int    chart_corner,
                 int    anchor_point,
                 string text_label,
                 int    x_ord,
                 int    y_ord)
  {
//---
   if(ObjectCreate(chart_id,name,OBJ_LABEL,0,0,0))
     {
      ObjectSetInteger(chart_id,name,OBJPROP_CORNER,chart_corner);
      ObjectSetInteger(chart_id,name,OBJPROP_ANCHOR,anchor_point);
      ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,x_ord);
      ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,y_ord);
      ObjectSetString(chart_id,name,OBJPROP_TEXT,text_label);
     }
   else
      Print("개체를 생성하는데 실패 OBJ_LABEL ",name,", Error code = "GetLastError());
  }
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int height=(int)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0);
   int width=(int)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0);
   string arrows[4]={"LEFT_UPPER","RIGHT_UPPER","RIGHT_LOWER","LEFT_LOWER"};
   CreateLabel(0,arrows[0],CORNER_LEFT_UPPER,ANCHOR_LEFT_UPPER,arrows[0],50,50);
   CreateLabel(0,arrows[1],CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,arrows[1],50,50);
   CreateLabel(0,arrows[2],CORNER_RIGHT_LOWER,ANCHOR_RIGHT_LOWER,arrows[2],50,50);
   CreateLabel(0,arrows[3],CORNER_LEFT_LOWER,ANCHOR_LEFT_LOWER,arrows[3],50,50);
  }