MQL5 Свои таймфрэймы

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

Есть потребность в своих таймфрэймах, на произвольных промежутках времени, например (45_MINUTES, 5_DAY, 10_DAY).

Задача, в целом несложная, но, может быть, кто-то уже заморачивался и сделал прекрасный класс для mql5,

который бы позволял получить массивы данных под заданные параметры?

Сергей Таболин
2643
Сергей Таболин  
Maksim Emeliashin:

Есть потребность в своих таймфрэймах, на произвольных промежутках времени, например (45_MINUTES, 5_DAY, 10_DAY).

Задача, в целом несложная, но, может быть, кто-то уже заморачивался и сделал прекрасный класс для mql5,

который бы позволял получить массивы данных под заданные параметры?

Само по себе это не сложно (15+15+15 = 45). Вопрос в другом. Нужны ли только цены открытия-закрытия или движение внутри этой свечи? Но и это не проблема )))) 

Alexey Volchanskiy
27266
Alexey Volchanskiy  
Сергей Таболин:

Само по себе это не сложно (15+15+15 = 45). Вопрос в другом. Нужны ли только цены открытия-закрытия или движение внутри этой свечи? Но и это не проблема )))) 

В рамках DSP это называется downsampling, в произвольных отношениях есть в готовом виде в Matlab, можно выкинуть в DLL. Если делать самому, надо фильтровать высокие составляющие, потом прореживать. У меня класса нет, ибо не просили )  

Maksim Emeliashin
552
Maksim Emeliashin  
Сергей Таболин:

Само по себе это не сложно (15+15+15 = 45). Вопрос в другом. Нужны ли только цены открытия-закрытия или движение внутри этой свечи? Но и это не проблема )))) 

Да нужны только стандартные цены OHLC, чтобы можно было данные скормить индикаторам. Видимо, придется написать велосипед самому.

Сергей Таболин
2643
Сергей Таболин  
Maksim Emeliashin:

Да нужны только стандартные цены OHLC, чтобы можно было данные скормить индикаторам. Видимо, придется написать велосипед самому.

Да это не сложно. У меня есть сова, работающая на ТФ H1,5, и рисующая свои свечи.

В принципе, я тоже уже достаточно давно затрагивал вопрос о штатной возможности использования кастомных ТФ, в придачу начинающих отсчёт от кастомного времени, но у МТ свои приоритеты, и прислушиваются они к нам крайне редко...

Так что пишите самостоятельно. Может получится не велосипед, а НЛО. Поделитесь? )))))))))))

Nikolai Semko
6547
Nikolai Semko  
Maksim Emeliashin:

Да нужны только стандартные цены 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;
  }
Nikolai Semko
6547
Nikolai Semko  
Nikolai Semko:

Можно обойтись несложной функцией, которая из массива тиков tck[] формирует массив баров brs[] с таймфреймом tf в секундах.

индикатор для демонстрации этой функции

Файлы:
AnyTF.mq5 10 kb
Aleksey Vyazmikin
15938
Aleksey Vyazmikin  
Nikolai Semko:

индикатор для демонстрации этой функции

Хотел взглянуть, но откомпилировать не вышло - вот лог ошибок из 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
Nikolai Semko
6547
Nikolai Semko  
Aleksey Vyazmikin:

Хотел взглянуть, но откомпилировать не вышло - вот лог ошибок из ME

...MQL5\Include\Canvas\iCanvas.mqh

Файлы:
iCanvas.mqh 21 kb
Aleksey Vyazmikin
15938
Aleksey Vyazmikin  
Nikolai Semko:

...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
Nikolai Semko
6547
Nikolai Semko  
Aleksey Vyazmikin:

Откомпилировался, но чет показывать не хочет :((

может интернет слабый и тики за 4 недели не может скачать в юните? Тогда можно попробовать поставить 1 неделю.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий