public Trading.Order GetOpenOrder(string userName, int orderId) { try { IBUser user = _userManager.GetUser(userName); if (user != null) { Messages.OpenOrderMessage openOrder = user.GetOpenOrderMessage(orderId, user.ClientId); if (openOrder != null) { var order = ConvertOpenOrderMessageToOrder(openOrder, user); } } return(null); } catch (Exception ex) { _Logger.Error(ex); throw ex; } }
public static Trading.Order ConvertOpenOrderMessageToOrder(Messages.OpenOrderMessage openOrder, IBUser user) { if (openOrder != null) { Trading.Order order = new Trading.Order(); order.OrderId = openOrder.OrderId; order.Contract = ConvertContract(openOrder.Contract); if (openOrder.Order != null) { order.Account = openOrder.Order.Account; order.Action = openOrder.Order.Action; order.ActiveStartTime = openOrder.Order.ActiveStartTime; order.ActiveStopTime = openOrder.Order.ActiveStopTime; order.OrderId = openOrder.Order.OrderId; order.ClientId = openOrder.Order.ClientId; order.PermId = openOrder.Order.PermId; order.TotalQuantity = openOrder.Order.TotalQuantity; order.OrderType = openOrder.Order.OrderType; order.LimitPrice = openOrder.Order.LmtPrice; order.AuxPrice = openOrder.Order.AuxPrice; order.Tif = openOrder.Order.Tif; order.OcaGroup = openOrder.Order.OcaGroup; order.OcaType = openOrder.Order.OcaType; order.OrderRef = openOrder.Order.OrderRef; order.Transmit = openOrder.Order.Transmit; order.ParentId = openOrder.Order.ParentId; order.BlockOrder = openOrder.Order.BlockOrder; order.SweepToFill = openOrder.Order.SweepToFill; order.DisplaySize = openOrder.Order.DisplaySize; order.TriggerMethod = openOrder.Order.TriggerMethod; order.OutsideRth = openOrder.Order.OutsideRth; order.Hidden = openOrder.Order.Hidden; order.GoodAfterTime = openOrder.Order.GoodAfterTime; order.GoodTillDate = openOrder.Order.GoodTillDate; order.OverridePercentageConstraints = openOrder.Order.OverridePercentageConstraints; order.Rule80A = openOrder.Order.Rule80A; order.AllOrNone = openOrder.Order.AllOrNone; order.MinQty = openOrder.Order.MinQty; } if (openOrder.OrderState != null) { order.Status = openOrder.OrderState.Status; order.InitMargin = openOrder.OrderState.InitMargin; order.MaintMargin = openOrder.OrderState.MaintMargin; order.EquityWithLoan = openOrder.OrderState.EquityWithLoan; order.Commission = openOrder.OrderState.Commission; order.MinCommission = openOrder.OrderState.MinCommission; order.MaxCommission = openOrder.OrderState.MaxCommission; order.CommissionCurrency = openOrder.OrderState.CommissionCurrency; order.WarningText = openOrder.OrderState.WarningText; } if (openOrder.OrderStatus != null) { order.Status = openOrder.OrderStatus.Status; order.Filled = openOrder.OrderStatus.Filled; order.Remaining = openOrder.OrderStatus.Remaining; order.AvgFillPrice = openOrder.OrderStatus.AvgFillPrice; order.LastFillPrice = openOrder.OrderStatus.LastFillPrice; order.WhyHeld = openOrder.OrderStatus.WhyHeld; } if (user != null) { var portfolio = user.GetPortfolioFromOrderId(order.OrderId); if (portfolio != null) { order.Fund = portfolio.Item1; order.Strategy = portfolio.Item2; order.Folder = portfolio.Item3; } } return(order); } return(null); }