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

 
Комбинатор :
이제 질문에 주의하십시오. 터미널이 이러한 방식으로 계산된 데이터를 즉시 다시 그리도록 하는 방법은 무엇입니까?

OnCalculate 에 없는 버퍼에서 데이터를 가져옵니다.

OnCalculate에서 최소 그리기 시간은 1분입니다.

틱 표시기는 모든 틱을 그립니다.

 
comp :
그렇지 않은 것 같습니다.

그러나 네 번째 ChartRedraw에서는 100%가 필요한 작업을 수행합니다.

네, 그리고 상위 5위 안에 드는 것은 정상입니다.

따라서 두 플랫폼 모두에서 ChartRedraw가 제대로 작동합니다.

 

CHARTEVENT_CHART_CHANGE가 도착하면 나는 때때로 1초 동안 지속되는 계산을 합니다. 예를 들어 계산 중에 차트를 이동하면 계산 후 CHARTEVENT_CHART_CHANGE가 대기열에서 다시 호출됩니다.

이벤트 큐에 무언가가 있다는 것을 계산하는 동안 알아낼 수 있습니까? 그러면 더 이상 관련이 없는 계산을 수행할 수 없고 중단하고 새 계산을 시작할 수 있습니까?

예를 들어, 매우 무거운 계산 부분에서 모든 곳에서 IsStopped() 에 대한 확인을 누르면 계산을 기다리지 않고 EA가 즉시 닫힙니다.

그것은 비슷하지만 닫는 이벤트가 아니라 ChartEvent와 비슷합니다.

 
comp :

CHARTEVENT_CHART_CHANGE가 도착하면 나는 때때로 1초 동안 지속되는 계산을 합니다. 예를 들어 계산 중에 차트를 이동하면 계산 후 CHARTEVENT_CHART_CHANGE가 대기열에서 다시 호출됩니다.

이벤트 큐에 무언가가 있다는 것을 계산하는 동안 알아낼 수 있습니까? 그러면 더 이상 관련이 없는 계산을 수행하고 중단하고 새 계산을 시작할 수 없습니까?

예를 들어 매우 무거운 계산 부분에서도 IsStopped()가 어디에나 있는지 확인하면 계산을 기다리지 않고 EA가 즉시 닫힙니다.

그것은 비슷하지만 닫는 이벤트가 아니라 ChartEvent와 비슷합니다.


두 번째 처리 스레드 만들기(예: ms 타이머 형식)

counter==XXX 플래그가 설정되고 CHARTEVENT_CHART_CHANGE에서 증분되는 경우 계산을 수행하는 것입니다.

이런 식으로 전체 ChartEvent 대기열을 매우 빠르게 긁어 모아 플래그를 설정하고 이와 동시에 타이머가 이 플래그를 가져와 계산합니다.

---

동시에 같은 타이머에서 카운터 플래그의 값을 확인하십시오. 카운터의 현재 값이 계산이 시작된 값보다 크면 계산을 중단할 수 있습니다. 즉, 이러한 IsNewChanged

 
o_O :

이런 식으로 전체 ChartEvent 대기열을 매우 빠르게 긁어 모아 플래그를 설정하고 이와 동시에 타이머가 이 플래그를 가져와 계산합니다.

ChartEvent 및 Timer 이벤트가 병렬로 실행된다는 말씀이신가요?
 

서비스 데스크는 이러한 성명을 발표했습니다.

SetIndexBuffer делается однократно на вызове OnInit

OnInit 및/또는 반복적으로 SetIndexBuffer를 사용 하지 않는 사람이 있습니까? 저는 항상 MT4를 사용합니다. 불행히도 이것은 MT5에서 수행할 수 없습니다.

 
comp :
ChartEvent 및 Timer 이벤트가 병렬로 실행된다는 말씀이신가요?

그것들이 순차적으로 실행되더라도 - 적어도 이것을 사용하는 것은 당신을 괴롭히지 않습니다.

즉시 전체 ChartEvent를 가져와 한 번만 주문할 수 있습니다.

---

타이머 및 차트 이벤트의 병렬 처리에 대한 질문은 적절합니다.

서비스 데스크에 문의하십시오.

 
o_O :

그것들이 순차적으로 실행되더라도 - 적어도 이것을 사용하는 것은 당신을 괴롭히지 않습니다.

즉시 전체 ChartEvent를 가져와 한 번만 주문합니다.

---

타이머 및 차트 이벤트의 병렬 처리에 대한 질문은 적절합니다.

서비스 데스크에 문의하십시오.

아무도 문서를 읽지 않습니다 ...

클라이언트 터미널은 새로운 이벤트를 해당 공개 차트로 보냅니다. 이벤트는 차트( 차트 이벤트 ) 또는 mql5 프로그램( 사용자 이벤트 )에 의해 생성될 수도 있습니다. 차트에서 그래픽 개체를 생성 및 삭제하기 위한 이벤트 생성은 차트 속성 CHART_EVENT_OBJECT_CREATECHART_EVENT_OBJECT_DELETE 를 설정하여 활성화 및 비활성화할 수 있습니다. 각 mql5 프로그램과 각 차트에는 새로 도착하는 모든 이벤트가 추가되는 자체 이벤트 대기열이 있습니다.

프로그램은 실행 중인 차트에서만 이벤트를 수신합니다. 모든 이벤트는 수신된 순서대로 하나씩 처리됩니다 . 큐에 이미 NewTick 이벤트가 있거나 이 이벤트가 처리 중인 경우 새 NewTick 이벤트는 mql5 프로그램의 큐에 넣지 않습니다. 마찬가지로, ChartEvent 이벤트가 이미 mql5 프로그램 의 대기열에 있거나 이러한 이벤트가 처리 중인 경우 이 유형의 새 이벤트는 대기열에 포함되지 않습니다. 타이머 이벤트는 같은 방식으로 처리됩니다. 타이머 이벤트가 대기열에 있거나 이미 처리 중인 경우 새 타이머 이벤트는 대기열에 포함되지 않습니다.

 
Slawa :

아무도 문서를 읽지 않습니다 ...

그런 다음 이벤트에 대한 계산을 중단하면 완료되지 않습니다.
 
Slawa :

아무도 문서를 읽지 않습니다 ...

그건 오래전 일이야