コード例 #1
0
        public ExecutionReport ConvertExecutionReport(QuickFix.FIX44.ExecutionReport report)
        {
            var executedTrade = new ExecutionReport
            {
                Instrument      = ExchangeSymbolToLykkeInstrument(report.Symbol.Obj),
                Time            = report.IsSetTransactTime() ? report.TransactTime.Obj : DateTime.UtcNow,
                Volume          = report.CumQty.Obj,
                Type            = ConvertSide(report.Side),
                ExchangeOrderId = report.OrderID.Obj,
                ExecutionStatus = ConvertStatus(report.OrdStatus),
                ClientOrderId   = report.ClOrdID.Obj,
                ExecType        = ConvertExecType(report.ExecType),
                OrderType       = report.IsSetOrdType() ? ConvertOrderType(report.OrdType) : OrderType.Unknown,
                Price           = report.IsSetAvgPx() ? report.AvgPx.Obj : 0m,
                FailureType     = OrderStatusUpdateFailureType.None,
                Success         = !new[] { OrderExecutionStatus.Cancelled, OrderExecutionStatus.Rejected }.Contains(ConvertStatus(report.OrdStatus)),
                Message         = report.IsSetText() ? report.Text.Obj : string.Empty
            };

            return(executedTrade);
        }