ArrayMaximum

 

Решил переделать эксперт MQL5 -> MQL4 . Работает но как-то странно. Оказывается 

MQL5 

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

MQL4

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

Называется поймай меня. Разработчики играют с нами в квесты :)

Какие квесты знаете вы?

 
Dmitrii Troshin:

Называется поймай меня. Разработчики играют с нами в квесты :)

Просто изначально в MT4 было сделано неправильно.  Сначала принято указывать начальный индекс, а уже потом число элементов.  И кстати отличие не только в этом.  Константа WHOLE_ARRAY раньше была = 0, что тоже неправильно (нелогично), т.к. нулевое число элементов должно означать, что обрабатывать нечего.  В новом языке избавились от этих недостатков.

Для выявления и устранения несоответствий достаточно написать несколько небольших макросов и доп.функций.