Если честно не понял и половину из написанного. Если скрипт работает на тиках, то сделки никогда не совпадут с лабораторными. Хотя бы потому, что пока выставляется заявка может пройти не один десяток тиков (сделок).
Далее, судя по всему алгоритм выхода у вас привязан к цене сделки. А она может сильно отличаться, поэтому выход в реале происходит в совершенно другое время, отсюда расхождение в количестве.