Прдскажите по коду

 

Каким способом оптимально и надежно определять в цикле индикатора на таймфрейме меньше дневок первый бар текущего дня? Мне этонужно для определения потом макс и миним цены текущего дня.

К примеру как правильно вычислить переменноую DayStart, которая должна содержать смещение перого бара дня относительно текущего. Необходимо учесть что могут быть пропущенные бары(дыры) в истории.

 
Dezil >>:

Каким способом оптимально и надежно определять в цикле индикатора на таймфрейме меньше дневок первый бар текущего дня? Мне этонужно для определения потом макс и миним цены текущего дня.

К примеру как правильно вычислить переменноую DayStart, которая должна содержать смещение перого бара дня относительно текущего. Необходимо учесть что могут быть пропущенные бары(дыры) в истории.

double max=iHigh(0,PERIOD_D1,0), // максимальная цена текущего дня
       min=iLow(0,PERIOD_D1,0);  // минимальная цена текущего дня
 
WWer >>:


еслиб все так было просто, говрю же в цикле индикатора надо опрелеять. Предложенная Вами схема будет возврщать данные "сегодняшнего" дня всегда. К примеру при посториении индикатора за 01.01.2006 данная схема даст значения 15.10.2008 (сегодня). Для эксперта это подойдет, а для индюка нет

 
datetime DayStartTime=86400*(Time[i]/86400) ; // время начала дня

int DayStartBarShift=iBarShift(NULL,0,DayStartTime,true); //номер бара с таким временем

if(DayStartBarShift==-1)DayStartBarShift=iBarShift(NULL,0,DayStartTime,false)-1; // если нет бара с таким временем
Причина обращения: