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

 
sss20192 :

데이터 창 에서 지표에는 다른 데이터가 있습니다. Expert Advisor를 H1 차트에 첨부하면 M5 M15 및 H1 기간의 데이터를 복사합니다.


int    CopyBuffer (
   int        indicator_handle,     // handle индикатора
   int        buffer_num,           // номер буфера индикатора
   int        start_pos,             // откуда начнем 
   int        count,                 // сколько копируем
   double     buffer[]               // массив, куда будут скопированы данные
   );
버퍼(0이 있음)와 복사하는 배열은 모두 동일하며 1개의 요소로 시작하고 1개의 요소를 복사하며 배열의 방향도 중요할 수 있습니다.

 
zfs :
버퍼(0이 있음)와 복사하는 배열은 모두 동일하며 1개의 요소로 시작하고 1개의 요소를 복사하며 배열의 방향도 중요할 수 있습니다.

네, 세 가지 다른 tamframe에서 표시기의 첫 번째 버퍼입니다. 그리고 지금은 로그에 데이터를 출력하기 위해 동일한 배열을 사용합니다.

ArraySetAsSeries true 및 false 설정을 시도했습니다. 여전히 때때로 -4.53e-32와 같은 이상한 데이터가 로그에 나타납니다.

 

여러분, 구현 방법을 알려주시겠습니까?

배열이 있고 거기에 값이 기록됩니다. 비슷한 값이 포함되어 있으면 버그입니다.

 
sss20192 : -4.53e-32와 같은 이상한 데이터가 여전히 로그에 가끔 나타납니다.
좋은 방법이라면 코드 에 핸들 생성 성공 CopyBuffer () 함수 성공 모두에 대한 검사를 삽입해야 합니다. 그렇지 않으면 우리는 이 쓰레기 값이 CopyBuffer () 함수의 성공적인 작업 결과인지 또는 함수가 "원하는 대로" 작동하지 않았는지 여부조차 모릅니다.
 
Top2n : 배열이 있고 거기에 값을 쓰고 비슷한 값을 포함하고 있으면 중단됩니다.
원하는 값을 준수하는지 확인 하여 배열 요소 검색을 정렬해야 합니다. 열거에 일치하는 항목이 없으면 배열에 값을 씁니다.
 
Yedelkin :
원하는 값을 준수하는지 확인 하여 배열 요소 검색을 정렬해야 합니다. 열거에 일치하는 항목이 없으면 배열에 값을 씁니다.
하나의 배열에서 두 개의 인덱스를 비교하는 방법은 무엇입니까?
 
Top2n :
하나의 배열에서 두 개의 인덱스를 비교하는 방법은 무엇입니까?

글을 자세히 읽고 싶지 않으신가요? >> MQL5 프로그래밍의 기초 - 어레이

어레이와 관련된 모든 경우에 대한 모든 세부 정보가 있습니다. 당신은 확실히 충분해야합니다. ))

 
tol64 :

글을 자세히 읽고 싶지 않으신가요? >> MQL5 프로그래밍의 기초 - 어레이

어레이와 관련된 모든 경우에 대한 모든 세부 정보가 있습니다. 당신은 확실히 충분해야합니다. ))

도움을 주신 모든 분들께 감사드립니다!) 나는 당신에게 작별 인사를하지 않습니다)))
 
Yedelkin :
좋은 방법이라면 코드 에 핸들 생성 성공 CopyBuffer () 함수 성공 모두에 대한 검사를 삽입해야 합니다. 그렇지 않으면 우리는 이 쓰레기 값이 CopyBuffer () 함수의 성공적인 작업 결과인지 또는 함수가 "원하는 대로" 작동하지 않았는지 여부조차 모릅니다.

확인했습니다. 핸들은 정상적으로 생성되며 인덱스는 10, 11, 12입니다. 그리고 CopyBuffer 함수 는 ERR_INDICATOR_DATA_NOT_FOUND 오류를 제공합니다. 이러한 오류가 발생할 수 있는 이유는 선택한 쌍이 시장 개요 창에 있고 이러한 통화 쌍의 차트가 열려 있습니다.

또한 CopyBuffer 실행 결과를 나타내는 변수를 생성하고,

int aaa = CopyBuffer..., 값 1을 표시합니다. 함수에 지정된 대로 하나의 값이 복사되었다고 가정합니다.


MA 버퍼를 복사할 때 동일한 오류가 나타나지만 올바른 값이 배열에 기록됩니다.

올바른 버퍼 복사의 예를 보여주세요
 

 
sss20192 : 확인했습니다. 핸들은 정상적으로 생성되며 인덱스는 10, 11, 12입니다. 그리고 CopyBuffer 함수 는 ERR_INDICATOR_DATA_NOT_FOUND 오류를 제공합니다. 이러한 오류가 발생할 수 있는 이유는 선택한 쌍이 시장 개요 창에 있고 이러한 통화 쌍의 차트가 열려 있습니다.

또한 CopyBuffer 실행 결과를 나타내는 변수를 생성하고,

int aaa = CopyBuffer..., 값 1을 표시합니다. 함수에 지정된 대로 하나의 값이 복사되었다고 가정합니다.

MA 버퍼를 복사할 때 동일한 오류가 나타나지만 올바른 값이 배열에 기록됩니다.

올바른 버퍼 복사의 예를 보여주세요

네, CopyBuffer() 함수 설명에 바로 버퍼를 복사하는 예가 있습니다. 라인에 주목

 //--- check if all data calculated
     if ( BarsCalculated (ma_handle)<rates_total) 

//--- try to copy
     if ( CopyBuffer (ma_handle, 0 , 0 ,to_copy,MABuffer)<= 0 ) return ( 0 );
 
사유: