모든 거래의 테이블. MQL5를 통한 액세스 - 페이지 5

 
prostotrader :

중복을 방지하는 코드는 다음과 같습니다.

그럼 :) 코드에 틱이 손실됩니다.
 
Yury Kulikov :
그럼 :) 코드에 틱이 손실됩니다.

:) 그러나 어떤 이유로 그들은 불필요합니다 :)

Yuriy님, 감사합니다. 지금 바로 살펴보겠습니다.

 

실제로 COPY_TICKS_TRADE로 전환하면 틱 믹싱 오류가 사라지지만 동시에 COPY_TICKS_TRADE 모드에서 플래그를 얻을 수 없습니다.

  • TICK_FLAG_BUY – 매수 거래의 결과 로 틱이 생성되었습니다.
  • TICK_FLAG_SELL – 매도 거래의 결과로 발생한 틱

 
Karputov Vladimir :

실제로 COPY_TICKS_TRADE로 전환하면 틱 믹싱 오류가 사라지지만 동시에 COPY_TICKS_TRADE 모드에서 플래그를 얻을 수 없습니다.

  • TICK_FLAG_BUY – 매수 거래의 결과 로 틱이 생성되었습니다.
  • TICK_FLAG_SELL – 판매 거래의 결과로 발생한 틱

실제 깃발이 오면 (지금 실제에서 테스트 중입니다)
 
Yury Kulikov :
그럼 :) 코드에 틱이 손실됩니다.

유리야, 내 지표를 봐 (잘 봐)

나는 역사에서 그들을 보지 않고 진드기가 나타나기를 기다리고 있습니다.

나는 새로운 진드기가 나타날 때까지 매번 복사합니다

 int copied= CopyTicks ( Symbol (),ticks, COPY_TICKS_TRADE ,start_time, 0 );

"0" - 다시 수신된 틱 수.

복사된 = 0이면 새 눈금이 없습니다.

이 "백업"을 제거하면

 if (start_time== ulong (ticks[copied- 1 ].time_msc)) return ;

그것은 분명히 중복이 될 것입니다.

과제는 틱 기록 을 보는 것이 아니라 실시간으로 거래 테이프를 표시하는 것입니다.

 
prostotrader :
실제 깃발이 오면 (지금 실제에서 테스트 중입니다)

네 맞습니다. COPY_TICKS_INFO 와 혼동했습니다. .

추가됨:

그러나 COPY_TICKS_ALL 모드에서는 일부 눈금이 뒤죽박죽으로 나타납니다 .

 
prostotrader :

유리야, 내 지표를 봐 (잘 봐)

코드에 글자가 너무 많습니다. :)

알고리즘은 간단합니다. OnCalculate() 에서 실제 볼륨이 변경된 경우 마지막 틱을 로드하고 마지막에 발생한 틱(time_msc의 동일한 값)을 기억하여 다음에 CopyTicks()가 호출될 때, 이 눈금은 계산에서 잘립니다.

 
Yury Kulikov :

코드에 글자가 너무 많습니다. :)

알고리즘은 간단합니다. OnCalculate()에서 실제 볼륨이 변경된 경우 마지막 틱을 로드하고 마지막에 발생한 틱(time_msc의 동일한 값)을 기억하여 다음에 CopyTicks()가 호출될 때, 이 눈금은 계산에서 잘립니다.

덕분에 문제 해결 방법을 알 것 같습니다...
 
Yury Kulikov :

코드에 글자가 너무 많습니다. :)

알고리즘은 간단합니다. OnCalculate()에서 실제 볼륨이 변경된 경우 마지막 틱을 로드하고 마지막에 발생한 틱(동일한 time_msc 값)을 기억하여 다음에 CopyTicks()가 호출될 때 이러한 틱은 계산에서 잘립니다.

Yuriy, 훌륭한 조언에 다시 한 번 감사드립니다.

별짓을 다했는데 잘되는데 3시간 넘게 하는 상황은 전혀 없네요

설명했어요 :)

 

드디어! 효과가 있었다!

모든 것이 정확하고 틱이 더 이상 복제되거나 손실되지 않습니다.

ZIP 파일의 데모 및 지하실에서 디버그 버전을 확인하려는 사람

파일: