mt5 ObjectDelete에 버그가 있습니까?

 

안녕하세요, 저는 MQL5에서 표시기를 작성하고 있지만 문자열 이름 ObejectDelete로 무엇을 작성하든 true를 반환합니다! 개체가 없는 빈 차트에서도!

int ObjCount = ObjectsTotal(ChartID(),/*0=기본 하위 창*/0,/*모든 개체 유형*/-1);

bool deleteResult=ObjectDelete(ChartID(),"존재하지 않는 개체");

인쇄( __LINE__ ,"-",deleteResult," | ObjCount=",ObjCount);

결과는 다음과 같습니다.

2016.12.11 13:46:38.385 원거리 테스트(EURUSD,H1) 37- 사실 | 개체 수=0

false를 반환해야 하지 않습니까?


 
Farzin Sadeghi :

안녕하세요, 저는 MQL5에서 표시기를 작성하고 있지만 문자열 이름 ObejectDelete로 무엇을 작성하든 true를 반환합니다! 개체가 없는 빈 차트에서도!

int ObjCount = ObjectsTotal(ChartID(),/*0=기본 하위 창*/0,/*모든 개체 유형*/-1);

bool deleteResult=ObjectDelete(ChartID(),"존재하지 않는 개체");

인쇄(__LINE__,"-",deleteResult," | ObjCount=",ObjCount);

결과는 다음과 같습니다.

2016.12.11 13:46:38.385 원거리 테스트(EURUSD,H1) 37- 사실 | 개체 수=0

false를 반환해야 하지 않습니까?


다음은 mt4에서 동일한 코드의 결과입니다.

2016.12.11 14:00:10.141 Far-TestObjDelete EURUSD_e,H1: 38 -false | 개체 수=0

그래서 mt5가 잘못 작동하고 있습니다!

 
Farzin Sadeghi :

다음은 mt4에서 동일한 코드의 결과입니다.

2016.12.11 14:00:10.141 Far-TestObjDelete EURUSD_e,H1: 38 -false | 개체 수=0

그래서 mt5가 잘못 작동하고 있습니다!

어떤 빌드의 MT5를 사용하고 있습니까? 현재 사용 가능한 빌드는 1495(2016년 12월 9일)입니다!
 
Fernando Carreiro :
어떤 빌드의 MT5를 사용하고 있습니까? 현재 사용 가능한 빌드는 1495(2016년 12월 9일)입니다!
예, mt5는 빌드 1495, 2016.dec.09, 메타에디터도 1495입니다.
 
Farzin Sadeghi :
예, mt5는 빌드 1495, 2016.dec.09, 메타에디터도 1495입니다.

우리가 컴파일하고 테스트할 수 있는 완전한 작은 테스트 스크립트/표시기 코드를 제공하여 동일한 효과를 생성하는지 확인하십시오.

당사 측에서도 동일한 작업을 수행하는 경우 서비스 데스크에 가능한 버그로 보고 할 수 있습니다!

다음 포스트에 완성된 파일로 첨부해주세요!

 
Fernando Carreiro :

우리가 컴파일하고 테스트할 수 있는 완전한 작은 테스트 스크립트/표시기 코드를 제공하여 동일한 효과를 생성하는지 확인하십시오.

당사 측에서도 동일한 작업을 수행하는 경우 서비스 데스크에 가능한 버그로 보고 할 수 있습니다!

다음 게시물에 완전한 파일로 첨부하십시오!

여기에 mt5 와 mt4 의 동일한 코드가 있습니다. 결과는 다르지만 도움말 파일은 동일하다고 말합니다.

개체삭제

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

bool 개체삭제 (
         chart_id , // 차트 식별자
       이름            // 객체 이름
);

매개변수

차트 ID

【인】 차트 식별자입니다. 0은 현재 차트를 의미합니다.

이름

【인】 삭제할 개체의 이름입니다.

반환 값

제거에 성공하면 true를 반환하고, 그렇지 않으면 false 를 반환합니다.

 
Farzin Sadeghi : 여기 mt5와 mt4에 동일한 코드가 있습니다. 결과는 다르지만 도움말 파일은 동일하다고 말합니다.
후속 조치에서 OP의 소스 코드에 버그가 없는지 확인하기 위해 자체 코드를 다시 작성하고 다음 표시기 코드와 동일한 효과를 얻었으며 저도 실제로 OP와 동일한 결과를 얻었습니다.
#property strict
#property indicator_chart_window

int OnInit ()
{
   return ( INIT_SUCCEEDED );
}

int OnCalculate ( const int rates_total, const int prev_calculated, const datetime &time[],
   const double &open[], const double &high[], const double &low[], const double &close[],
   const long &tick_volume[], const long &volume[], const int &spread[])
{
   static bool boolFirstTime = true ;
  
   if ( boolFirstTime )
   {
      boolFirstTime = false ;
       bool boolDeleteResult = ObjectDelete ( 0 , "Non-existing Object" );
       Print ( "Result of Deleteing non-existing Chart Object: " , boolDeleteResult );
   }
  
   return (rates_total);
}
출력은 다음과 같았습니다.
2016.12 . 11 11 : 12 : 29.999 TestObjectDelete (EURUSD.m,H4)  Result of Deleteing non-existing Chart Object: true
따라서 이것은 실제로 서비스 데스크에 보고해야 하는 버그처럼 보입니다.
 
Fernando Carreiro :
후속 조치에서 OP 소스의 버그가 아닌지 확인하기 위해 자체 코드를 다시 만들고 다음 표시기 코드와 동일한 효과를 얻었으며 실제로 OP와 동일한 결과를 얻었습니다.
#property strict
#property indicator_chart_window

int OnInit ()
{
   return ( INIT_SUCCEEDED );
}

int OnCalculate ( const int rates_total, const int prev_calculated, const datetime &time[],
   const double &open[], const double &high[], const double &low[], const double &close[],
   const long &tick_volume[], const long &volume[], const int &spread[])
{
   static bool boolFirstTime = true ;
  
   if ( boolFirstTime )
   {
      boolFirstTime = false ;
       bool boolDeleteResult = ObjectDelete ( 0 , "Non-existing Object" );
       Print ( "Result of Deleteing non-existing Chart Object: " , boolDeleteResult );
   }
  
   return (rates_total);
}
출력은 다음과 같았습니다.
2016.12 . 11 11 : 12 : 29.999 TestObjectDelete (EURUSD.m,H4)  Result of Deleteing non-existing Chart Object: true
따라서 이것은 실제로 서비스 데스크에 보고해야 하는 버그처럼 보입니다.
시간 내 줘서 고마워 :)
 
Farzin Sadeghi :
시간 내 줘서 고마워 :)
서비스 데스크에 신고하시겠습니까?
 
Fernando Carreiro :
서비스 데스크에 신고하시겠습니까?
네 쓰겠습니다. 당신의 확인을 기다리고 있었습니다. 감사해요.
 
Farzin Sadeghi :
네 쓰겠습니다. 당신의 확인을 기다리고 있었습니다. 감사해요.
문제를 강화하는 데 도움이 되도록 저도 그렇게 할 것입니다!