ArrayMaximum/ArrayMinimum MQL4/MQL5

 

Забавная ситуация. Вроде должно быть одинаково, но смотрим...

MQL4

int  ArrayMinimum(
   const void&   array[],             // массив для поиска
   int           count=WHOLE_ARRAY,   // количество проверяемых
   int           start=0              // с какого индекса начинаем поиск
   );

MQL5

int  ArrayMinimum(
   const void&   array[],             // массив для поиска
   int           start=0,             // с какого индекса начинаем поиск
   int           count=WHOLE_ARRAY    // количество проверяемых
   );

Костыль

double ArrayMax(const int &array[],const int start,const int num)
{
     #ifdef __MQL5__
          return( ArrayMaximum(array, start, num) );
     #else
          return( ArrayMaximum(array, num, start) );
     #endif
}

double ArrayMin(const int &array[],const int start,const int num)
{
     #ifdef __MQL5__
          return( ArrayMinimum(array, start, num) );
     #else
          return( ArrayMinimum(array, num, start) );
     #endif
}

Хотя хотелось бы поменьше наступать на подобные грабли.

 
Konstantin Nikitin:

Забавная ситуация. Вроде должно быть одинаково, но смотрим...

MQL4

MQL5

Костыль

Хотя хотелось бы поменьше наступать на подобные грабли.

Вы только увидели? Что поделаешь... В MQL-4 была допущена ошибка, которую исправили в MQL-5. Лишнее доказательство, что MQL-4 и MQL-5 - разные языки.

 
STARIJ:

Вы только увидели? Что поделаешь... В MQL-4 была допущена ошибка, которую исправили в MQL-5. Лишнее доказательство, что MQL-4 и MQL-5 - разные языки.

Да как-то не в давался в это, а тут понадобилось попроще найти max/min и стал писать в MQL4, но крос-платформенный код (как таковое все коды пишу так) и обратил внимание что не логично просит указать вводные. Вот и решил взглянуть в оба варианта.

Причина обращения: