Как определить кратность периода? - страница 2

 

гуд. пользоваться поиском умеете... тогда этого должно хватить... 'Расчет и работа со временем не существующих (будущих) баров...'

 
Vinin >>:

При совпадении времени баров с разных таймфреймов

Спасибо, просто и работает :)


   double array1[][6];
   ArrayCopyRates(array1, NULL, lPeriod);
   
   if(array1[0][0] != iTime(NULL,0,i)) 
   {
      return (0);
   }
 
Спасибо всем, вопрос закрыт. Если у кого-то есть решение получше, буду рад узнать :)
 
Choomazik писал(а) >>

Спасибо, просто и работает :)

Не все так просто. Баров с младших таймфреймов может и не быть.

Неплохо было бы проверять предыдущий бар текущего таймфрейма на принадлежность другому бару со старшего таймфрейма

 
Vinin >>:

Не все так просто. Баров с младших таймфреймов может и не быть.

Неплохо было бы проверять предыдущий бар текущего таймфрейма на принадлежность другому бару со старшего таймфрейма

Старший - Н1, младший - М15, так? Меня интересуют совпадающие по времени Open для М15 и Н1. Вы хотите сказать, что если Open для M15 существует, то для Н1 - необязательно? Или наоборот?

 
Choomazik писал(а) >>

Старший - Н1, младший - М15, так? Меня интересуют совпадающие по времени Open для М15 и Н1. Вы хотите сказать, что если Open для M15 существует, то для Н1 - необязательно? Или наоборот?

Скрипт для контроля (возможна ошибка из-за нулевого бара)

int start() {
   int BarsM15=iBars(NULL,PERIOD_M15)-1;
   //Ищем первый бар в часу
   while (TimeMinute(iTime(NULL,PERIOD_M15,BarsM15))>0) BarsM15--;
   int BarsH1=iBarShift(NULL,PERIOD_H1,iTime(NULL,PERIOD_M15,BarsM15));
   Print("Баров на М15: фактическое - ",BarsM15,", расчетное - ",BarsH1*4);
}

2009.07.25 20:54:48 test EURUSD,M15: Баров на М15: фактическое - 64996, расчетное - 65016

 
Vinin >>:

Скрипт для контроля (возможна ошибка из-за нулевого бара)

2009.07.25 20:54:48 test EURUSD,M15: Баров на М15: фактическое - 64996, расчетное - 65016


А если отталкиваться от графика М15 (младший), то Н1 все-таки будет? Работая на графике Н1 и спрашивая Н4 я подобной проблемы никогда не встречал.... (алгоритм был другой, не требовалось кратного периода). Или я просто не заметил?

 
Choomazik писал(а) >>

А если отталкиваться от графика М15 (младший), то Н1 все-таки будет? Работая на графике Н1 и спрашивая Н4 я подобной проблемы никогда не встречал.... (алгоритм был другой, не требовалось кратного периода). Или я просто не заметил?

На Н1 и Н4 не бывает пропущенных баров.

А тут выходом из положения может быть и другой вариант

Например

TimeMinute(iTime(NULL,PERIOD_M15,1))>TimeMinute(iTime(NULL,PERIOD_M15,0))

Так как в часе минутки увеличиваются. Их уменьшение означает наступление нового часа.

 

Choomazik писал(а) >>

Будучи на графике M15 мне надо фильтр только тех M15, которые совпадают с H1.


Старший - Н1, младший - М15, так? Меня интересуют совпадающие по времени Open для М15 и Н1. Вы хотите сказать, что если Open для M15 существует, то для Н1 - необязательно? Или наоборот?


Вот, простейшее решение.

Определили первую четверть часа - фильтруйте её как хотите.

 
Parabellum >>:

Вот, простейшее решение.

Определили первую четверть часа - фильтруйте её как хотите.


Спасибо, это частное решение, которое конечно просто и подходит для примера M15 и H1. Только на временое сповпадение например H1 и H4 оно работать не будет. Меня как раз интересовало общее решение...

Причина обращения: