초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 534

 
MikeZv :

Vladimir, 첫 번째 질문에 답변해 주셔서 감사합니다. 이 기능을 놓쳤습니다.

MT4와 MT5에 동일한 표시기를 넣었습니다(물론 코드는 각 플랫폼에 맞게 조정됨).
제로바까지는 같은 값을 가지므로 한쪽 끝에서 볼 수 있습니다... :)
그리고 MT4에서 현재 막대의 계산을 끄면 MT5에서 현재 막대 아래에 아무 것도 그려지지 않습니다. 잘못된 값입니다.

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

초보자의 질문

카르푸토프 블라디미르 , 2016.03.08 15:13

... 디버깅 시간을 확인하십시오 - 시계열 배열 time[i] 에 어떤 이 포함되어 있는지 - 그러면 막대 계산을 시작하는 끝과 "0" 막대가 있는 위치를 이해할 수 있습니다.


 
MikeZv :
그런 수표를 넣는 방법은 무엇입니까?

MetaEditore 에 중단점을 추가하고 디버깅을 시작합니다. 중단점에 중단이 있으면 시계에 time[0]을 추가합니다.

디버깅

 
Karputov Vladimir :

MetaEditore에 중단점을 추가하고 디버깅을 시작합니다. 중단점에 중단이 있으면 시계에 time[0]을 추가합니다.


이미 코드에 출력을 삽입했습니다.

MT4 2016.03.08 18:37:04.710 mvt_Vlt EURUSD,H1: 시간[0] = 2016.03.08 17:00:00 시간[rates_total-1] = 1971.01.04 00:00:00

MT5 2016.03.08 18:36:23.565 mvt_Vlt (EURUSD,H1) 시간[0] = 2010.01.04 00:00:00 시간[rates_total-1] = 2016.03.08 07:00:0

MT5 코드 ArraySetAsSeries 에 삽입(시간, 참);
이제 출력:

MT5 2016.03.08 18:45:05.402 mvt_Vlt (EURUSD,H1) 시간[0] = 2016.03.08 17:00:00 시간[rates_total-1] = 2010.01.04 00:00:00

가격 배열도 할 수 있습니까?


 
MikeZv :
이미 코드에 출력을 삽입했습니다.

MT4 2016.03.08 18:37:04.710 mvt_Vlt EURUSD,H1: 시간[0] = 2016.03.08 17:00:00 시간[rates_total-1] = 1971.01.04 00:00:00

MT5 2016.03.08 18:36:23.565 mvt_Vlt (EURUSD,H1) 시간[0] = 2010.01.04 00:00:00 시간[rates_total-1] = 2016.03.08 07:00:0
이제 무엇을 해야 할까요?

두 가지 버전의 표시기에 ArraySetAsSeries 를 추가하십시오. 계산에 사용하는 배열의 경우: high[], low[] 및 일시적으로 time[] 배열의 경우 - "0" 막대가 어디에 있는지 이해하는 데 도움이 됩니다. 따라서 두 버전의 "0" 막대는 차트의 같은 면(ArraySetAsSeries에서 설정한 항목에 따라 오른쪽 또는 왼쪽)에 있으며 표시기의 동일한 계산된 부분을 얻게 됩니다.

추가: 내가 입력하는 동안 올바른 방법을 찾았습니다 :)

 
Karputov Vladimir :


추가: 내가 입력하는 동안 올바른 방법을 찾았습니다 :)

경로를 더듬었지만 여전히 잘못된 것으로 간주됩니다. :)
MT5 코드에 삽입:
   ArraySetAsSeries (ExtCalcVlBuffer, true ); 
   ArraySetAsSeries (ExtMovingBuffer, true );
   ArraySetAsSeries (ExtStdDevBuffer, true );
   ArraySetAsSeries (time, true );             
   ArraySetAsSeries (low, true );              
   ArraySetAsSeries (high, true ); 

출력:

이것은 ExtCalcVlBuffer만 표시하고 평균과 편차를 계산하지 않습니다 ...
그리고 여전히 현재 표시줄에 표시되지만 그렇지는 않습니다.

 
MikeZv :
...

그리고 여전히 현재 표시줄에 표시되지만 그렇지는 않습니다.

왜 그래야 하지?
 
Karputov Vladimir :
왜 그래야 하지?
나는 그것을 껐다 i<rates_total-1
 
MikeZv :
나는 그것을 껐다 i<rates_total-1
왜?!
 
Karputov Vladimir :
왜?!
그리고 현재 값에 의존할 필요가 없습니다. 프로세서를 로드하는 것은 헛된 일이며 이 값은 필요하지 않습니다.
 
MikeZv :
그리고 현재 값에 의존할 필요가 없습니다. 프로세서를 로드하는 것은 헛된 일이며 이 값은 필요하지 않습니다.

따라서 이러한 위시리스트를 즉시 지정해야 합니다. :).

상황은 다음과 같습니다. 차트에 막대가 있으면 표시기 버퍼 의 셀에 해당합니다. 이 셀에 무언가를 쓸 때까지 쓰레기는 이 셀에 저장됩니다.