Есть потребность в своих таймфрэймах, на произвольных промежутках времени, например (45_MINUTES, 5_DAY, 10_DAY).
Задача, в целом несложная, но, может быть, кто-то уже заморачивался и сделал прекрасный класс для mql5,
который бы позволял получить массивы данных под заданные параметры?
Само по себе это не сложно (15+15+15 = 45). Вопрос в другом. Нужны ли только цены открытия-закрытия или движение внутри этой свечи? Но и это не проблема ))))
Само по себе это не сложно (15+15+15 = 45). Вопрос в другом. Нужны ли только цены открытия-закрытия или движение внутри этой свечи? Но и это не проблема ))))
В рамках DSP это называется downsampling, в произвольных отношениях есть в готовом виде в Matlab, можно выкинуть в DLL. Если делать самому, надо фильтровать высокие составляющие, потом прореживать. У меня класса нет, ибо не просили )
Само по себе это не сложно (15+15+15 = 45). Вопрос в другом. Нужны ли только цены открытия-закрытия или движение внутри этой свечи? Но и это не проблема ))))
Да нужны только стандартные цены OHLC, чтобы можно было данные скормить индикаторам. Видимо, придется написать велосипед самому.
Да нужны только стандартные цены OHLC, чтобы можно было данные скормить индикаторам. Видимо, придется написать велосипед самому.
Да это не сложно. У меня есть сова, работающая на ТФ H1,5, и рисующая свои свечи.
В принципе, я тоже уже достаточно давно затрагивал вопрос о штатной возможности использования кастомных ТФ, в придачу начинающих отсчёт от кастомного времени, но у МТ свои приоритеты, и прислушиваются они к нам крайне редко...
Так что пишите самостоятельно. Может получится не велосипед, а НЛО. Поделитесь? )))))))))))
Да нужны только стандартные цены OHLC, чтобы можно было данные скормить индикаторам. Видимо, придется написать велосипед самому.
Можно обойтись несложной функцией, которая из массива тиков tck[] формирует массив баров brs[] с таймфреймом tf в секундах.
int CalculateNewTF(MqlTick &tck[], MqlRates &brs[], int tf) { int fin=ArraySize(tck); datetime start=tck[0].time; datetime startTime=start-start%tf; int j=0; for(int i=0; i<fin;) { if(j%1000==0) ArrayResize(brs,j+1000); brs[j].open=tck[i].bid; brs[j].time= startTime; datetime endTime=startTime+tf; double max=tck[i].bid; double min=max; int vol=1; datetime cur_t=0; while(true) { i++; if(i==fin) break; cur_t=tck[i].time; if(cur_t>=endTime) break; double price = tck[i].bid; if(price>max) max=price; if(price<min) min=price; vol++; } brs[j].tick_volume=vol; brs[j].high=max; brs[j].low=min; brs[j].close=tck[i-1].bid; startTime=cur_t-cur_t%tf; j++; } ArrayResize(brs,j); return j; }
индикатор для демонстрации этой функции
Хотел взглянуть, но откомпилировать не вышло - вот лог ошибок из ME
can't open "C:\FX\MT5\MQL5\Include\Canvas\iCanvas.mqh" include file AnyTF.mq5 10 11 'Canvas' - undeclared identifier AnyTF.mq5 33 4 'Erase' - struct or class type expected AnyTF.mq5 33 11 'Comm' - struct or class type expected AnyTF.mq5 34 11 'Update' - struct or class type expected AnyTF.mq5 35 11 'Canvas' - undeclared identifier AnyTF.mq5 64 4 'Erase' - struct or class type expected AnyTF.mq5 64 11 'W' - undeclared identifier AnyTF.mq5 64 17 'Color' - struct or class type expected AnyTF.mq5 64 19 'Color' - struct or class type expected AnyTF.mq5 64 19 'Left_bar' - struct or class type expected AnyTF.mq5 66 31 'Left_bar' - struct or class type expected AnyTF.mq5 66 31 'Right_bar' - struct or class type expected AnyTF.mq5 67 34 'Right_bar' - struct or class type expected AnyTF.mq5 67 34 'dx_pix' - struct or class type expected AnyTF.mq5 68 24 'dx_pix' - struct or class type expected AnyTF.mq5 68 24 'dx_pix' - struct or class type expected AnyTF.mq5 70 38 'dx_pix' - struct or class type expected AnyTF.mq5 70 38 'LineVertical' - struct or class type expected AnyTF.mq5 74 14 'Y' - struct or class type expected AnyTF.mq5 74 42 'Y' - struct or class type expected AnyTF.mq5 74 73 'FillRectangle' - struct or class type expected AnyTF.mq5 75 14 'dx_pix' - struct or class type expected AnyTF.mq5 75 36 'dx_pix' - struct or class type expected AnyTF.mq5 75 36 'Y' - struct or class type expected AnyTF.mq5 75 62 'dx_pix' - struct or class type expected AnyTF.mq5 75 88 'dx_pix' - struct or class type expected AnyTF.mq5 75 88 'Y' - struct or class type expected AnyTF.mq5 75 114 'Update' - struct or class type expected AnyTF.mq5 77 11
Хотел взглянуть, но откомпилировать не вышло - вот лог ошибок из ME
...MQL5\Include\Canvas\iCanvas.mqh
...MQL5\Include\Canvas\iCanvas.mqh
Откомпилировался, но чет показывать не хочет :((
2019.09.07 08:59:30.696 MemoryException 2116111524 bytes not available, 0 heapmin result 2019.09.07 08:59:30.696 MemoryException 1904500100 bytes not available, 0 heapmin result 2019.09.07 08:59:30.697 MemoryException 1714049660 bytes not available, 0 heapmin result 2019.09.07 08:59:30.697 MemoryException 1542644484 bytes not available, 0 heapmin result 2019.09.07 08:59:30.697 MemoryException 1388379980 bytes not available, 0 heapmin result 2019.09.07 08:59:30.697 MemoryException 1249541660 bytes not available, 0 heapmin result 2019.09.07 08:59:30.697 MemoryException 1124587284 bytes not available, 0 heapmin result 2019.09.07 08:59:30.697 MemoryException 1012128500 bytes not available, 0 heapmin result 2019.09.07 08:59:30.697 MemoryException 910915220 bytes not available, 0 heapmin result 2019.09.07 08:59:30.697 MemoryException 819823700 bytes not available, 0 heapmin result
Откомпилировался, но чет показывать не хочет :((

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть потребность в своих таймфрэймах, на произвольных промежутках времени, например (45_MINUTES, 5_DAY, 10_DAY).
Задача, в целом несложная, но, может быть, кто-то уже заморачивался и сделал прекрасный класс для mql5,
который бы позволял получить массивы данных под заданные параметры?