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

 
Slawa :

두 번째 그림에서는 LastData 표시기의 짧은 이름 뒤에 마지막으로 계산된 데이터가 없습니다. 첫 번째 사진에는 244-363이 있고 세 번째 사진에는 247-409가 있습니다.

이것은 지표가 아직 계산되지 않았음을 나타냅니다. 데이터가 준비되지 않은 것으로 간주됩니다. 표시기는 렌더링을 담당하는 애플리케이션의 메인 스레드가 아니라 별도의 스레드에서 계산된다는 점을 상기시켜 드리겠습니다. 표시기는 예외 없이 들어오는 각 틱에 계산됩니다.

마우스로 차트를 이동하는 과정에서 마우스에서 시스템 메시지를 처리하기 위한 컴퓨팅 리소스 를 캡처했습니다(작업 관리자를 열고 마우스 움직임의 강도에 따라 CPU 백분율이 어떻게 증가하는지 확인). 그리고 귀하의 지표는 다시 계산할 시간이 없었습니다. 따라서 두 번째 그래프는 비어 있습니다.

불행히도 모든 것이 훨씬 더 나쁩니다. 표시기가 완전히 부착되어 있습니다. 위의 세부 정보가 있는 스레드에 링크합니다.
 
fxsaber :
불행히도 모든 것이 훨씬 더 나쁩니다. 표시기가 완전히 부착되어 있습니다. 위의 세부 정보가 있는 스레드에 링크합니다.
짧은 이름 옆에 최신 데이터가없고 지표 도면이 없다는 것은 차트 가 그려지는 시점에서 지표 데이터가 아직 준비되지 않았으며 지표 자체가 계산 상태에 있음을 분명히 나타냅니다.
 
Slawa :
짧은 이름 옆에 최신 데이터가없고 지표 도면이 없다는 것은 차트가 그려지는 시점에서 지표 데이터가 아직 준비되지 않았으며 지표 자체가 계산 상태에 있음을 분명히 나타냅니다.
완전히 짧은 소스 코드를 제공했습니다. 설명이 맞다면 다행입니다. 그러나 문제가 다르다는 표시기를 실행하여 직접 확인할 수 있습니다.
 
Slawa :
짧은 이름 옆에 최신 데이터가없고 지표 도면이 없다는 것은 차트가 그려지는 시점에서 지표 데이터가 아직 준비되지 않았으며 지표 자체가 계산 상태에 있음을 분명히 나타냅니다.
저것들. 반복된 작업으로 데이터가 이미 계산되기 때문에 차트에 표시된 후 한 번 발생할 수 있습니다. 맞죠?
 
-Aleks- :
저것들. 반복된 작업으로 데이터가 이미 계산되기 때문에 차트에 표시된 후 한 번 발생할 수 있습니다. 맞죠?
아니요. 한 번이 아닐 수도 있습니다. 차트를 마우스로 앞뒤로 움직이면 그 순간 틱이 옵니다.
 
Slawa :
아니요. 한 번이 아닐 수도 있습니다. 차트를 마우스로 앞뒤로 움직이면 그 순간 틱이 옵니다.
그래픽 버퍼에서 이미 계산된 데이터가 매 틱마다 다시 계산되는 것은 아니라고 생각했는데....
 
Slawa :
아니요. 한 번이 아닐 수도 있습니다. 차트를 마우스로 앞뒤로 움직이면 그 순간 틱이 옵니다.
제 경우에는 CTRL + D 창에서 마우스를 움직이지 않고 깜박입니다.
 
demo.metaquotes.net:443에서 업데이트를 위해 데모 계정 을 열 수 없는 이유는 무엇입니까?
 
-Aleks- :
그래픽 버퍼에 이미 계산된 데이터가 매 틱마다 다시 계산되는 것은 아니라고 생각했는데....

1. 지표의 구현에 따라 다릅니다. 드물게 작성하면 마지막 값만 다시 계산됩니다.

2. 차트가 고정되어 있으면 막대의 수가 변경되지 않고 충돌이 발생하면 이전 버퍼가 그려집니다(즉, 공백이 없음).

 
fxsaber :
나는 하루 종일 분석에 보냈지만 아무 것도 나오지 않았습니다. 최대한 코드를 단순화하고 브랜치를 만들었습니다. 도와주세요!
GetMicrosecondCount()를 통해 OnCalculate()의 실행을 측정합니다. 수신된 값을 로그에 출력합니다. 최대 시간을 기억하고 로그에 최대 업데이트만 표시하는 것이 좋습니다. 이렇게 하면 더 명확해집니다.