개체 속성

그래픽 개체는 개체 유형에 따라 다양한 속성을 가질 수 있습니다. 개체의 속성 값은 그래픽 개체 작업을 위한 함수(해당)에 의해 설정되고 수신됩니다.

기술적 분석에 사용되는 모든 개체는 추세선, 채널, 피보나치 도구 등 시간과 가격 좌표에 바인딩됩니다. 그러나 차트의 항상 표시되는 부분(기본 차트 창 또는 지표 하위 창)에 바인딩된 사용자 인터페이스를 개선하기 위한 여러 보조 개체가 있습니다.

개체

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 – 개체 회전 각도를 시계 반대 방향으로 지정합니다.

차트를 따라 개체를 만들고 이동하기 위한 ObjectCreate()ObjectMove() 작업과 그래픽 개체의 속성을 정의하는 기능은 실제로 차트에 명령을 보내는 데 사용됩니다. 이러한 기능이 성공적으로 실행되면 명령이 차트 이벤트의 공통 대기열에 포함됩니다. 차트의 이벤트 대기열을 처리할 때 그래픽 개체의 특성에 대한 시각적 변화가 구현됩니다.

따라서 이러한 기능을 호출한 후 그래픽 개체의 즉각적인 시각적 업데이트를 기대하지 마십시오. 일반적으로 차트의 그래픽 개체는 새 시세 도착, 차트 창 크기 조정 등 변경 이벤트 이후에 터미널에 의해 자동으로 업데이트됩니다. ChartRedraw() 기능을 사용하여 그래픽 개체를 강제로 업데이트합니다.

ObjectSetInteger()ObjectGetInteger() 함수의 경우

ENUM_OBJECT_PROPERTY_INTEGER

식별자

설명

속성 유형

OBJPROP_COLOR

색상

색상

OBJPROP_STYLE

스타일

ENUM_LINE_STYLE

OBJPROP_WIDTH

선 굵기

int

OBJPROP_BACK

배경에 개체

bool

OBJPROP_ZORDER

차트를 클릭하는 이벤트를 수신하기 위한 그래픽 개체의 우선 순위 (CHARTEVENT_CLICK). 개체를 만들 때 기본 0 값이 설정되며, 필요한 경우 우선 순위를 높일 수 있습니다. 개체를 서로 맨 위에 배치하면 우선 순위가 가장 높은 개체 중 하나만 CHARTEVENT_CLICK 이벤트를 받게 됩니다.

long

OBJPROP_FILL

개체 색상 채우기 (for OBJ_RECTANGLE, OBJ_TRIANGLE, OBJ_ELLIPSE, OBJ_CHANNEL, OBJ_STDDEVCHANNEL, OBJ_REGRESSION)

bool

OBJPROP_HIDDEN

터미널 메뉴 "차트" - "개체" - "개체 목록"에서 개체 목록에 트래픽 개체 이름을 표시하는 것을 금지합니다. True 값을 사용하면 목록에서 개체를 숨길 수 있습니다. 기본적으로 true는 일정 이벤트, 거래 기록을 표시하는 개체 및 MQL5 프로그램에서 생성된 개체로 설정됩니다. 이러한 그래픽 개체를 보고 해당 속성에 액세스하려면 "개체 목록" 창에서 "전체" 버튼을 클릭하십시오.

bool

OBJPROP_SELECTED

개체가 선택되었습니다

bool

OBJPROP_READONLY

편집 개체에서 텍스트를 편집할 수 있는 기능

bool

OBJPROP_TYPE

개체 유형

ENUM_OBJECT   r/o

OBJPROP_TIME

시간 좌표

datetime   수정자=고정점 수

OBJPROP_SELECTABLE

개체 가용성

bool

OBJPROP_CREATETIME

개체 생성 시간

datetime    r/o

OBJPROP_LEVELS

레벨 수

int

OBJPROP_LEVELCOLOR

선 레벨 색상

색상   수정자=레벨 숫자

OBJPROP_LEVELSTYLE

선 레벨 스타일

ENUM_LINE_STYLE 수정자=레벨 숫자

OBJPROP_LEVELWIDTH

선 레벨 굵기

int      수정자=레벨 수

OBJPROP_ALIGN

"편집" 개체의 수평 텍스트 정렬(OBJ_EDIT)

ENUM_ALIGN_MODE

OBJPROP_FONTSIZE

글꼴 크기

int

OBJPROP_RAY_LEFT

선 좌측으로 향함

bool

OBJPROP_RAY_RIGHT

선 우측으로 향함

bool

OBJPROP_RAY

수직선이 차트의 모든 창을 통과합니다

bool

OBJPROP_ELLIPSE

피보나치 아크 개체의 전체 타원 표시 (OBJ_FIBOARC)

bool

OBJPROP_ARROWCODE

화살표 개체의 화살표 코드

uchar

OBJPROP_TIMEFRAMES

시간 프레임에 개체 가시성

플래그의 세트 flags

OBJPROP_ANCHOR

그래픽 객체의 고정점 위치

ENUM_ARROW_ANCHOR (OBJ_ARROW 경우),

ENUM_ANCHOR_POINT (OBJ_LABEL, OBJ_BITMAP_LABEL 및 OBJ_TEXT 경우)

OBJPROP_XDISTANCE

바인딩 모서리 X 축을 따라 픽셀 단위로 표시되는 거리 (참고 참조)

int

OBJPROP_YDISTANCE

바인딩 모서리에서 Y 측을 따라 픽셀 단위로 표시되는 거리 (참고 참조)

int

OBJPROP_DIRECTION

갠 개체 추세

ENUM_GANN_DIRECTION

OBJPROP_DEGREE

엘리엇 파동 표시 레벨

ENUM_ELLIOT_WAVE_DEGREE

OBJPROP_DRAWLINES

엘리엇 웨이브 표시 선 표시

bool

OBJPROP_STATE

버튼 상태 (누름/해제)

bool

OBJPROP_CHART_ID

"차트" 개체의 ID (OBJ_CHART). 차트 작업에 설명된 함수를 사용하여 일반 차트와 같이 이 개체의 속성을 사용할 수 있지만 일부 예외가 있습니다.

long   r/o

OBJPROP_XSIZE

X 축을 따라 있는 개체의 너비(픽셀). OBJ_LABEL (읽기 전용), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL 개체에 대해 지정됨.

int

OBJPROP_YSIZE

Y 축을 따라 있는 개체의 높이(픽셀) OBJ_LABEL (읽기 전용), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL 개체에 대해 지정됨.

int

OBJPROP_XOFFSET

그래픽 개체 "비트맵 레이블" 및 "비트맵"에서 직사각형 표시 영역 좌측 상단 모서리의 X 좌표 (OBJ_BITMAP_LABEL 및 OBJ_BITMAP). 이 값은 원본 이미지의 좌측 상단 모서리에 상대적인 픽셀로 설정됩니다.

int

OBJPROP_YOFFSET

그래픽 개체 "비트맵 레이블" 및 "비트맵" (OBJ_BITMAP_LABEL 및 OBJ_BITMAP)에서 직사각형 표시 영역 좌측 상단 모서리에 있는 Y 좌표. 이 값은 원본 이미지의 좌측 상단 모서리에 상대적인 픽셀로 설정됩니다.

int

OBJPROP_PERIOD

차트 개체의 시간 프레임

ENUM_TIMEFRAMES

OBJPROP_DATE_SCALE

차트 개체의 시간 척도 표시

bool

OBJPROP_PRICE_SCALE

차트 개체의 가격 스케일 표시

bool

OBJPROP_CHART_SCALE

차트 개체의 스케일

int   0~5 범위의 값

OBJPROP_BGCOLOR

OBJ_EDIT, OBJ_BUTTON, OBJ_RECTANGLE_LABEL의 배경색

색상

OBJPROP_CORNER

그래픽 개체를 연결하기 위한 차트 모서리

ENUM_BASE_CORNER

OBJPROP_BORDER_TYPE

"직사각형 레이블" 개체의 테두리 유형

ENUM_BORDER_TYPE

OBJPROP_BORDER_COLOR

OBJ_EDIT 및 OBJ_BUTTON 개체의 테두리 색상

색상

차트 작업을 "차트" 개체 (OBJ_CHART)에 대해 사용할 경우 다음과 같은 제한이 적용됩니다:

  • ChartClose()를 사용하여 닫을 수 없습니다;
  • 기호/주기는 ChartSetSymbolPeriod() 함수를 사용하여 변경할 수 없습니다;
  • 다음 속성은 효과적이지 않습니다 CHART_SCALE, CHART_BRING_TO_TOP, CHART_SHOW_DATE_SCALE 및 CHART_SHOW_PRICE_SCALE (ENUM_CHART_PROPERTY_INTEGER).

 

OBJ_BITMAP_LABELOBJ_BITMAP 개체에 대해 이미지 표시 특수 모드를 설정할 수 있습니다. 이 모드에서는 원본 이미지의 일부(직사각형 가시 영역이 적용된 부분)만 표시되고 나머지 이미지는 보이지 않게 됩니다. 이 영역의 크기는 OBJPROP_XSIZE 및 OBJPROP_YSIZE 속성을 사용하여 설정해야 합니다. 표시되는 영역은 OBJPROP_XOFFSET 및 OBJPROP_YOFFSET 속성을 사용하여 원래 이미지 내에서만 "이동"할 수 있습니다.

 

고정된 크기의 개체 OBJ_BUTTON, OBJ_RECTANGLE_LABEL, OBJ_EDITOBJ_CHART의 경우, OBJPROP_XDISTANCE 및 OBJPROP_YDISTANCE 속성은 차트 모서리(OBJPROP_CORNER)를 기준으로 개체의 좌측 상단 위치를 설정합니다.

 

다음 함수의 경우: ObjectSetDouble()ObjectGetDouble()

ENUM_OBJECT_PROPERTY_DOUBLE

식별자

설명

속성 유형

OBJPROP_PRICE

가격 좌표

double    수정자=고정점 수

OBJPROP_LEVELVALUE

레벨 값

double    수정자=레벨 수

OBJPROP_SCALE

스케일 (갠 개체 및 피보나치 아크 특성)

double

OBJPROP_ANGLE

각도. 프로그램에서 생성된 각도가 지정되지 않은 개체의 경우 값은 EMPTY_VALUE와 같습니다.

double

OBJPROP_DEVIATION

표준 편차 채널에 대한 편차

double

 

다음 함수의 경우: ObjectSetString()ObjectGetString()

ENUM_OBJECT_PROPERTY_STRING

식별자

설명

속성 유형

OBJPROP_NAME

개체 이름

string

OBJPROP_TEXT

개체에 대한 설명(개체에 포함된 텍스트)

string

OBJPROP_TOOLTIP

도구 설명의 텍스트. 속성이 설정되지 않은 경우 터미널에서 자동으로 생성된 도구 설명이 표시됩니다. 도구 설명에 "\n" (라인 피드) 값을 설정하여 도구 설명을 비활성화할 수 있습니다.

string

OBJPROP_LEVELTEXT

레벨 설명

string    수정자=레벨 수

OBJPROP_FONT

글꼴

string

OBJPROP_BMPFILE

비트맵 레이블의 BMP파일 이름입니다. 추가 참조 Resources

string    modifier: 0-state ON, 1-state OFF

OBJPROP_SYMBOL

차트 개체 기호

string

 

OBJ_RECTANGLE_LABEL 개체의 경우("직사각형 레이블") 세 가지 설계 모드 중 하나를 설정할 수 있으며, 여기에 해당하는 ENUM_BORDER_TYPE 값을 지정할 수 있습니다.

ENUM_BORDER_TYPE

식별자

설명

BORDER_FLAT

평면 형태

BORDER_RAISED

볼록한 형태

BORDER_SUNKEN

오목한 형태

 

OBJ_EDIT 개체("편집") 및 ChartScreenShot() 함수의 경우 ENUM_ALIGN_MODE 열거 값을 사용하여 수평 정렬 유형을 지정할 수 있습니다.

ENUM_ALIGN_MODE

식별자

설명

ALIGN_LEFT

좌측 정렬

ALIGN_CENTER

중앙 (편집 개체 전용)

ALIGN_RIGHT

우측 정렬

예:

#define  UP          "\x0431"
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string label_name="my_OBJ_LABEL_object";
   if(ObjectFind(0,label_name)<0)
     {
      Print("Object ",label_name," not found. Error code = ",GetLastError());
      //--- 레이블 개체 생성
      ObjectCreate(0,label_name,OBJ_LABEL,0,0,0);           
      //--- X 좌표 설정
      ObjectSetInteger(0,label_name,OBJPROP_XDISTANCE,200);
      //--- Y 좌표 설정
      ObjectSetInteger(0,label_name,OBJPROP_YDISTANCE,300);
      //--- 텍스트 색상 지정
      ObjectSetInteger(0,label_name,OBJPROP_COLOR,clrWhite);
      //--- 개체 레이블 텍스트 정의
      ObjectSetString(0,label_name,OBJPROP_TEXT,UP);
      //--- 글꼴 지정
      ObjectSetString(0,label_name,OBJPROP_FONT,"Wingdings");
      //--- 글꼴 크기 지정
      ObjectSetInteger(0,label_name,OBJPROP_FONTSIZE,10);
      //--- 시계방향 45도 회전
      ObjectSetDouble(0,label_name,OBJPROP_ANGLE,-45);
      //--- 마우스 선택 불가능
      ObjectSetInteger(0,label_name,OBJPROP_SELECTABLE,false);
      //--- 차트에 그리기
      ChartRedraw(0);                                      
     }
  }