public static void Add(IProvider provider) { ProviderManager.providers.AddProvider(provider); if (provider is IExecutionProvider) { ProviderManager.executionProviders.AddProvider(provider); } if (provider is IMarketDataProvider) { ProviderManager.marketDataProviders.AddProvider(provider); } if (provider is IInstrumentProvider) { ProviderManager.instrumentProviders.AddProvider(provider); } if (provider is IHistoricalDataProvider) { ProviderManager.historicalDataProviders.AddProvider(provider); } provider.Connected += new EventHandler(ProviderManager.EmitConnected); provider.Disconnected += new EventHandler(ProviderManager.EmitDisconnected); provider.StatusChanged += new EventHandler(ProviderManager.EmitStatusChanged); provider.Error += new ProviderErrorEventHandler(ProviderManager.OnProviderError); ProviderManager.EmitAdded(provider); IMarketDataProvider marketDataProvider = provider as IMarketDataProvider; if (marketDataProvider != null) { marketDataProvider.NewQuote += new QuoteEventHandler(ProviderManager.EmitNewQuote); marketDataProvider.NewTrade += new TradeEventHandler(ProviderManager.EmitNewTrade); marketDataProvider.NewBar += new BarEventHandler(ProviderManager.EmitNewBar); marketDataProvider.NewBarOpen += new BarEventHandler(ProviderManager.EmitNewBarOpen); marketDataProvider.NewBarSlice += new BarSliceEventHandler(ProviderManager.EmitNewBarSlice); marketDataProvider.NewMarketDepth += new MarketDepthEventHandler(ProviderManager.EmitNewMarketDepth); marketDataProvider.NewFundamental += new FundamentalEventHandler(ProviderManager.EmitNewFundamental); marketDataProvider.NewCorporateAction += new CorporateActionEventHandler(ProviderManager.EmitNewCorporateAction); marketDataProvider.MarketDataRequestReject += new MarketDataRequestRejectEventHandler(ProviderManager.EmitMarketDataRequestReject); } IExecutionProvider executionProvider = provider as IExecutionProvider; if (executionProvider != null) { executionProvider.ExecutionReport += new ExecutionReportEventHandler(ProviderManager.EmitExecutionReport); executionProvider.OrderCancelReject += new OrderCancelRejectEventHandler(ProviderManager.EmitOrderCancelReject); } ProviderManager.LoadProviderProperties(provider); }
public static void Add(IProvider provider) { // if (Framework.Installation.Edition == Edition.Research) // { // switch (provider.Id) // { // case (byte) 1: // case (byte) 2: // case (byte) 17: // case (byte) 19: // case (byte) 25: // break; // case (byte) 18: // return; // default: // return; // } // } ProviderManager.providers.AddProvider(provider); if (provider is IExecutionProvider) { ProviderManager.executionProviders.AddProvider(provider); } if (provider is IMarketDataProvider) { ProviderManager.marketDataProviders.AddProvider(provider); } if (provider is IInstrumentProvider) { ProviderManager.instrumentProviders.AddProvider(provider); } if (provider is IHistoricalDataProvider) { ProviderManager.historicalDataProviders.AddProvider(provider); } provider.Connected += new EventHandler(ProviderManager.EmitConnected); provider.Disconnected += new EventHandler(ProviderManager.EmitDisconnected); provider.StatusChanged += new EventHandler(ProviderManager.EmitStatusChanged); provider.Error += new ProviderErrorEventHandler(ProviderManager.OnProviderError); ProviderManager.EmitAdded(provider); IMarketDataProvider marketDataProvider = provider as IMarketDataProvider; if (marketDataProvider != null) { marketDataProvider.NewQuote += new QuoteEventHandler(ProviderManager.EmitNewQuote); marketDataProvider.NewTrade += new TradeEventHandler(ProviderManager.EmitNewTrade); marketDataProvider.NewBar += new BarEventHandler(ProviderManager.EmitNewBar); marketDataProvider.NewBarOpen += new BarEventHandler(ProviderManager.EmitNewBarOpen); marketDataProvider.NewBarSlice += new BarSliceEventHandler(ProviderManager.EmitNewBarSlice); marketDataProvider.NewMarketDepth += new MarketDepthEventHandler(ProviderManager.EmitNewMarketDepth); marketDataProvider.NewFundamental += new FundamentalEventHandler(ProviderManager.EmitNewFundamental); marketDataProvider.NewCorporateAction += new CorporateActionEventHandler(ProviderManager.EmitNewCorporateAction); marketDataProvider.MarketDataRequestReject += new MarketDataRequestRejectEventHandler(ProviderManager.EmitMarketDataRequestReject); } IExecutionProvider executionProvider = provider as IExecutionProvider; if (executionProvider != null) { executionProvider.ExecutionReport += new ExecutionReportEventHandler(ProviderManager.EmitExecutionReport); executionProvider.OrderCancelReject += new OrderCancelRejectEventHandler(ProviderManager.EmitOrderCancelReject); } ProviderManager.LoadProviderProperties(provider); }