Михаил, у Вас в коде присутствует логическая ошибка, приводящая к зависанию стратегии в состоянии Stopping:
var leftVolume = order.Volume - info.ReceivedVolume;
if (leftVolume != 0)
this.AddDebugLog("Order {0} has left trade volume {1}.", order.GetTraceId(), leftVolume);
return leftVolume == 0;
info.ReceivedVolume изменяется при получении сделок по ордеру в методе AddMyTrade. Но сравнивать order.Volume с пришедшими сделками не верно, т.к. они не связаны никак, и получается, что если заявка не была полностью исполнена, то правила по этой заявке зависают в стратегии и не дают ей завершиться. Нужно сравнивать исполненный объем заявки со значением info.ReceivedVolume.
Kommentare (0)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Noch keine Kommentare. Seien Sie der Erste!