← Zurück

Strategy.ApplyMonitorRules логическая ошибка

Михаил, у Вас в коде присутствует логическая ошибка, приводящая к зависанию стратегии в состоянии 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.

War dieses Thema hilfreich?

Thema teilen

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!