Пересчет предпоследнего бара и стат.переменные

 
Проблема в пересчете предпоследнего бара в индикаторах при использовании статических переменных (или объявленных в головной части), если от значения этих переменных зависит алгоритм работы индикатора. Например, ZigZag или там Parabolic S&R.

Возьмем такой случай:
Алгоритм расчета зависит от флага, хранящегося в стат.переменной.
1. Где-то внутри текущего бара стат.переменная поменяла значение. Соответственно, инидкатор стал считать по-другому.
2. Пришел первый тик нового бара. Стандартная конструкция пересчитывает предыдущий бар. Но! Пересчет происходит при новом значении флага, не соответствующем его значению на начало предыдущего бара. Т.е. этот бар считается не по своему алгоритму.

Возможный выход из ситуации - использовать вместо переменных массивы на 2 ячейки.

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