Beispiel #1
0
        public static TradeField GetTrade(CtpTrade data)
        {
            if (data == null)
            {
                return(null);
            }
            var trade = new TradeField();

            trade.ID            = data.OrderRef;
            trade.ClientID      = data.OrderSysID;
            trade.InstrumentID  = data.InstrumentID;
            trade.ExchangeID    = data.ExchangeID;
            trade.AccountID     = data.InvestorID;
            trade.TradeID       = data.TradeID;
            trade.Side          = GetOrderSide(data.Direction);
            trade.Qty           = data.Volume;
            trade.Price         = data.Price;
            trade.OpenClose     = GetOpenClose(data.OffsetFlag);
            trade.HedgeFlag     = GetHedgeFlag(data.HedgeFlag);
            trade.Commission    = 0;//TODO收续费以后要计算出来
            trade.Time          = GetTime(data.TradeTime);
            trade.Date          = GetDate(data.TradeDate);
            trade.ReserveChar64 = CtpClientId;
            return(trade);
        }
        private void ProcessRtnTrade(CtpTrade data)
        {
            var sysId = $"{data.ExchangeID}:{data.InstrumentID}:{data.OrderSysID}";

            if (_orders.TryGetBySysId(sysId, out var order))
            {
                var trade = CtpConvert.GetTrade(data);
                trade.ID = order.ID;
                _client.Spi.ProcessRtnTrade(trade);
            }
        }
 private void ProcessRtnTrade(CtpTrade data)
 {
     if (_orders.TryGetBySysId(data.OrderSysID, out var order))
     {
         var trade = CtpConvert.GetTrade(data);
         trade.ID = order.ID;
         _client.Spi.ProcessRtnTrade(trade);
     }
     else
     {
         _tradePendings.Add(data);
     }
 }
 private void ProcessRtnTrade(CtpTrade data)
 {
     _client.spi.ProcessLog(new LogField(LogLevel.Trace, "RtnTrade"));
     if (_orders.TryGetBySysId(data.OrderSysID, out var order))
     {
         var trade = CtpConvert.GetTrade(data);
         trade.ID = order.ID;
         _client.spi.ProcessRtnTrade(trade);
     }
     else
     {
         _tradePending.Add(data);
     }
 }
Beispiel #5
0
 public TestTrade()
 {
     _t = new CtpTrade();
 }