public double Execute(ISecurity source, int barNum) { var pos = source.Positions.LastPositionClosed; if (pos == null) return 0; return barNum - pos.ExitBarNum; } код простой, но может в нём что-то не так?
Ошибка, я думаю, в том, что из текущего № бара вычитается № бара выхода, а "бар выхода" начинает выдавать сигнал не на фактической свече выхода, а на предыдущей (там где и появляется сигнал на выход). Поэтому и получается -1. У тех, кто использует эти параметры могут быть ошибки.