개체 가시성

개체 가시성 플래그의 조합에 따라 개체가 표시되는 차트 시간프레임이 결정됩니다. OBJPROP_TIMEFRAMES 속성 값을 설정/가져오기 위해 ObjectSetInteger()/ObjectGetInteger() 함수를 사용할 수 있습니다.

ID

설명

OBJ_NO_PERIODS

0

개체가 일부 시간프레임에 그려지지 않습니다

OBJ_PERIOD_M1

0x00000001

개체가 1분 차트에 그려집니다

OBJ_PERIOD_M2

0x00000002

개체가 2분 차트에 그려집니다

OBJ_PERIOD_M3

0x00000004

개체가 3분 차트에 그려집니다

OBJ_PERIOD_M4

0x00000008

개체가 4분 차트에 그려집니다

OBJ_PERIOD_M5

0x00000010

개체가 5분 차트에 그려집니다

OBJ_PERIOD_M6

0x00000020

개체가 6분 차트에 그려집니다

OBJ_PERIOD_M10

0x00000040

개체가 10분 차트에 그려집니다

OBJ_PERIOD_M12

0x00000080

개체가 12분 차트에 그려집니다

OBJ_PERIOD_M15

0x00000100

개체가 15분 차트에 그려집니다

OBJ_PERIOD_M20

0x00000200

개체가 20분 차트에 그려집니다

OBJ_PERIOD_M30

0x00000400

개체가 30분 차트에 그려집니다

OBJ_PERIOD_H1

0x00000800

개체가 1시간 차트에 그려집니다

OBJ_PERIOD_H2

0x00001000

개체가 2시간 차트에 그려집니다

OBJ_PERIOD_H3

0x00002000

개체가 3시간 차트에 그려집니다

OBJ_PERIOD_H4

0x00004000

개체가 4시간 차트에 그려집니다

OBJ_PERIOD_H6

0x00008000

개체가 6시간 차트에 그려집니다,

OBJ_PERIOD_H8

0x00010000

개체가 8시간 차트에 그려집니다

OBJ_PERIOD_H12

0x00020000

개체가 12시간 차트에 그려집니다

OBJ_PERIOD_D1

0x00040000

개체가 일 차트에 그려집니다

OBJ_PERIOD_W1

0x00080000

개체가 주 차트에 그려집니다

OBJ_PERIOD_MN1

0x00100000

개체가 월 차트에 그려집니다

OBJ_ALL_PERIODS

0x001fffff

개체가 모든 시간대에 그려집니다

가시성 플래그는 "|" 기호를 사용하여 조합할 수 있으며, 예를 들어 OBJ_PERIOD_M10|OBJ_PERIOD_H4 플래그의 조합은 개체를 10분 및 4시간 시간 프레임에서 볼 수 있음을 의미합니다.

예:

void OnStart()
  {
//---
   string highlevel="PreviousDayHigh";
   string lowlevel="PreviousDayLow";
   double prevHigh;           // 전날 고가
   double prevLow;            // 전날 저가
   double highs[],lows[];     // 고가 및 저가 배열
 
//--- 마지막 오류 재설정
   ResetLastError();
//--- 일별 기간에서 마지막 2개의 높은 값을 가져오기
   int highsgot=CopyHigh(Symbol(),PERIOD_D1,0,2,highs);
   if(highsgot>0) // 복사가 성공인 경우
     {
      Print("지난 이틀간 고가를 성공적으로 가져왔습니다");
      prevHigh=highs[0]; // 전날 고가
      Print("prevHigh = ",prevHigh);
      if(ObjectFind(0,highlevel)<0) // 상위레벨 이름의 개체를 찾을 수 없습니다
        {
         ObjectCreate(0,highlevel,OBJ_HLINE,0,0,0); // 수평선 개체 생성
        }
      //--- 선 상위레벨의 가격 레벨 값 설정
      ObjectSetDouble(0,highlevel,OBJPROP_PRICE,0,prevHigh);
      //--- 가시성을 PERIOD_M10 및 PERIOD_H4로만 설정
      ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
     }
   else
     {
      Print("지난 이틀간 고가를 가져올 수 없습니다, 오류 = ",GetLastError());
     }
 
//--- 마지막 오류 재설정
   ResetLastError();
//--- 일별 기간에서 이틀간 저가 값 가져오기
   int lowsgot=CopyLow(Symbol(),PERIOD_D1,0,2,lows);
   if(lowsgot>0) // 복사가 성공인 경우
     {
      Print("지난 이틀간 저가를 성공적으로 가져왔습니다");
      prevLow=lows[0]; // 전날 저가
      Print("prevLow = ",prevLow);
      if(ObjectFind(0,lowlevel)<0) // 하위레벨 이름의 개체를 찾을 수 없습니다
        {
         ObjectCreate(0,lowlevel,OBJ_HLINE,0,0,0); // 수평선 개체 생성
        }
      //--- 하위레벨 선에 대한 가격 레벨 값 설정
      ObjectSetDouble(0,lowlevel,OBJPROP_PRICE,0,prevLow);
      //--- 가시성을 PERIOD_M10 및 PERIOD_H4로만 설정
      ObjectSetInteger(0,lowlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
     }
   else Print("지난 이틀간 저가를 가져올 수 없습니다, 오류 = ",GetLastError());
 
   ChartRedraw(0); // 차트 강제 다시 그리기
  }

추가 참조

PeriodSeconds, Period, Chart timeframes, Date and Time