안녕하세요, 저는 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가 잘못 작동하고 있습니다!
다음은 mt4에서 동일한 코드의 결과입니다.
2016.12.11 14:00:10.141 Far-TestObjDelete EURUSD_e,H1: 38 -false | 개체 수=0
그래서 mt5가 잘못 작동하고 있습니다!
어떤 빌드의 MT5를 사용하고 있습니까? 현재 사용 가능한 빌드는 1495(2016년 12월 9일)입니다!
예, mt5는 빌드 1495, 2016.dec.09, 메타에디터도 1495입니다.
우리가 컴파일하고 테스트할 수 있는 완전한 작은 테스트 스크립트/표시기 코드를 제공하여 동일한 효과를 생성하는지 확인하십시오.
당사 측에서도 동일한 작업을 수행하는 경우 서비스 데스크에 가능한 버그로 보고 할 수 있습니다!
다음 포스트에 완성된 파일로 첨부해주세요!
우리가 컴파일하고 테스트할 수 있는 완전한 작은 테스트 스크립트/표시기 코드를 제공하여 동일한 효과를 생성하는지 확인하십시오.
당사 측에서도 동일한 작업을 수행하는 경우 서비스 데스크에 가능한 버그로 보고 할 수 있습니다!
다음 게시물에 완전한 파일로 첨부하십시오!
여기에 mt5 와 mt4 의 동일한 코드가 있습니다. 결과는 다르지만 도움말 파일은 동일하다고 말합니다.
개체삭제
이 함수는 지정된 차트에서 지정된 이름을 가진 개체를 제거합니다.
bool 개체삭제 ( |
매개변수
차트 ID
【인】 차트 식별자입니다. 0은 현재 차트를 의미합니다.
이름
【인】 삭제할 개체의 이름입니다.
반환 값
제거에 성공하면 true를 반환하고, 그렇지 않으면 false 를 반환합니다.
출력은 다음과 같았습니다.#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
후속 조치에서 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
시간 내 줘서 고마워 :)
서비스 데스크에 신고하시겠습니까?
네 쓰겠습니다. 당신의 확인을 기다리고 있었습니다. 감사해요.
안녕하세요, 저는 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를 반환해야 하지 않습니까?