public override void SendOrderCancelReplaceRequest(OrderCancelReplaceRequest request) { if (!request.ContainsField(1) && !string.IsNullOrWhiteSpace(this.DefaultAccount)) request.Account = this.DefaultAccount.Trim(); if (!request.ContainsField(109) && !string.IsNullOrWhiteSpace(this.DefaultClientID)) request.SetStringValue(109, this.DefaultClientID.Trim()); base.SendOrderCancelReplaceRequest(request); }
internal static void ReplaceOrder(SingleOrder order) { if (order.Provider == null) throw new ApplicationException("null"); OrderCancelReplaceRequest request = new OrderCancelReplaceRequest(); request.ClOrdID = OrderManager.GetOrdId(); request.OrigClOrdID = order.ClOrdID; if (order.ContainsField(37)) request.OrderID = order.OrderID; request.Side = order.Side; request.OrdType = !order.ReplaceOrder.ContainsField(40) ? order.OrdType : order.ReplaceOrder.OrdType; request.TimeInForce = !order.ReplaceOrder.ContainsField(59) ? order.TimeInForce : order.ReplaceOrder.TimeInForce; if (order.ReplaceOrder.ContainsField(126)) request.ExpireTime = order.ReplaceOrder.ExpireTime; if (order.ReplaceOrder.ContainsField(44)) request.Price = order.ReplaceOrder.Price; else request.Price = order.Price; if (order.ReplaceOrder.ContainsField(99)) request.StopPx = order.ReplaceOrder.StopPx; else request.StopPx = order.StopPx; if (order.ReplaceOrder.ContainsField(10701)) request.TrailingAmt = order.ReplaceOrder.TrailingAmt; else request.TrailingAmt = order.TrailingAmt; if (order.ReplaceOrder.ContainsField(38)) request.OrderQty = order.ReplaceOrder.OrderQty; else request.OrderQty = order.OrderQty; request.TransactTime = Clock.Now; request.Account = order.Account; request.HandlInst = order.HandlInst; request.Symbol = order.Symbol; request.SecurityType = order.SecurityType; request.SecurityExchange = order.SecurityExchange; request.SecurityID = order.SecurityID; request.Currency = order.Currency; request.SetStringValue(109, order.GetStringValue(109)); order.Provider.SendOrderCancelReplaceRequest(request); }