void order_OrderUpdatedEvent(Order order, Order.UpdateTypeEnum updateType) { if (OrdersUpdatedEvent != null) { OrdersUpdatedEvent(this, _provider.DefaultAccount.Info, new Order[] { order }, new Order.UpdateTypeEnum[] { updateType }); } }
protected void RaiseOrderUpdateEvent(OrderInfo orderInfo, Order.UpdateTypeEnum updateType) { if (OrdersUpdatedEvent != null) { OrdersUpdatedEvent(this, _account.Info, new[] { orderInfo.Id }, new[] { orderInfo }, new[] { updateType }); } }
public bool BeginOrdersInformationUpdate(AccountInfo accountInfo, string[] orderIds, out string operationResultMessage) { OrderInfo[] ordersInfos; if (GetOrdersInformation(accountInfo, orderIds, out ordersInfos, out operationResultMessage)) { Order.UpdateTypeEnum[] ordersUpdates = new Order.UpdateTypeEnum[ordersInfos.Length]; for (int i = 0; i < ordersUpdates.Length; i++) { ordersUpdates[i] = Order.UpdateTypeEnum.Update; } if (OrdersUpdatedEvent != null) { GeneralHelper.FireAndForget(delegate() { OrdersUpdatedEvent(this, accountInfo, orderIds, ordersInfos, ordersUpdates); }); } } operationResultMessage = string.Empty; return(true); }
/// <summary> /// Convert history to order orderInfo. /// </summary> /// <param name="OrderInfo"></param> /// <returns></returns> OrderInfo?ConvertToOrderInfo(MbtOrderHistory pHist, out Order.UpdateTypeEnum updateType) { updateType = Order.UpdateTypeEnum.Update; if (string.IsNullOrEmpty(pHist.Event)) { return(null); } OrderInfo info = new OrderInfo(pHist.Token); string eventInfo = pHist.Event.ToLower(); if (eventInfo.Contains("enter") || (eventInfo.Contains("session") && eventInfo.Contains("open"))) {// "Enter", "Session open" events skipped. return(null); } if (eventInfo.Contains("live")) { info.State = OrderStateEnum.Submitted; } else if (eventInfo.Contains("executed")) { info.State = OrderStateEnum.Executed; } else if (eventInfo.Contains("suspended")) { info.State = OrderStateEnum.Suspended; } else if (eventInfo == "cancel" || (eventInfo.Contains("cancel") && eventInfo.Contains("reject")) || (eventInfo.Contains("order") && eventInfo.Contains("reject")) || (eventInfo.Contains("order") && eventInfo.Contains("cancel"))) {// Order Reject or Cancel. info.State = OrderStateEnum.Canceled; updateType = Order.UpdateTypeEnum.Canceled; } else if (eventInfo.Contains("suspended")) {// Suspended info.State = OrderStateEnum.Suspended; updateType = Order.UpdateTypeEnum.Modified; } string eventMessage = pHist.Message; Symbol?symbol = TryObtainSymbol(pHist.Symbol); if (symbol.HasValue == false) { return(null); } info.Tag = pHist.OrderNumber; info.OpenPrice = (decimal)pHist.Price; info.StopLoss = (decimal)pHist.StopLimit; info.TakeProfit = (decimal)pHist.StopLimit; info.OpenTime = ConvertDateTime(pHist.Date + " " + pHist.Time); info.Volume = pHist.Quantity; info.Symbol = symbol.Value; info.Type = ConvertFromMBTOrderType(pHist.OrderType, pHist.BuySell); if (info.Type == OrderTypeEnum.UNKNOWN) { SystemMonitor.OperationWarning("Failed to recognize order type [" + pHist.OrderType.ToString() + "]."); //return null; } return(info); }
/// <summary> /// /// </summary> public void UpdateOrderInfo(AccountInfo account, Order.UpdateTypeEnum updateType, OrderInfo orderInfo) { UpdateOrdersInfo(account, new Order.UpdateTypeEnum[] { updateType }, new OrderInfo[] { orderInfo }); }
public bool BeginOrdersInformationUpdate(AccountInfo accountInfo, string[] orderIds, out string operationResultMessage) { OrderInfo[] ordersInfos; if (GetOrdersInformation(accountInfo, orderIds, out ordersInfos, out operationResultMessage)) { Order.UpdateTypeEnum[] ordersUpdates = new Order.UpdateTypeEnum[ordersInfos.Length]; for (int i = 0; i < ordersUpdates.Length; i++) { ordersUpdates[i] = Order.UpdateTypeEnum.Update; } if (OrdersUpdatedEvent != null) { GeneralHelper.FireAndForget(delegate() { OrdersUpdatedEvent(this, accountInfo, orderIds, ordersInfos, ordersUpdates); }); } } operationResultMessage = string.Empty; return true; }