ObjectDelete

이 함수는 지정된 차트에서 지정된 이름의 개체를 제거합니다.

bool  ObjectDelete(
   long    chart_id,     // chart identifier
   string  name          // object name
   );

Parameter

chart_id

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

name

[in]  삭제할 개체의 이름.

반환값

명령이 지정한 차트의 대기열에 성공적으로 추가되면 함수가 true를 반환하고, 그렇지 않으면 false를 반환합니다.

참고

ObjectDelete()에는 항상 비동기 호출이 사용되므로 이 함수는 명령을 차트 대기열에 추가한 결과만 반환합니다. 이 경우 true는 명령이 성공적으로 대기열에 올랐지만 실행 결과를 알 수 없음을 의미합니다.

명령 실행 결과를 확인하려면 ObjectFind() 함수 또는 ObjectGetXXX와 같은 개체 속성을 요청하는 다른 함수를 사용할 수 있습니다. 그러나 이러한 기능은 해당 차트의 대기열 끝에 추가되며 동기 호출로 인해 실행 결과를 기다리기 때문에 시간이 많이 걸릴 수 있습니다. 차트에서 많은 개체로 작업할 때는 이 기능을 고려해야 합니다.

개체 이름이 변경되면 두 개의 이벤트가 동시에 생성됩니다. 이러한 이벤트는 OnChartEvent() 기능을 통해 Professional Advisor 또는 지표에서 처리할 수 있습니다.:

  • 이전 이름을 가진 객체 삭제의 경우
  • 새 이름으로 개체를 만드는 이벤트

 

예:

#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();
 
//--- 모든 차트 그래픽 객체를 통한 반복.
   int obj_total=ObjectsTotal(chart_id);
   for(int i=obj_total-1i>=0i--)
     {
//--- 두 번째 객체마다 건너뜁니다
      if(i%2==0)
         continue;
      
//--- 그래픽 객체의 이름을 가져옵니다
//--- 이것이 자동 거래 레이블인 경우 이 객체를 건너뜁니다.
      string obj_name=ObjectName(chart_idi);
      if(StringFind(obj_name"autotrade")==0)
         continue;
      
//--- chart_id가 있는 차트에서 그래픽 객체를 삭제합니다.
      ResetLastError();
      if(ObjectDelete(chart_idobj_name))
        {
         PrintFormat("[%d] Graphic object named \"%s\" removed from the chart with ID #%I64d"iobj_namechart_id);
        }
      else
        {
         Print("ObjectDelete() failed. Error "GetLastError());
        }
     }
   /*
   차트에 대한 결과6 그래픽 객체와 자동 거래 라벨(건너뜀)이 배치되는 차트에 대한 것입니다.
   [659Graphic object named "M30 Rectangle 5636" removed from the chart with ID #128968168951083984
   [657Graphic object named "M30 Trendline 40731" removed from the chart with ID #128968168951083984
   [1Graphic object named "M30 Vertical Line 13600" removed from the chart with ID #128968168951083984
   */
  }