Пример #1
0
        internal void OnOrderRejected(OrderRejectionResponse message)
        {
            if (OrderRejected == null)
                return;

            var o = message.Order;

            var order = new Order(o.UserID, o.Symbol, o.Quantity, DataConverter.ToClientOrderType(o.OrderType),
                o.OrderSide.ToClientSide(), o.Commission, o.AvgFillPrice, o.OpenDate,
                DataConverter.ToClientTIF(o.TimeInForce))
            {
                CurrentPrice = o.CurrentPrice,
                SLOffset = o.SLOffset,
                TPOffset = o.TPOffset,
                ProfitPips = o.PipProfit,
                Profit = o.Profit,
                FilledQuantity = o.FilledQuantity,
                BrokerName = o.BrokerName,
                AccountId = o.AccountId,
                BrokerID = o.BrokerID,
                ServerSide = o.ServerSide
            };

            OrderRejected(this, new EventArgs<Order, string>(order, message.Msg));
        }
Пример #2
0
        internal void OnHistoricalOrder(HistoricalOrderResponse message)
        {
            if (NewHistoricalOrder == null)
                return;

            var order = message.HistoricalOrder;
            var status = order.FilledQuantity > 0 ? Status.Filled : Status.Canceled;
            var historicalOrder = new Order(order.UserID, order.Symbol, status == Status.Filled ? order.FilledQuantity : order.CancelledQuantity,
                DataConverter.ToClientOrderType(order.OrderType), order.OrderSide.ToClientSide(), order.Commission,
                status == Status.Filled ? order.AvgFillPrice : order.Price, order.OpenDate, DataConverter.ToClientTIF(order.TimeInForce))
            {
                OrderStatus = status,
                BrokerName = order.BrokerName,
                AccountId = order.AccountId,
                BrokerID = order.BrokerID,
                ServerSide = order.ServerSide,
                OpeningQty = order.OpeningQty,
                ClosingQty = order.ClosingQty
            };

            NewHistoricalOrder?.Invoke(this, new EventArgs<string, Order>(message.AccountID, historicalOrder));
        }