Спасибо, Nektodron, будем рассчитывать.
С определениям кол-ва баров в открытой позиции разобрался, Ваш пример не работал, т. к. стратегия переворотная и проблемма была из-за IOrder lastOrder=null;
Подошёл вариант расчёта предложенный anothar:
int barShift=0;
if(sec.Positions.LastPositionActive!=null)
barShift=k-sec.Positions.LastPositionActive.EntryBarNum;

В заключении ещё один вопрос, т. к. в расчёте скрипта всё чаще используется цена открытия позиции, то её изменение после проведения клиринга становится более критично.
Можете подсказать какой-нибудь метод чтобы после проведения клиринга в расчёте использовалась оригинальная цена открытия позиции до клира?