示例#1
0
 protected XApiClient(XProvider provider, ConnectionInfo info, IXSpi spi = null)
 {
     Info     = info;
     Provider = provider;
     User     = provider.GetUserInfo(info.User);
     Server   = provider.GetServerInfo(info.Server, info.UseType);
     Logger   = LogManager.GetLogger($"{provider.Name}.{info.LogPrefix}.{User.UserID}");
     Api      = provider.CreateXApi(info);
     if (spi != null)
     {
         Api.RegisterSpi(spi);
     }
     Api.ErrorHappened           += OnErrorHappened;
     Api.StatusChanged           += OnStatusChanged;
     Api.InvestorReceived        += OnInvestorReceived;
     Api.AccountReceived         += OnRspQryAccount;
     Api.PositionReceived        += OnRspQryPositions;
     Api.OrderReturn             += OnRtnOrder;
     Api.TradeReturn             += OnRtnTrade;
     Api.InstrumentReceived      += OnInstrumentReceived;
     Api.MarketDataReceived      += OnMarketDataReceived;
     Api.OrderReceived           += OnOrderReceived;
     Api.TradeReceived           += OnTradeReceived;
     Api.InstrumentStatusChanged += OnInstrumentStatusChanged;
 }
示例#2
0
 public void RegisterSpi(IXSpi spi)
 {
     if (_client != null)
     {
         return;
     }
     _client = new CtpMdClient(spi);
 }
示例#3
0
 public void RegisterSpi(IXSpi spi)
 {
     if (_client != null)
     {
         _client.RegisterSpi(spi);
         return;
     }
     _client = new CtpTradeClient(spi);
 }
示例#4
0
        public TraderClient CreateTrader(IXSpi spi)
        {
            var connection = GetConnectionInfo(TraderClient.ApiType);

            if (connection == null)
            {
                return(null);
            }
            if (!CheckConnection(connection))
            {
                return(null);
            }

            return(new TraderClient(_provider, connection, spi));
        }
 public TraderClient(XProvider provider, ConnectionInfo info, IXSpi spi = null)
     : base(provider, info, spi)
 {
 }
示例#6
0
 public CtpTradeClient(IXSpi spi)
 {
     Spi        = spi;
     _publisher = new StatusPublisher(spi);
 }
 public void RegisterSpi(IXSpi spi)
 {
     _api?.RegisterSpi(spi);
 }
示例#8
0
 public TraderClient CreateTrader(IXSpi spi)
 {
     return(_connectManager.CreateTrader(spi));
 }
示例#9
0
 public void RegisterSpi(IXSpi spi)
 {
     _spi = spi;
 }
示例#10
0
 public CtpMdClient(IXSpi spi)
 {
     _spi       = spi;
     _publisher = new StatusPublisher(spi);
 }
示例#11
0
 public void RegisterSpi(IXSpi spi)
 {
     Spi        = spi;
     _publisher = new StatusPublisher(spi);
 }
 public CtpMdClient(IXSpi spi)
 {
     _spi             = spi;
     _publisher       = new StatusPublisher(spi);
     _instrumentsView = _instruments.ToArray();
 }