Table of Contents

Замена заявок

Замена заявок при написании торговых алгоритмов более продвинутый способ, чем Снятие заявок и последующая регистрация. Чтобы заменить заявку необходимо вызывать метод и передать объект новой заявки 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);
}

См. также

Снятие заявок