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);
}