Некорректный расчет индикатора в тестере.

 

Написал индикатор, который делает пересчет предыдущих значений на основе данных последнего бара (при его открытии). Поэтому важно, чтобы пересчет делался только один раз. Но в тестере по непонятной причине пересчет почти всегда делается дважды. При этом при обычном запуске индикатора все нормально.

Для иллюстрации, перенес механизм в простой индикатор ATR.

Прошу объяснить, что происходит.

Этот индикатор помещен в шаблон советника

И вот задвоенные результаты.

Изменение периодичности расчета: каждый тик, OHLC на 1М, по ценам открытия не влияет на задвоенность.

 
Обычно в индюках пересчитывают не только 0-й бар (последний), но и 1-й (предпоследний). Выведите в лог, чему равен limit.
 
Stanislav Korotky:
Обычно в индюках пересчитывают не только 0-й бар (последний), но и 1-й (предпоследний). Выведите в лог, чему равен limit.

 
savinkins:
Видно что 2 последних бара пересчитывается. Вопрос снят. Если нужно пересчитывать только последний бар, правьте исходник в том месте, где устанавливается limit.
 
Stanislav Korotky:
Видно что 2 последних бара пересчитывается. Вопрос снят. Если нужно пересчитывать только последний бар, правьте исходник в том месте, где устанавливается limit.

Да, действительно, 2 бара. Спасибо, я этого не заметил.  Только вопрос - почему иногда пересчитывается только 1 раз (как в вышеприведенном примере rates_total = 8996.
 
savinkins:

Да, действительно, 2 бара. Спасибо, я этого не заметил.  Только вопрос - почему иногда пересчитывается только 1 раз (как в вышеприведенном примере rates_total = 8996.
Смотрите файл журнала. В окне могут быть пропуски.
Причина обращения: