Тестер врёт на 1 бар?

 
Итак:
1.
Создаём обычный кастомный символ который не отличается от обычного вот такой формулой
"GBPUSD" и все свойства копируем тоже с GBPUSD.
2.
Запускаем тестирование советника на этом кастомном символе GBPUSD_TEST.
3.
Получаем цену открытия символа GBPUSD формулой
   double BarOpen=0.0;
   BarOpen=iOpen("GBPUSD",Period(),0);
   Print("BarOpen ",BarOpen);

4.

В принтах мы видим что тестер получает цену предыдущего бара а не текущего.

Что не так ?


Кстати количество баров до момента открытой позиции тоже получается со смещение 1 бар.

   for(int i=PositionsTotal()-1; i>=0; i--) // returns the number of open positions
      if(m_position.SelectByIndex(i))
         if(m_position.Magic()==m_magic)
           {
            if(m_position.PositionType()==POSITION_TYPE_BUY)
              {
               int BarsPoz=0.0;
               BarsPoz=Bars(NULL,0,m_position.Time(),iTime(NULL,PERIOD_CURRENT,0));
               double BarOpen=0.0;
               BarOpen=iOpen(Symbol(),Period(),0);
               double BarOpenPoz=0.0;
               BarOpenPoz=iOpen(Symbol(),Period(),BarsPoz-1);//Не знаю почему но здесь работает БАР - 1 !!!
Файлы:
3m4kku.JPG  97 kb
Причина обращения: