Скачать MetaTrader 5

ArrayMinimum() - Не работает?! Подскажите пожалуйста!

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Знаете ли вы, что в MQL5 появились классы?
Adept
119
Adept 2015.09.01 00:15 

Всем привет! Писал накопитель свечек 2-х секундного таймфрема для FORTS и столкнулся с проблемой: не могу получить индекс наименьшего элемента в массиве, используя функцию ArrayMinimum(), при том, что функция ArrayMaximum работает как нужно:

 

 Заполняю поля структуры MqlRates mrate[] данными из массива тиков last[] (в нем тики за последние 2 секунды), и с помощью Print хочу посмотреть что получилось (каждые две секунды советник печатает Open, high,low,Close последней 2-секундной свечки):

 

      mrate[count_bars].open=init_bar_price;
      

mrate[count_bars].low=last[ArrayMinimum(last,0,WHOLE_ARRAY)];       mrate[count_bars].high=last[ArrayMaximum(last,0,WHOLE_ARRAY)];

        mrate[count_bars].close=ticks1[count_ticks-1].last;       mrate[count_bars].time = init_time;       count_bars=count_bars+1;       init_bar_price=ticks1[count_ticks-1].last;       init_time=last_tick.time;       count_ticks=0;       ZeroMemory(ticks1);       ZeroMemory(last);       ticks1[count_ticks].ask=last_tick.ask;       ticks1[count_ticks].bid=last_tick.bid;       ticks1[count_ticks].last=last_tick.last;       count_ticks=count_ticks+1;         
      Print("Open", mrate[count_bars-1].open);
      Print("High", mrate[count_bars-1].high);
      Print("Low", mrate[count_bars-1].low);
      Print("Close",mrate[count_bars-1].close);
      Print("Time", mrate[count_bars-1].time);

 Вот что пишет:

 

 То есть, ArrayMaximum() отработал на массиве last[] как нужно, а ArrayMinimum() на том же массиве зафейлил.

 ЧЯДНТ?  Может есть какой-то нюанс, который я в силу нубства упустил? 

Помогите разобраться, пожалуйста. 

Andrey Khatimlianskii
56185
Andrey Khatimlianskii 2015.09.01 03:17  
А вы для начала посмотрите, что у вас в массиве last. Похоже на то, что где-то нолик остался...
Adept
119
Adept 2015.09.01 04:18  
Andrey Khatimlianskii:
А вы для начала посмотрите, что у вас в массиве last. Похоже на то, что где-то нолик остался...

Ахах, какой же я деревянный, позорище)) Точно! Функция видит незанятые ячейки с нулевыми значениями и возвращает всегда ноль)) 

 

Большое спасибо! :)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий