void TickTimeSeries::tick_proceeed(MqlTick &tick) //count bars = actual array index { last_tick=tick; if(tick.last==0) { return; } last=tick.last; if(disable_ticks) {return;} if(enable_min) //min always by last { minutes[count_min]=tick.last; ArrayRefresh(minutes,count_min); if(TimeLocal()-minute_datetime>=60) { minute_datetime=TimeLocal(); count_min++; } } lasts[count_bars]=last; ArrayRefresh(lasts,count_bars); if((TimeLocal()-init_time)<period_sec) { if(last>current_high) { current_high=last; } if(last<current_low) { current_low=last; } count_ticks++; } else if((TimeLocal()-init_time)>=period_sec) //nastupil novii interval = formiruem sve4ku proshlogo intervala { ticks_mrate[count_bars].open=current_open; ticks_mrate[count_bars].close= last; ticks_mrate[count_bars].high= current_high; ticks_mrate[count_bars].low = current_low; ticks_mrate[count_bars].time= init_time; ticks_mrate[count_bars].tick_volume=count_ticks; if(bars_include_volume) { MqlRates mqlrate[]; CopyRates(symbol,PERIOD_M1,0,2,mqlrate); ArraySetAsSeries(mqlrate,true); if(last_tick_datetime==mqlrate[0].time) { ticks_mrate[count_bars].real_volume=mqlrate[0].real_volume-last_tick_vol; } else { ticks_mrate[count_bars].real_volume=(mqlrate[1].real_volume-last_tick_vol)+mqlrate[0].real_volume; } last_tick_vol=mqlrate[0].real_volume; last_tick_datetime=mqlrate[0].time; } init_time =TimeLocal(); count_ticks =0; count_bars++; current_open =last; current_high =last; current_low =last; lasts[count_bars] =last; //init fill rate on new interval ticks_mrate[count_bars].open= last; ticks_mrate[count_bars].close= last; ticks_mrate[count_bars].high= last; ticks_mrate[count_bars].low = last; ticks_mrate[count_bars].time= TimeLocal(); refresh_tick_bars_count(ticks_mrate,count_bars); } }
Выкладываю основную часть кода, чтобы была понятна логика
писал года 4 назад, код неоч, но вроде работает. Заполняет в реальном времени массив MqlRAtes ticks_mrate охлс барами секундного интервала, периодичность которого заданна в period_sec, дополнительно в массив Lasts сохраняет только клоузы

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура исторических данных
- www.mql5.com
Структура исторических данных - Структуры данных - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Уважаемые форумчане!
Уже всю голову сломал как написать код, чтобы вытащить массив с секундными таймфреймами. В идеале нужен массив цен с 3сек таймфреймом... может есть гуру, кто поделится кодом такого массива...
Буду очень благодарен))
Да и не только я, наверное...