Аналог ObjectGetValueByTime может кто то реализовывал ? - страница 6

 
Nikolai Semko #:
Ошибки не будет если ширина бара 1 пиксель и правая точка линии левее нулевого бара
Но если правая граница линии правее нулевого бара, то для правильного расчёта нужно дополнительное смещение, так как iBarShift будет возвращать -1
Мы же можем в таком случае указать  0 ?
 
Vladimir Pastushak #:
Мы же можем в таком случае указать  0 ?

это будет означать что правую границу линии из будущего мы переместили в нулевой бар, но при этом цена осталась из будущего. В результате видим ошибку. Тогда и цену надо пересчитывать. А это та же задача. 

 

Вы до сих пор не разобрались в вопросе, горе математики (!!!!) ????

//---- честно говоря ждал того, что кто нибудь чухнет уже наконец то перец вопроса, а не будет умничать тут!

Помочь?

Дело в том, что функция  ObjectGetValueByTime - это запрос значения с линии по времени а не с номера бара

Не партесь, никак не получиться заменить эту функцию, если нужно точно, не нужно изобретать велосипед, ведь на линии нет баров, время которых кратно ТФму, причем запрос значения этой функции в любое время .... , это круто и никакой нибудь индик по барам  ! !!!!

 
Renat Akhtyamov #:

Вы до сих пор не разобрались в вопросе, горе математики (!!!!) ????

//---- честно говоря ждал того, что кто нибудь чухнет уже наконец то перец вопроса, а не будет умничать тут!

Помочь?

Дело в том, что функция  ObjectGetValueByTime - это запрос значения с линии по времени а не с номера бара

Не партесь, никак не получиться заменить эту функцию, если нужно точно, не нужно изобретать велосипед, ведь на линии нет баров, время которых кратно ТФму, причем запрос значения этой функции в любое время .... , это круто и никакой нибудь индик по барам  ! !!!!

Эта функция состоит из кода.

Мы ищем вариант написания своего когда что бы обойти стандартную функцию, так как она тяжелая.

Вы можете помочь кодом или только текстом ?

 
Vladimir Pastushak #:
Мы же можем в таком случае указать  0 ?

Я не поленился и все таки написал пилотную версию функции double  iiBarShift:

double  iiBarShift(datetime t, string symbol, ENUM_TIMEFRAMES tf = PERIOD_CURRENT) {
   datetime t0 = iTime(symbol,tf,0);
   if (t==t0) return 0.0;
   if (t<t0) {
      int i = iBarShift(symbol, tf, t,false);
      datetime t1 = iTime(symbol,tf,i);
      datetime t2 = iTime(symbol,tf,i-1);
      return i - (t-t1)/double(t2-t1);
   }
   return -(t-t0)/double(PeriodSeconds(tf));
}

эта версия конечно медленее работает чем моя wBarShift, но зато не требует моей библиотеки. 
Теперь работает корректно PredictPriceFromTwoPoints()

Файлы:
TestLine.mq5  13 kb