iOpen, iClose, iBid и т.д. в Советнике (Тестере). Это ошибка(не доработка) или я чего-то не понимаю ?

 


int start()
{
    Print("Current bar: ",TimeDay(iTime(NULL,0,0)),".",TimeMonth(iTime(NULL,0,0)),"/",
                            TimeHour (iTime(NULL,0,0)),":",TimeMinute(iTime(NULL,0,0)),", ",  iOpen(NULL,0,0),", ",
                                      iHigh(NULL,0,0),", ",  iLow(NULL,0,0),", ",
                                      iClose(NULL,0,0),", ", iVolume(NULL,0,0));
 
//----
   
//----
   return(0);
}

То же наблюдается при использовании функций без i - Close, Open и т.д.

Функцией (к примеру) iClose(NULL,0,0) я хочу получить значение текущего (сформировавшегося) бара на текущем ТаймФрейме. Как указанно в Helpe : iClose - Возвращает значение цены закрытия указанного бара с соответствующего графика.

В место этого в данном выше приведенном примере я получаю значение всех входящих, извините за вольность, "тик-баров" за этот период.

То есть вместо одной конкретной строки на периоде в 15 минут LorDen EURUSD,M15: Current bar: 04.08.2006/21:45, 1.2876, 1.2877, 1.2874, 1.2876, 15
Я получаю 13 строк одного и того-же 15 минутного Бара с колеблющимися позициями Открытия, Закрытия и т.д. Это очень странно и неудобно. Придется писать функцию для обработки разных временных периодов.

Я понимаю если бар еще не сформирован (не истек установленный промежуток времени). Но вопрос именно про сформировавшиеся бары.

Мне интересно, в реале, а не на тестере эти функции тоже так работают?


P.S. Не советуйте мне пожалуйста модель - по ценам открытия.

 
Open как раз таки является неизменным на протяжении с 21-30 до 21-45, High при этом не убывает, а Low не возрастает. Close и Volume менются как и положено. Не моделируется только время - оно всегда равно времени открытия 15-минутного бара, что в принципе объяснимо. А в чем собственно вопрос? Все вычисления идут на нулевом (несформировавшемся) баре.
 
Да. Все верно. Вся ошибка в том, что я выводил нулевой бар. Извините за беспокойство.
Причина обращения: