오류, 버그, 질문 - 페이지 2484

 
Сергей Таболин :

개발자 여러분, 문제가 발생했습니다. 당신의 관심이 필요합니다.

요점은 TesterStop() 및 ExpertRemove ()가 테스트를 즉시 중지하지 않는다는 것입니다. 오류의 예는 여기에 있습니다 . 해당 게시물에 요실금이 있어서 죄송합니다.

TesterStop() 또는 ExpertRemove()에 의한 테스트 중지의 표시인 MQL_TESTER_STOP 상수를 도입하는 것이 더 정확하다고 생각했습니다.

이 경우 추가 조치를 선택할 수 있습니다.

Expert Advisor의 즉시 중지는 메모리 손상을 의미합니다. Expert Advisor를 즉시 중지한 후 해제되지 않은 메모리 블록이 남아 있을 수 있습니다. 따라서 Expert Advisor의 즉시 정지는 클라이언트 단말 또는 테스트 에이전트가 종료된 경우에만 Expert Advisor가 정지 플래그를 처리하지 않고 계속 실행하는 경우에만 사용된다.

TesterStop은 테스트를 종료하는 명령을 제공합니다. 즉, 현재 OnInit, OnTick, OnTimer, OnChartEvent 핸들러가 완료된 후 처리 루프가 완료되므로 테스터 이벤트가 더 이상 처리되지 않습니다. 그리고 OnTester와 OnDeinit가 호출됩니다.

 
Slava :

Expert Advisor의 즉시 중지는 메모리 손상을 의미합니다. Expert Advisor를 즉시 중지한 후 해제되지 않은 메모리 블록이 남아 있을 수 있습니다. 따라서 Expert Advisor의 즉시 정지는 클라이언트 단말 또는 테스트 에이전트가 종료된 경우에만 Expert Advisor가 정지 플래그를 처리하지 않고 계속 실행하는 경우에만 사용된다.

TesterStop은 테스트를 종료하는 명령을 제공합니다. 즉, 현재 OnInit, OnTick, OnTimer, OnChartEvent 핸들러가 완료된 후 처리 루프가 완료되므로 테스터 이벤트가 더 이상 처리되지 않습니다. 그리고 OnTester와 OnDeinit가 호출됩니다.

감사합니다. 이미 이해했습니다. 그러나 그것은 문제를 해결하지 못합니다. MQL_TESTER_STOP 상수를 사용하거나 반환값을 void에서 bool로 변경하여 해결할 수 있습니다.

Alexey Viktorov가 예상치 못한 결정을 제안했습니다 . TesterStop() 이후에 return을 사용하면 모든 것이 정상으로 돌아간 것처럼 보입니다. 개인적으로 어떻게 그리고 왜 이런 일이 발생하는지, 나는 따라 잡을 수 없습니다 ... 그럼에도 불구하고 ...

여기에서 이 지점을 문서에 추가하거나 void를 bool로 변경합니다.

추신 빌드 2085에서 이 문제가 발생했습니다. 그 전에는 문제가 없었습니다. 제 생각에는 이것이 의미하는 바가 있습니까? )))

 

여보세요,

가끔 사용하는 지표가 테스터에 표시되지 않는 이유는 무엇입니까?

나는 터미널을 다시 시작합니다 - 그들은 렌더링을 시작합니다 ...

그런 다음 코드가 변경되지 않았지만 다시 중지됩니다.

 

또한 두 번째 질문을 하고 싶습니다.

강제 ChartRedraw(0)에도 불구하고 테스터에서 그래픽 개체가 업데이트되지 않는 이유는 무엇입니까? ?

실제로 테스터는 업데이트하지만 엄청난 지연과 멍청이가 발생합니다.

고맙습니다.

편집: 죄송합니다. 잘못된 경보입니다. 이 질문은 제거되었습니다(문제는 버그가 있는 코드에 있음)

그러나 지표의 문제는 여전히 유효합니다.

 
PS 버전 2085 6월 13일
 

@Slava 는 2007 빌드에서 TesterStop()이 OnDeinit에만 제어를 전달했다고 말합니까? OnTester로 제어권이 이전되지 않았습니까?

따라서 내 코드는 잘 작동했고 이 경우 테스트 결과는 0이었습니다.

 
Сергей Таболин :

@Slava 는 2007 빌드에서 TesterStop()이 OnDeinit에만 제어를 전달했다고 말합니까? OnTester로 제어권이 이전되지 않았습니까?

따라서 내 코드는 잘 작동했고 이 경우 테스트 결과는 0이었습니다.

전역 플래그를 설정하고 TesterStop을 호출하기 전에 제기하고 OnTester에서 분석하십시오.

 
Andrey Khatimlianskii :

전역 플래그를 설정하고 TesterStop을 호출하기 전에 제기하고 OnTester에서 분석하십시오.

시작 ))) 모든 것이 그렇게 간단하지는 않았습니다 . 원칙적으로 문제는 해결됩니다. TesterStop이 조금 다르게 작동했다는 확인을 듣고 싶습니다.

 
2085
리눅스, 와인-4.0.1

도구 스틱에 대한 설명으로 연결되는 링크입니다.

설명에 링크가 없으면 효과가 나타나지 않습니다.


파일:
link.gif  5125 kb
 
Vladimir Karputov :

아마도 당신은 32x 비트 운영 체제를 가지고 있을 것입니다. 또는 RAM이 충분하지 않습니다.

비교 레노버 G50-45 (LAPTOR-46OAGFM3)
AMD Radeon 탑재 프로세서 AMD A4-6210 APU
R3 그래픽 1.80GHz
램 2.00GB
시스템 유형 64비트, x64 프로세서