ObjectGetInteger

이 함수는 해당 개체 속성의 값을 반환합니다. 개체속성은 datetime, int, color, bool 또는 char 유형이어야 합니다. 이 함수에는 두 가지 변수가 있습니다.

1. 속성 값을 즉시 반환합니다.

long  ObjectGetInteger(
   long                             chart_id,          // 차트 식별자
   string                           name,              // 오브젝트명
   ENUM_OBJECT_PROPERTY_INTEGER     prop_id,           // 속성 식별자
   int                              prop_modifier=0    // 속성 한정자(필요한 경우)
   );

2. 함수의 성공 여부에 따라 참 또는 거짓을 반환합니다. 성공하면 속성 값이 마지막 매개 변수로 참조로 전달된 수신 변수에 배치됩니다.

bool  ObjectGetInteger(
   long                             chart_id,          // 차트 식별자
   string                           name,              // 오브젝트명
   ENUM_OBJECT_PROPERTY_INTEGER     prop_id,           // 속성 식별자
   int                              prop_modifier,     // 속성 식별자
   long&                            long_var           // 여기서 우리는 속성 값을 받아들입니다
   );

Parameter

chart_id

[in]  차트 식별자. 0은 현재 차트를 의미합니다.

name

[in]  객체명.

prop_id

[in]  개체 속성의 ID. 그 값은 ENUM_OBJECT_PROPERTY_INTEGER 열거값 중 하나일 수 있습니다.

prop_modifier

[in]  지정한 속성의 한정자. 첫번째 변수의 경우 기본 한정자 값은 0과 같습니다. 대부분의 속성에는 한정자가 필요하지 않습니다. 피보나치 툴과 그래픽 객체 앤드류의 피치포크에서 레벨 수를 나타냅니다. 수준 수는 0부터 시작합니다.

long_var

[out]  요청한 속성의 값을 받는 long 유형의 변수입니다.

반환값

첫 번째 호출 변수에 대한 long 값입니다.

두 번째 변종의 경우 함수는 true를 반환하며, 이 속성이 유지되고 값이 long_var 변수에 배치된 경우, 그렇지 않으면 false를 반환하지 않으면 false를 반환합니다. 에러에 대한 자세한 내용은 GetLastError()를 참조하십시오.

참고

이 함수는 동기식 호출을 사용합니다. 이는 이 함수가 호출하기 전에 이 차트에 대해 대기한 모든 명령의 실행을 대기하므로 이 함수는 시간이 많이 걸릴 수 있습니다. 차트에서 많은 개체로 작업할 때는 이 기능을 고려해야 합니다.

 

예:

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
 
#define   OBJ_NAME   "TestObjectGetInteger"  // 객체명
 
/+------------------------------------------------------------------+
//| Script program start function                                   |
/+------------------------------------------------------------------+
void OnStart()
  {
//--- 현재 차트 ID
   long chart_id=ChartID();
 
//--- 현재 알려진 서버 시간에 "수직선" 그래픽 객체를 생성합니다.
   if(!ObjectCreate(chart_idOBJ_NAMEOBJ_VLINE0TimeCurrent(), 0))
     {
      Print("ObjectCreate() failed. Error "GetLastError());
      return;
     }
//--- 변경 사항을 즉시 반영하도록 차트를 업데이트합니다.
   ChartRedraw(chart_id);
   
//--- 객체 생성 시간을 가져옵니다
   long long_var=0;
   if(!ObjectGetInteger(chart_idOBJ_NAMEOBJPROP_CREATETIME0long_var))
     {
      Print("ObjectGetInteger() failed. Error "GetLastError());
      return;
     }
//--- 객체 생성 시간의 문자열 표현
   string create_time=TimeToString((datetime)long_varTIME_DATE|TIME_MINUTES|TIME_SECONDS);
   
//--- 객체에 설정된 시간을 가져옵니다.
   if(!ObjectGetInteger(chart_idOBJ_NAMEOBJPROP_TIME0long_var))
     {
      Print("ObjectGetInteger() failed. Error "GetLastError());
      return;
     }
//--- 객체 위치 시간의 문자열 표현
   string obj_time=TimeToString((datetime)long_varTIME_DATE|TIME_MINUTES|TIME_SECONDS);
   
//--- 객체 유형을 가져옵니다
   ENUM_OBJECT object_type=(ENUM_OBJECT)ObjectGetInteger(chart_idOBJ_NAMEOBJPROP_TYPE);
   
//--- 객체 유형, 객체 생성 시간 및 그래픽 객체가 차트에 위치한 시간을 저널에 출력합니다.
   PrintFormat("%s object created at %s at chart point with time %s",EnumToString(object_type), create_timeobj_time);
   
//--- 2초간 기다린 후 생성된 객체를 삭제합니다.
   Sleep(2000);
   ObjectDelete(chart_idOBJ_NAME);
   ChartRedraw(chart_id);
   /*
  결과:
   OBJ_VLINE object created at 2025.02.01 12:15:37 at chart point with time 2025.01.31 23:54:59
   */
  }