Substituição de ordens

Substituir ordens ao criar algoritmos de negociação é um método mais avançado do que cancelá-las e registá-las novamente. Para substituir a ordem, deve chamar o método Connector.ReRegisterOrder(StockSharp.BusinessEntities.Order oldOrder, StockSharp.BusinessEntities.Order newOrder ).

Como resultado da substituição da ordem, é criado um novo objeto Order, que contém a informação da ordem antiga mais a parte alterada. Posteriormente, se pretender trabalhar com a ordem alterada (por exemplo, cancelá-la ou alterá-la novamente), deve usar este novo objeto Order.

O exemplo seguinte mostra como "mover" a ordem para o melhor preço:

if (registeredOrder.Security.BestBid != null && registeredOrder.Security.BestAsk != null)
{
	// registeredOrder — ordem registrada com sucesso.
	var newOrder = registeredOrder.Clone();
	// alterar o preço para ser o melhor no livro de ofertas
	newOrder.Price = (registeredOrder.Direction == Sides.Buy ? registeredOrder.Security.BestBid : registeredOrder.Security.BestAsk).Price;
	// enviar solicitação para substituir nossa ordem pelo novo preço
	_connector.ReRegisterOrder(registeredOrder, newOrder);
}

Conteúdo recomendado

Cancelamento de ordens