Вы передаете integer массив вместо double. Формат функции:
int ArrayMinimum(double array[], int count=WHOLE_ARRAY, int start=0)
Поставьте double time[3]; и все заработает.
Дело в том, что в MQL4 нет типа данных unsigned int, а текущее значение количества секунд, прошедших с 1 января 1970 года уже превысило максимальное значение для целого числа со знаком. То есть, для функции ArrayMinimum в Вашем случае был приготовлен массив из не очень больших отрицательных чисел. Поэтому сравнение производится некорректно.
int start() { //---- datetime x=TimeCurrent(); int c=x; Alert((x==c)); //---- return(0); }
В переменные int входит время до 2038.01.19 03:14 включительно
Meat, мы исправим такое поведение функции ArrayMinimum. Спасибо за замечание.
Странно...
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот такой код:
Получаем -1.
Видимо функция некорректно работает с большими числами. Причём неважно какой тип массива указывается, можно указать datetime, но получим то же самое. А вот если одному из элементов присвоить какое-нибудь маленькое значение, либо вообще не присваивать (оставить его нулевым), то функция отработает нормально и вернёт индекс этого элемента.
Кстати ArrayMaximum() в аналогичной ситуации ведёт себя нормально