그래픽 개체의 속성을 정의하는 함수와 차트를 따라 개체를 만들고 이동하는 ObjectCreate() 및 ObjectMove() 작업은 실제로 차트에 명령을 보내는 데 사용됩니다. 이러한 기능이 성공적으로 실행되면 해당 명령은 차트 이벤트의 공통 대기열에 포함됩니다. 차트 이벤트의 대기열을 처리할 때 그래픽 개체 속성의 시각적 변경이 구현됩니다.
"Delete this object" 명령이 성공적으로 수락되었음을 의미합니다. GetLastError()로 명령 결과를 제어할 수 있습니다. 시도 - 어떤 코드가 반환됩니까?
어떤 빌드를 사용하셨나요? "ObjectDelete()" 함수 가 있는 최신 빌드에 가능한 버그가 있는 것 같기 때문에 "ObjectFind()"에도 문제가 있을 수 있습니다!
MT5: 빌드 1495(2016년 12월 9일)
MT5: 빌드 1495(2016년 12월 9일)
빌드 1491에서 코드를 실행했고 비슷한 결과를 얻었습니다.
빌드 1491에서 코드를 실행했고 비슷한 결과를 얻었습니다.
이것은 버그라기보다는 의미론적일 수 있습니다.
ObjectDelete의 목적은 "지정된 이름을 가진 개체를 제거"하는 것입니다.
함수 실행이 끝나면 차트에 "존재하지 않는 개체"라는 개체가 여전히 있습니까? 아니..그래서 이게 성공이야?
다른 방식으로 보면 ObjectDelete가 "존재하지 않는 개체"라는 개체를 제거했습니까? 아니... 그래서 실패인가요?
결과나 취한 조치로 성공을 측정합니까?
함수 를 실행한 후 명명된 개체가 차트에 남아 있으면 false가 예상될 수 있습니다. 그렇지 않으면 성공했습니다.
당신이 말하는 것이 사실일 수도 있지만 MQL4에서 MQL5로 마이그레이션할 때 동일한 결과 또는 최소한 참조의 반환 값에 명확하게 쓰여진 결과를 볼 것으로 예상됩니다.
이 첫 번째 문제를 통과하고 ObjectMove 기능을 테스트했으며 다시 TRUE 결과를 얻고 있습니다! 이것은 결국 객체를 사용할 수 없기 때문에 true가 정확하다는 설명을 넘어섭니다.
사용할 수 없는 개체에 대해 ObjectMove를 사용하면 false를 반환해야 합니다!
moveResult=ObjectMove(ChartID(),"사용할 수 없는 추세선",1,time[4950],low[4980]);
인쇄(__LINE__,"-moveResult=",moveResult);
2016.12.11 17:22:39.367 Far-Test-ChangeTrendLine(EURUSD,H1) 44-moveResult=true
안녕하세요, 저는 MQL5에서 표시기를 작성하고 있지만 문자열 이름 ObejectDelete로 무엇을 작성하든 true를 반환합니다! 개체가 없는 빈 차트에서도!
객체 함수 설명 읽기
이것은 지정된 차트와 관련된 그래픽 개체로 작업하기 위한 기능 그룹입니다.
그래픽 개체의 속성을 정의하는 함수와 차트를 따라 개체를 만들고 이동하는 ObjectCreate() 및 ObjectMove() 작업은 실제로 차트에 명령을 보내는 데 사용됩니다. 이러한 기능이 성공적으로 실행되면 해당 명령은 차트 이벤트의 공통 대기열에 포함됩니다. 차트 이벤트의 대기열을 처리할 때 그래픽 개체 속성의 시각적 변경이 구현됩니다.
객체 함수 설명 읽기
"Delete this object" 명령이 성공적으로 수락되었음을 의미합니다. GetLastError()로 명령 결과를 제어할 수 있습니다. 시도 - 어떤 코드가 반환됩니까?다음과 같이 코드를 변경했습니다.
int ObjCount = ObjectsTotal(ChartID(),/*0=기본 하위 창*/0,/*모든 개체 유형*/-1);
재설정 마지막 오류();
bool deleteResult=ObjectDelete(ChartID(),"존재하지 않는 개체");
Print(__LINE__,"-",deleteResult," | ObjCount=",ObjCount," | LastError=",GetLastError());
결과는 다음과 같습니다.
2016.12.12 12:38:43.373 Far-TestObjectDelete(EURUSD,H1) 38-사실 | 개체 수=0 | 마지막 오류=0
ERR_SUCCESS
0
작업이 성공적으로 완료되었습니다.
따라서 예를 들어 해당 개체에 액세스할 수 없다는 오류를 반환하지 않습니다. 그러나 MT4에서는 오류를 반환합니다.
ERR_SUCCESS
0
작업이 성공적으로 완료되었습니다.
따라서 예를 들어 해당 개체에 액세스할 수 없다는 오류를 반환하지 않습니다. 그러나 MT4에서는 오류를 반환합니다.
확인. 이러한 작업이 비동기식이기 때문에 MQL5에서 이러한 경우 오류가 발생하지 않는다는 것을 알았습니다. 따라서 2가지 옵션이 있습니다.
확인. 내가 알아낸 것처럼 이러한 작업은 등시적이기 때문에 MQL5에서는 이러한 경우 오류가 발생하지 않습니다. 따라서 2가지 옵션이 있습니다.
확인. 이러한 작업이 비동기식이기 때문에 MQL5에서 이러한 경우 오류가 발생하지 않는다는 것을 알았습니다. 따라서 2가지 옵션이 있습니다.
이 경우 어떻게 false를 반환할 수 있습니까?
ObjectDelete() 문서는 다음과 같이 말합니다 .
반환 값
제거에 성공 하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
문서는 더 명확해야 하며 "명령이 수락되면 true"라고 말하지 않습니다.
객체가 삭제인지 확인하려면 삭제 명령 뒤에 객체가 존재하는지 확인해야 합니다. 이는 말이 안 됩니다.
이 경우 어떻게 false를 반환할 수 있습니까?
ObjectDelete() 문서는 다음과 같이 말합니다 .
문서는 더 명확해야 하며 "명령이 수락되면 true"라고 말하지 않습니다.
그런 식으로 고정됩니다.
반환 값
명령 이 차트 이벤트의 공통 대기열에 있으면 true를 반환하고 , 그렇지 않으면 false를 반환합니다.