Example #1
0
        /// <summary>
        /// 连接指定服务器
        /// </summary>
        public void Connect(ConnectionInfo connectionInfo)
        {
            LogHelper.Info(GetType(), "开始连接服务器:" + connectionInfo.Name);
            IPlugin_Market plugin_Market = marketPluginMgr.GetMarketTraderByConnection(connectionInfo);

            if (plugin_Market == null)
            {
                throw new ApplicationException("连接" + connectionInfo.Name + "找不到对应插件");
            }

            this.currentPlugin_MarketTrader = plugin_Market.MarketTrader;
            if (currentPlugin_MarketTrader == null)
            {
                throw new ApplicationException("连接" + connectionInfo.Name + "未实现市场交易插件");
            }

            this.currentConnectionInfo = connectionInfo;
            this.currentPlugin_MarketTrader.OnConnectionStatus       = OnConnectionStatus;
            this.currentPlugin_MarketTrader.OnReturnInstruments      = OnReturnInstrument;
            this.currentPlugin_MarketTrader.OnReturnAccount          = OnReturnAccount;
            this.currentPlugin_MarketTrader.OnReturnInvestorPosition = OnReturnInvestorPosition;
            this.currentPlugin_MarketTrader.OnReturnOrder            = OnReturnOrder;
            this.currentPlugin_MarketTrader.OnReturnTrade            = OnReturnTrade;

            this.currentPlugin_MarketTrader.Connect(currentConnectionInfo);
        }
Example #2
0
        public void TestGetPluginObject()
        {
            IPluginMgr     pluginMgr     = GetPluginMgr();
            IPlugin_Market plugin_Market = pluginMgr.GetPluginObject <IPlugin_Market>("MOCK.MARKET");

            AssertMockMarketObject(plugin_Market);

            IPlugin_HistoryData plugin_HistoryData = pluginMgr.GetPluginObject <IPlugin_HistoryData>("MOCK.HISTORYDATA");

            AssertMockHistoryDataObject(plugin_HistoryData);
        }
Example #3
0
        private static void AssertMockMarketObject(IPlugin_Market plugin_Market)
        {
            List <ConnectionInfo> connections = plugin_Market.MarketData.GetAllConnections();

            Assert.AreEqual(2, connections.Count);
            ConnectionInfo connection = connections[0];

            Assert.AreEqual("MOCKCONN1", connection.Id);
            Assert.AreEqual("MOCK连接", connection.Name);
            Assert.AreEqual("MOCK连接,测试用", connection.Description);
        }
Example #4
0
 private void AddMarketTraderConnections(string pluginId, IPlugin_Market plugin_Market, List <ConnectionInfo> conns)
 {
     for (int i = 0; i < conns.Count; i++)
     {
         ConnectionInfo conn    = conns[i];
         ConnectionInfo newConn = (ConnectionInfo)conn.Clone();
         string         connID  = pluginId + "." + conn.Id;
         newConn.Data["ID"] = connID;
         marketTraderConnections.Add(newConn);
         dic_ConnectionId_MarketTrader.Add(connID, plugin_Market);
     }
 }
Example #5
0
        public DataReceiver(IPlugin_Market plugin_Market, string path)
        {
            this.path                = path;
            this.currentMarket       = plugin_Market;
            this.plugin_MarketData   = plugin_Market.MarketData;
            this.plugin_MarketTrader = plugin_Market.MarketTrader;

            this.plugin_MarketData.OnConnectionStatus = OnConnectionStatus_MarketData;
            this.plugin_MarketData.OnReturnMarketData = OnReturnMarketData;

            plugin_MarketTrader.OnConnectionStatus  = OnConnectionStatus_MarketTrader;
            plugin_MarketTrader.OnReturnInstruments = OnReturnInstrument;
        }
Example #6
0
        public MarketPluginMgr(MarketType marketType)
        {
            IPluginMgr        pluginMgr = PluginMgrFactory.DefaultPluginMgr;
            List <PluginInfo> plugins   = pluginMgr.GetPlugins(marketType, typeof(IPlugin_Market));

            marketDataConnections   = new List <ConnectionInfo>();
            marketTraderConnections = new List <ConnectionInfo>();

            for (int i = 0; i < plugins.Count; i++)
            {
                PluginInfo     pluginInfo    = plugins[i];
                IPlugin_Market plugin_Market = pluginMgr.GetPluginObject <IPlugin_Market>(pluginInfo);

                AddMarketDataConnections(pluginInfo.PluginID, plugin_Market, plugin_Market.MarketData.GetAllConnections());
                AddMarketTraderConnections(pluginInfo.PluginID, plugin_Market, plugin_Market.MarketTrader.GetAllConnections());
            }
        }
Example #7
0
 private void Init(string todayDataPath, IPlugin_Market plugin_Market, IPlugin_HistoryData plugin_HistoryData, int lastOpenDate, string[] receiveCodes, List <KLinePeriod> klinePeriods)
 {
     this.plugin_Market = plugin_Market;
     this.receiveCodes  = receiveCodes;
     this.klinePeriods  = klinePeriods;
     //初始化历史数据
     this.dataReaderFactory = DataReaderFactory.CreateDataReader("");
     if (lastOpenDate < 0)
     {
         this.lastOpenDate = this.dataReaderFactory.TradingDayReader.LastTradingDay;
     }
     else
     {
         this.lastOpenDate = lastOpenDate;
     }
     //初始化数据接收器
     this.dataReceiver = new DataReceiver(plugin_Market, todayDataPath);
     this.dataReceiver.Subscribe(receiveCodes);
     this.dataReceiver.OnReceiverPrepared = this.onReceiverPrepared;
 }
Example #8
0
        /// <summary>
        /// 连接指定服务器
        /// </summary>
        public void Connect(ConnectionInfo connectionInfo)
        {
            LogHelper.Info(GetType(), "开始连接数据服务器:" + connectionInfo.Name);
            IPlugin_Market plugin_Market = marketPluginMgr.GetMarketDataByConnection(connectionInfo);

            if (plugin_Market == null)
            {
                throw new ApplicationException("连接" + connectionInfo.Name + "找不到对应插件");
            }

            this.plugin_MarketUtils       = plugin_Market.MarketUtils;
            this.currentPlugin_MarketData = plugin_Market.MarketData;
            if (currentPlugin_MarketData == null)
            {
                throw new ApplicationException("连接" + connectionInfo.Name + "未实现市场数据插件");
            }

            this.currentConnectionInfo = connectionInfo;
            this.currentPlugin_MarketData.OnConnectionStatus = OnConnectionStatus;
            this.currentPlugin_MarketData.OnReturnMarketData = OnReturnMarketData;
            this.currentPlugin_MarketData.Connect(connectionInfo);
        }
Example #9
0
 public RealTimeDataReceiver(string todayDataPath, IPlugin_Market plugin_Market, IPlugin_HistoryData plugin_HistoryData, int lastOpenDate, String[] receiveCodes, List <KLinePeriod> klinePeriods)
 {
     Init(todayDataPath, plugin_Market, plugin_HistoryData, lastOpenDate, receiveCodes, klinePeriods);
 }
Example #10
0
 /// <summary>
 /// 默认保存在D:\SCPRESENT目录里
 /// </summary>
 /// <param name="plugin_Market"></param>
 public DataReceiver(IPlugin_Market plugin_Market) : this(plugin_Market, @"D:\SCPRESENT")
 {
 }
Example #11
0
 /// <summary>
 /// 构建数据接收器
 /// </summary>
 /// <param name="plugin_Market"></param>
 /// <param name="path"></param>
 /// <param name="subscribeAll"></param>
 public DataReceiver(IPlugin_Market plugin_Market, string path, bool subscribeAll) : this(plugin_Market, path)
 {
     this.subscribeAll = subscribeAll;
 }