Если у вас интервал секунда или тик, то может случится, что будет пропущено и более 1 бара между пересчетами.
Так же возможна ситуация, когда программу перезапускали, и в паузе образовался сигнал на сделку.

В случае CloseAtProfit необходимо уточнить, что именно происходит?