вопрос по периодам iCustom

 

описание 

   int  iCustom(
   string           symbol,     // имя символ

   ENUM_TIMEFRAMES  period,     // период


period

[in]  Значение периода может быть одним из значений перечисления ENUM_TIMEFRAMES, 0 означает текущий таймфрейм.


вопрос

1  если  запускаю индикатор на M5

2  в индикаторе есть iCustom( NULL, Period_D1, ...

3  логично в течении всего дня на М5,    iCustom  должен возвращать одно и тоже число, но этого не происходит


ЗАЧЕМ ТОГДА period, нужен?????

как же тогда увидеть значение индикатора на D1 из периода M5??


ps. если написать в советнике, то он правильно возвращает одно и тоже число, но это число не соответствует показаниям индикатора на D1






 
dav1977:

описание 

   int  iCustom(
   string           symbol,     // имя символ

   ENUM_TIMEFRAMES  period,     // период


period

[in]  Значение периода может быть одним из значений перечисления ENUM_TIMEFRAMES, 0 означает текущий таймфрейм.


вопрос

1  если  запускаю советника на M5

2  в советнике есть iCustom( NULL, Period_D1, ...

3  логично в течении всего дня  iCustom  должен возвращать одно и тоже число, но этого не происходит


ЗАЧЕМ ТОГДА period, нужен?????

как же тогда увидеть значение индикатора на D1 из периода M5??





Так Вы укажите что расчет идет по ценам открытия, а не закрытия. Вот значение и не будет меняться


 

Vinin: Так Вы укажите что расчет идет по ценам открытия, а не закрытия. Вот значение и не будет меняться


Тогда почему на индикаторе не работает,цены ведь уже сформированы?


 
dav1977:
Тогда почему на индикаторе не работает,цены ведь уже сформированы?

Вы сразу же знаете сегодняшнюю цену закрытия?

Тогда Вам индикатор уже не нужен. Можете смело торговать 

 
Vinin:

Вы сразу же знаете сегодняшнюю цену закрытия?

Тогда Вам индикатор уже не нужен. Можете смело торговать 

конечно знаю, читайте внимательнее

я же написал цены сформированы.

То что было месяц назад - я знаю все и цены закрытия дневные. Беру цену закрытия ПРЕДЫДУЩЕГО дня.

Точнее не цену, а расчет индикатора по этой цене.


Возник вопрос, а смещение (shift)    в iCustom (NULL,Period_D1, ................. ,shift )

вычисляется откуда от  заданного Period_D1 или от текущего периода М5??

в документации написано

shift - Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).

логично буфер должен браться исходя из периода Period_D1

Если он берется из текущего, тогда смысл его УКАЗЫВАНИЯ в  iCustom  вообще отпадает.

 
dav1977:

вопрос

1  если  запускаю индикатор на M5

2  в индикаторе есть iCustom( NULL, Period_D1, ...

3  логично в течении всего дня на М5,    iCustom  должен возвращать одно и тоже число, но этого не происходит

А дальше в iCustom что указано? Какое значение shift? Если значение 0, то, конечно же, показания индикатора будут меняться с каждым новым тиком до момента формирования нулевого бара. Если же значение больше 1, то должно возвращаться одно и то же значение.

 
Scriptong:

А дальше в iCustom что указано? Какое значение shift? Если значение 0, то, конечно же, показания индикатора будут меняться с каждым новым тиком до момента формирования нулевого бара. Если же значение больше 1, то должно возвращаться одно и то же значение.


конечно не 0,    буфер  индикатора  сначало расчитывается в цикле, как любой стандартный индикатор

У меня есть подозрения ,  что  icustom не синхронизирутся с текущим периодом м5, т.е. происходит  расхождение начиная с 0 смещения.
Т.е. узнать  значение индикатора   на D1     n-дней назад в прошлое невозможно, находясь в пероде м5
 
Логичо следующий вопрос
А можно как то узнать число shift смещения , для icustom ,  для D1, например для конкретной даты  10.11.2014 ? Находясь  в периоде м5.
 
dav1977:
Логичо следующий вопрос
А можно как то узнать число shift смещения , для icustom ,  для D1, например для конкретной даты  10.11.2014 ? Находясь  в периоде м5.

Поиск бара по времени. Функция возвращает смещение бара, которому принадлежит указанное время.

int  iBarShift(
   string           symbol,          // символ
   int              timeframe,       // период
   datetime         time,            // время
   bool             exact=false      // режим
   );

 
Vinin:

Поиск бара по времени. Функция возвращает смещение бара, которому принадлежит указанное время.

int  iBarShift(
   string           symbol,          // символ
   int              timeframe,       // период
   datetime         time,            // время
   bool             exact=false      // режим
   );

 Спасибо буду пробовать