MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1840

 
Vitaly Muzichenko # :

어레이에 복사

배열에서 최대값을 얻는 방법은 무엇입니까?

또한 CopyHigh를 복사하고 이 배열에서 최대값을 가져옵니다. 나는 ... 이것을 통해 이해하지만 다른 옵션은 루프의 열거에 의해서만 가능합니다.

 
Alexey Viktorov # :

또한 CopyHigh를 복사하고 이 배열에서 최대값을 가져옵니다. 나는 ... 이것을 통해 이해하지만 다른 옵션은 루프의 열거에 의해서만 가능합니다.

그래서 했는데, 이것은 추가 사본입니다. 루프를 통해서도 옵션이 아닙니다.

CopyHigh 를 통해 떠나겠습니다.

 
Vitaly Muzichenko # :

그래서 했는데, 이것은 추가 사본입니다. 루프를 통해서도 옵션이 아닙니다.

CopyHigh 를 통해 떠나겠습니다.

나는 이것에 대해 오랫동안 생각해왔다. 그리고 MqlRates 배열에서 최소/최대값을 찾아야 하는 경우 필요한 데이터를 다른 이중 배열에 복사하는 것이 더 낫다는 결론에 도달했습니다.

 
Vitaly Muzichenko # :

어레이에 복사

배열에서 최대값을 얻는 방법은 무엇입니까?

CopySymb[i].high
 
Vitaly Muzichenko # :

어레이에 복사

배열에서 최대값을 얻는 방법은 무엇입니까?

코드에서 직접 작성할 수 있습니다.

 MqlRates CopySymb[];
double maxHigh;
int iMaxHi, len;  

if ((len = CopyRates (mSymbol, PERIOD_CURRENT , 0 , 6 ,CopySymb))< 0 ) return ;

iMaxHi = 0;
maxHigh = CopySymb[ 0 ].high;

for ( int i = 1 ; i < len; i++)
   if (CopySymb[i].high > maxHigh) {
    maxHigh = CopySymb[i].high;
    iMaxHi = i;
  }

Print (iMaxHi, ": " , maxHigh);

그리고 ArrayMaximum이 MqlRates 배열에서 작동하지 않아도 괜찮습니다.

 
Mihail Matkovskij # :

코드에서 직접 작성할 수 있습니다.

그것에 대해 생각한다면?

이 짧은 코드에도 잔인한 버그가 있습니다.

 
Maxim Kuznetsov # :

그것에 대해 생각한다면?

이 짧은 코드에도 잔인한 버그가 있습니다.

온라인으로 코드를 작성했습니다. 모든 오류처럼 보고 수정했습니다. 코드를 스크립트에 붙여넣으면 컴파일러가 오류를 표시합니다.

 
Mihail Matkovskij # :

온라인으로 코드를 작성했습니다. 모든 오류처럼 보고 수정했습니다. 코드를 스크립트에 붙여넣으면 컴파일러가 오류를 표시합니다.

이것은 컴파일러에서 처리되지 않습니다. CopyXXX의 결과에는 0과 EMPTY_VALUE가 모두 포함될 수 있다는 점만 알면 됩니다. 드물지만 적절합니다. 그리고 EMPTY_VALUE는 DBL_MAX - 최대값입니다. 당신은 그를 찾을 것입니다

외부에서받은 값의 정확성에 대한 확인이 없습니다.

 
Maxim Kuznetsov # :

이것은 컴파일러에서 처리되지 않습니다. CopyXXX의 결과에는 0과 EMPTY_VALUE가 모두 포함될 수 있다는 점만 알면 됩니다. 드물지만 적절합니다. 그리고 EMPTY_VALUE는 DBL_MAX - 최대값입니다. 당신은 그를 찾을 것입니다

외부에서받은 값의 정확성에 대한 확인이 없습니다.

CopyRates가 상위 배열에서 0, EMPTY_VALUE 또는 DBL_MAX를 반환할 것이라고 생각하십니까? 진심이야? :)

이런 일이 발생하는 예를 보여줄 수 있습니까?

 
Mihail Matkovskij # :

CopyRates가 상위 배열에서 0, EMPTY_VALUE 또는 DBL_MAX를 반환할 것이라고 생각하십니까? 진심이야? :)

이런 일이 발생하는 예를 보여줄 수 있습니까?

CopyHigh로 채워진 이중 배열에서 0, EMPTY_VALUE 또는 DBL_MAX에 도달하면 ArrayMaximum이 어떻게 작동합니까?

당신의 진술에서 논리는 어디에 있습니까?