#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
#property script_show_inputs
enum ENUM_REMOVE_MODE
{
REMOVE_MODE_TRADE_ARROWS, // 모든 화살표를 제거합니다
REMOVE_MODE_AUTOTRADE // 모든 ㅏ동거래 화살표를 제거합니다
};
input ENUM_REMOVE_MODE InpRemoveMethod = REMOVE_MODE_TRADE_ARROWS; /*Remove Method*/ // 모든 화살표 혹은 오토 거래 화살표를 제거
/+------------------------------------------------------------------+
//| Script program start function |
/+------------------------------------------------------------------+
void OnStart()
{
//--- 차트 ID 및 제거된 개체 수
long chart_id=ChartID();
int count=0;
ResetLastError();
//--- 모든 화살표 객체 삭제가 선택된 경우
//--- OBJ_ARROW_BUY 및 OBJ_ARROW_SELL 유형의 모든 객체를 삭제하여 모든 자동 거래 아이콘을 삭제합니다.
//--- 차트에 있는 동일한 유형의 다른 객체도 삭제합니다.
if(InpRemoveMethod==REMOVE_MODE_TRADE_ARROWS)
{
count+=ObjectsDeleteAll(chart_id, -1, OBJ_ARROW_BUY);
count+=ObjectsDeleteAll(chart_id, -1, OBJ_ARROW_SELL);
}
//--- 자동 거래 아이콘만 제거하기로 선택한 경우
//--- 이름에 "autotrade" 하위 문자열이 포함된 모든 객체를 삭제합니다.
//--- 모든 자동 거래 아이콘을 제거하고 다른 화살표 객체는 그대로 둡니다.
else
{
count=ObjectsDeleteAll(chart_id, "autotrade");
}
//--- 그래픽 객체 삭제 중 오류가 발생한 경우 이를 보고하고 작업을 종료합니다.
if(GetLastError()!=ERR_SUCCESS)
{
PrintFormat("ObjectsDeleteAll() failed. Error %d. count=%d", GetLastError(), count);
return;
}
//--- 변경 사항을 즉시 반영하도록 차트를 업데이트합니다.
ChartRedraw(chart_id);
//--- 저널에서 제거되는 화살표 객체의 수를 설정합니다.
string type=(InpRemoveMethod==REMOVE_MODE_TRADE_ARROWS ? "OBJ_ARROW_BUY and OBJ_ARROW_SELL" : "with prefix \"autotrade\"");
PrintFormat("%d objects %s removed", count, type);
/*
result for InpRemoveMethod = REMOVE_MODE_TRADE_ARROWS:
116 objects OBJ_ARROW_BUY and OBJ_ARROW_SELL removed
result for InpRemoveMethod = REMOVE_MODE_AUTOTRADE:
131 objects with prefix "autotrade" removed
*/
}
|