订单更换
在创建交易算法时,替换订单比取消后重新注册订单是一种更高级的方法。要替换订单,你应该调用 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);
}