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

 
Alexandr Sokolov :

내 표시기가 MQL5 코드를 실행하지 않습니다.

결론은 price == STO_LOWHIGH 이면 모든 것이 올바르게 작동하고 price == STO_CLOSECLOSE 이면 함수는 다음 항목만 할당한다는 것입니다.

... 루프 우회

그러나 정확히 동일한 기능이 MQL4에서 올바르게 작동합니다.

 
Alexandr Sokolov :

그러나 정확히 동일한 기능이 MQL4에서 올바르게 작동합니다.

그런 다음 어떤 종류의 배열 High[] Close[]

이것이 mql4에서 가져온 것이라면 mql5에서 사용할 수 없으며 사용자 정의된 경우... 아무 것도 가정할 수 없습니다.

 
Alexandr Sokolov :

Low/High 및 Close/Close 매개변수로 K 기간 내 일반적인 maxHigh 및 minLow 확률을 얻고 싶습니다.

초기화 시 낮음/높음은 잘 작동하지만 닫기/닫기는 작동하지 않습니다.

CopyBuffer()에 의해 수신된 배열에서 fmax() 또는 fmin()을 찾는 것이 더 쉽습니다.

 
Alexey Viktorov :

그런 다음 어떤 종류의 배열 High[] Close[]

이것이 mql4에서 가져온 것이라면 mql5에서 사용할 수 없으며 사용자 정의된 경우... 아무 것도 가정할 수 없습니다.

다음은 MQL5에 있는 이러한 버퍼의 내용입니다.

 int count = rates_total - prev_calculated, copied = 0 ; if (count < ( int )kperiod + ( int )dperiod + ( int )slowing) {count = ( int )kperiod + ( int )dperiod + ( int )slowing;};
   if (mode == m1 && price == STO_LOWHIGH ) {copied = CopyOpen ( _Symbol , PERIOD_CURRENT , 0 ,count,Open); if (copied != count) return ( 0 );};
   if (price == STO_LOWHIGH ) {copied = CopyHigh ( _Symbol , PERIOD_CURRENT , 0 ,count,High); if (copied != count) return ( 0 );};
   if (price == STO_LOWHIGH ) {copied = CopyLow ( _Symbol , PERIOD_CURRENT , 0 ,count,Low); if (copied != count) return ( 0 );};
   copied = CopyClose ( _Symbol , PERIOD_CURRENT , 0 ,count,Close); if (copied != count) return ( 0 );
 
Alexey Viktorov :

CopyBuffer()에 의해 수신된 배열에서 fmax() 또는 fmin()을 찾는 것이 더 쉽습니다.

전체 버퍼가 아니라 기간 K 내의 값이 필요합니다.
그렇지 않으면 감속 기간을 고려하여 데이터를 복사해야한다는 사실을 고려하여 구현하는 방법은 무엇입니까?

 
Alexandr Sokolov :

전체 버퍼가 아니라 기간 K 내의 값이 필요합니다.
그렇지 않으면 감속 기간을 고려하여 데이터를 복사해야한다는 사실을 고려하여 구현하는 방법은 무엇입니까?

어제 나는 높고 낮은 배열로만 똑같이했습니다.

   for (i = limit; i < rates_total; i++)
    {
     UpperBuf[i] = high[ ArrayMaximum (high, i-period, period)];
     LowerBuf[i] = low[ ArrayMinimum (low, i-period, period)];
     MidBuf[i] = (UpperBuf[i]+LowerBuf[i])/ 2 ;
    }

시계열 플립이 없습니다. 그렇다면 mql5에는 어떻게 내장되어 있습니까? 왼쪽의 제로 바.

또한 전체 표시기 버퍼를 복사할 수 있지만 지정된 막대에서 지정된 양만 복사할 수 있습니다. 하지만 fmax()와 fmin()은 제가 잘못 조언했습니다. 정확히 ArrayMaximum() 을 의미했습니다.

 
Alexandr Sokolov :

Low/High 및 Close/Close 매개변수로 K 기간 내 일반적인 maxHigh 및 minLow 확률을 얻고 싶습니다.

초기화 시 낮음/높음은 잘 작동하지만 닫기/닫기는 작동하지 않습니다.

시계열에 대한 표준 함수가 있습니다.

Maximum= iHigh ( _Symbol , _Period , iHighest ( _Symbol , _Period , MODE_HIGH ,num,startbar));
Minimum= iLow ( _Symbol , _Period , iLowest ( _Symbol , _Period , MODE_LOW ,num,startbar));
 
Taras Slobodyanik :

시계열에 대한 표준 함수가 있습니다.

본격적인 조언을 위해서만 처음부터 읽기를 시작하는 것이 좋습니다. 거기에서 첫 번째 질문과 더 나아가 모든 토론이 있었습니다.

 
Alexey Viktorov :

본격적인 조언을 위해서만 처음부터 읽기를 시작하는 것이 좋습니다. 거기에서 첫 번째 질문과 더 나아가 모든 토론이 있었습니다.

처음부터 내가 본 것 같습니다. 사람은 최소 / 최대를 찾기 위해 시계열을 통과합니다.
무리하지 않고 할 수 있습니다.

 void KValues( int i)
  {
   if (price == STO_LOWHIGH )
      {
      vhigh= iHigh ( _Symbol , _Period , iHighest ( _Symbol , _Period , MODE_HIGH ,kperiod,i));
      vlow= iLow ( _Symbol , _Period , iLowest ( _Symbol , _Period , MODE_LOW ,kperiod,i));
      }
   else
      {
      vhigh= iClose ( _Symbol , _Period , iHighest ( _Symbol , _Period , MODE_CLOSE ,kperiod,i));
      vlow= iClose ( _Symbol , _Period , iLowest ( _Symbol , _Period , MODE_CLOSE ,kperiod,i));
      }
  }
(확인하지 않았습니다)
 
Taras Slobodyanik :

처음부터 내가 본 것 같습니다. 사람은 최소 / 최대를 찾기 위해 시계열을 통과합니다.
무리하지 않고 할 수 있습니다.

(확인하지 않았습니다)

그는 확률적 가치가 필요합니다.

비록 ... 나는 그가 필요로하는 것에 대해 이미 혼란 스럽습니다. 확률적 조건처럼 보이지만 막대가 복사됩니다 ...