mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 27

 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

fxsaber , 2017.02.07 13:41

SymbolInfoTick은 Expert Advisors와 지표에서 다르게 작동합니다.

표시기에서 항상 OnCalculate에 대한 호출을 시작한 눈금을 반환합니다. 그리고 지표의 이러한 초기 틱은 건너 뛰지 않아야합니다 - 개발자의 이념. 문제는 이러한 진드기의 대기열 형성에 있습니다.

OnTick의 SymbolInfoTick Expert Advisor에서는 OnTick 실행을 시작한 틱을 반환하지 않고 현재 상태에 대한 본격적인 요청을 합니다.

 
fxsaber :

다시 말해:

틱 팩이 도착하면 표시기에 전체 팩의 첫 번째 틱이 표시되고 마지막 틱이 EA에 표시됩니다.

내가 올바르게 이해하고 있습니까?

 
Artyom Trishkin :

다시 말해:

틱 팩이 도착하면 표시기에 전체 팩의 첫 번째 틱이 표시되고 마지막 틱이 EA에 표시됩니다.

내가 올바르게 이해하고 있습니까?

네. OnCalculate는 대기열의 순서대로 배치의 매 틱마다 호출되지 않습니다.
 
fxsaber :
네. OnCalculate는 대기열 순서대로 배치의 모든 틱마다 호출되지 않습니다.

매 틱마다 ON? 그리고 당신은 글을 쓰지 않았다...

틱 패킷이 도착하면 수신 패킷의 틱 순서대로 표시기가 시작됩니다.

흥미롭게도 패키지가 새 막대를 여는 데 도착하면 표시기가 이 진드기 팩에 대해 몇 번이나 완전히 재계산합니까?

 
Artyom Trishkin :

매 틱마다 ON? 그리고 당신은 글을 쓰지 않았다...

아마 많이 쓰지는 않았을 것이다.

틱 패킷이 도착하면 수신 패킷의 틱 순서대로 표시기가 시작됩니다.

흥미롭게도 패키지가 새 막대를 여는 데 도착하면 표시기가 이 진드기 팩에 대해 몇 번이나 완전히 재계산합니까?

계산 이벤트는 모든 틱 에 생성됩니다. 따라서 지표에 대한 틱 대기열이 있습니다. 일정량에 도달하면 표시기가 너무 느리다는 경고가 로그에 전송됩니다.

막대 자체는 본질적으로 지표이며 계산 이벤트를 기반으로 형성됩니다. 따라서 TF M1이 여전히 10:15:00.020이고 버스트가 50ms 동안 도착하면 첫 번째 틱의 시간은 여전히 10:14:59.970입니다. 그리고 모든 표시기는 이 계산 이벤트에서 먼저 호출됩니다. 먼저 시계열 표시기를 호출한 다음 이러한 시계열이 있는 사용자 지정 표시기를 호출합니다. 저것들. 이 시나리오에서 10:15 막대는 아직 0으로 형성되지 않았습니다. 그리고 0 - 10:14.


또한, 계산 이벤트를 통해 팩이 풀리기 시작하면 10:15 막대도 나타납니다. 디테일한 것 같습니다.

 
fxsaber :

아마 많이 쓰지는 않았을 것이다.

계산 이벤트는 모든 틱 에 생성됩니다. 따라서 지표에 대한 틱 대기열이 있습니다. 일정량에 도달하면 표시기가 너무 느리다는 경고가 로그에 전송됩니다.

막대 자체는 본질적으로 지표이며 계산 이벤트를 기반으로 형성됩니다. 따라서 TF M1이 여전히 10:15:00.020이고 버스트가 50ms 동안 도착하면 첫 번째 틱의 시간은 여전히 10:14:59.970입니다. 그리고 모든 표시기는 이 계산 이벤트에서 먼저 호출됩니다. 먼저 시계열 표시기를 호출한 다음 이러한 시계열이 있는 사용자 지정 표시기를 호출합니다. 저것들. 이 시나리오에서 10:15 막대는 아직 0으로 형성되지 않았습니다. 그리고 0 - 10:14.


또한, 계산 이벤트를 통해 팩이 풀리기 시작하면 10:15 막대도 나타납니다. 디테일한 것 같습니다.

덕분에.
 

결과적으로 EA가 아직 형성되지 않은 막대의 틱을받는 것은 매우 정상입니다. 그러나 이것은 특별히 재현되는 미묘한 순간입니다. 시도해야합니다. 일반적으로 실제보다 이론에 가깝습니다.


추신: 속도가 편집증적인 경우 표시기(물론 막대 포함)를 사용하는 것은 선택 사항이 아닙니다. 모든 것이 고문에 있습니다.

 

fxsaber :

또한, 계산 이벤트를 통해 팩이 풀리기 시작하면 10:15 막대도 나타납니다. 디테일한 것 같습니다.

흥미로운 정보.
패킷이 도착했는지 확인하고 패킷의 첫 번째 틱을 무시하고 마지막 틱만 처리하는 것이 가능합니까?
 
바실리 푸쉬카요프 :
패킷이 도착했는지 확인하고 패킷의 첫 번째 틱을 무시하고 마지막 틱만 처리하는 것이 가능합니까?
CopyTicks 를 통한 OnCalculate에서.
 
fxsaber :
CopyTicks를 통한 OnCalculate에서.
감사합니다. 탑승하겠습니다.
사유: