build 784, Bid, Ask, OnCalculate

 

Всем привет. После обновления на версию 784 в функции OnCalculate в Bid и Ask стали попадать текущие значения. То есть прогоняя индикатор в тестере, Print(Ask)  на каждом тике выводит сегодняшний Ask.

Кто-нибудь может это прокомментировать, или я в чем-то ошибся?

 
Ortex:

Всем привет. После обновления на версию 784 в функции OnCalculate в Bid и Ask стали попадать текущие значения. То есть прогоняя индикатор в тестере, Print(Ask)  на каждом тике выводит сегодняшний Ask.

Кто-нибудь может это прокомментировать, или я в чем-то ошибься?

Конечно, мягкий знак лишний! Правда, всегда можно выводить в Print всё, что захочешь! И Ask в том числе! 
 
Выводит СЕГОДНЯШНИЙ ASK, а не тот, что был на нужном баре в момент тестирования.
 
Ortex:
Выводит СЕГОДНЯШНИЙ ASK, а не тот, что был на нужном баре в момент тестирования.
Конечно, в зависимости от спреда, указанного в настройках. Я имел ввиду в реале или на демо.
 
Ortex:

Всем привет. После обновления на версию 784 в функции OnCalculate в Bid и Ask стали попадать текущие значения. То есть прогоняя индикатор в тестере, Print(Ask)  на каждом тике выводит сегодняшний Ask.

Кто-нибудь может это прокомментировать, или я в чем-то ошибся?

Новый билд не виноват. Так было всегда - индикаторы при визуализации находятся вне окружения тестера стратегий. Для этого необходимо вызывать индикатор в советнике через iCustom. В таких случаях используйте iClose вместо Bid и iClose + спред вместо Ask.
 

Ну, отчего же именно iClose? Не подумайте, что я к Вам цепляюсь,- я использую все, кроме Close: 

 // Закрытие позиций:
      if( LongStop-Low[i] > -Zero ){               // Касание сверху уровня LongStop
         if( IsLastLong ){                         // Есть открытая Long
            if( Open[i]-LongStop > Zero )          // Выбор худшей цены
                 CloseLong[i]=LongStop;
            else CloseLong[i]=Open[i];
            IsLastLong =false;                     // Закрыть Long, увеличить профит
            LongProfit+=CloseLong[i];
            LongsLost--;
         }
      }
      if( ShortStop > Zero                         // ShortStop активна
       && High[i]-ShortStop > -Zero ){             // Касание снизу уровня ShortStop
         if( IsLastShort ){                        // Есть открытая Short
            if( ShortStop-Open[i] > Zero )         // Выбор худшей цены
                 CloseShort[i]=ShortStop;
            else CloseShort[i]=Open[i];
            IsLastShort =false;                    // Закрыть Short, уменьшить профит
            ShortProfit-=(CloseShort[i]+Spread);
            ShortsLost--;
         }
      }
 
Scriptong:
Новый билд не виноват. Так было всегда - индикаторы при визуализации находятся вне окружения тестера стратегий. Для этого необходимо вызывать индикатор в советнике через iCustom. В таких случаях используйте iClose вместо Bid и iClose + спред вместо Ask.
Дело в том, что до обновления, в версии 765, при использовании iCustom, Bid и Ask соотетствовали барам в прошлом, каждый тик. Но, в любом случаи, всем спасибо, решение найдено.