ObjectsTotal

이 함수는 지정된 유형의 지정된 차트, 지정된 하위 창에 있는 개체 수를 반환합니다.

int  ObjectsTotal(
   long  chart_id,           // 차트 식별자
   int   sub_window=-1,      // 윈도우 인덱스
   int   type=-1             // 객체 유형
   );

Parameter

chart_id

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

sub_window=-1

[in]  차트 하위 창의 번호. 0은 주 차트 창을 의미하며 -1은 주 창을 포함하여 차트의 모든 하위 창을 의미합니다.

type=-1

[in]  객체 유형. 값은 ENUM_OBJECT 열거값 중 하나일 수 있습니다. -1은 모든 유형을 의미합니다.

반환값

객체 수.

참고

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

 

예:

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
/+------------------------------------------------------------------+
//| Script program start function                                   |
/+------------------------------------------------------------------+
void OnStart()
  {
//--- 차트 ID
   long chart_id=ChartID();
   
//--- 메인 창과 함께 하위 창의 개수를 가져옵니다.
   long wnd=0;
   ResetLastError();
   if(!ChartGetInteger(chart_idCHART_WINDOWS_TOTAL0wnd))
     {
      Print("ChartGetInteger() failed. Error "GetLastError());
      return;
     }
   
//--- 각 차트 하위 창의 그래픽 객체의 수를 가져와 저널에 표시합니다.
   for(int i=0i<(int)wndi++)
     {
      int objects=ObjectsTotal(chart_idi);
      string wnd_head=(i==0 ? "The main chart window" : StringFormat("The window with index %d of the chart"i));
      PrintFormat("%s contains %d graphic objects"wnd_headobjects);
     }
   /*
   두 개의 하위 창이 있는 메인 창에 대한 결과
   메인 창에 거래 라벨이 포함되어 있는
   그리고 두 개의 그래픽 객체가 있는 하위 창에
   The main chart window contains 656 graphic objects
   The window with index 1 of the chart contains 2 graphic objects 
   The window with index 2 of the chart contains 2 graphic objects
   */
  }