Замена заявок
Замена заявок при написании торговых алгоритмов более продвинутый способ, чем Снятие заявок и последующая регистрация. Чтобы заменить заявку необходимо вызывать метод и передать объект новой заявки Connector.ReRegisterOrder(StockSharp.BusinessEntities.Order oldOrder, StockSharp.BusinessEntities.Order newOrder ).
В итоге при замене заявок всегда получается новый объект Order, который содержит информацию старой заявки + измененная часть. В дальнейшем, если требуется работа с измененной заявкой (например, отменить ее или опять изменить), то необходимо использовать именно этот новый объект Order.
В примере ниже показан способ "движения" заявки по лучшей цене:
if (registeredOrder.Security.BestBid != null && registeredOrder.Security.BestAsk != null)
{
// registeredOrder - это ранее зарегистрированная заявка.
var newOrder = registeredOrder.Clone();
// изменяем цену на лучшую
newOrder.Price = (registeredOrder.Direction == Sides.Buy ? registeredOrder.Security.BestBid : registeredOrder.Security.BestAsk).Price;
// заменяем заявку на бирже
_connector.ReRegisterOrder(registeredOrder, newOrder);
}