示例#1
0
        private OrderPartiallyFilled GenerateOrderPartiallyFilledEvent(ExecutionReport message)
        {
            var orderId          = this.GetOrderId(message);
            var executionId      = new ExecutionId(message.GetField(Tags.ExecID));
            var positionIdBroker = new PositionIdBroker(message.GetField(FxcmTags.PosID));
            var symbol           = this.GetSymbol(message.GetField(Tags.Symbol));
            var orderSide        = FxcmMessageHelper.GetOrderSide(message.GetField(Tags.Side));
            var filledQuantity   = Quantity.Create(message.GetDecimal(Tags.CumQty));
            var averagePrice     = Price.Create(message.GetDecimal(Tags.AvgPx));
            var quoteCurrency    = this.GetQuoteCurrency(symbol, message.GetField(Tags.Currency));
            var leavesQuantity   = Quantity.Create(message.GetInt(Tags.LeavesQty));
            var executionTime    = FxcmMessageHelper.ParseTimestamp(message.GetField(Tags.TransactTime));

            return(new OrderPartiallyFilled(
                       this.accountId,
                       orderId,
                       executionId,
                       positionIdBroker,
                       symbol,
                       orderSide,
                       filledQuantity,
                       leavesQuantity,
                       averagePrice,
                       quoteCurrency,
                       executionTime,
                       this.NewGuid(),
                       this.TimeNow()));
        }
示例#2
0
        private OrderWorking GenerateOrderWorkingEvent(ExecutionReport message)
        {
            var orderId       = this.GetOrderId(message);
            var orderIdBroker = new OrderIdBroker(message.GetField(Tags.OrderID));
            var symbol        = this.GetSymbol(message.GetField(Tags.Symbol));
            var orderSide     = FxcmMessageHelper.GetOrderSide(message.GetField(Tags.Side));
            var orderType     = FxcmMessageHelper.GetOrderType(message.GetField(Tags.OrdType));
            var quantity      = Quantity.Create(message.GetDecimal(Tags.OrderQty));
            var price         = FxcmMessageHelper.GetOrderPrice(orderType, message);
            var timeInForce   = FxcmMessageHelper.GetTimeInForce(message.GetField(Tags.TimeInForce));
            var expireTime    = FxcmMessageHelper.GetExpireTime(message);
            var workingTime   = FxcmMessageHelper.ParseTimestamp(message.GetField(Tags.TransactTime));

            return(new OrderWorking(
                       this.accountId,
                       orderId,
                       orderIdBroker,
                       symbol,
                       orderSide,
                       orderType,
                       quantity,
                       price,
                       timeInForce,
                       expireTime,
                       workingTime,
                       this.NewGuid(),
                       this.TimeNow()));
        }