private static IDataFeed RunLiveDataFeed( IAlgorithm algorithm, DateTime startDate, IEnumerable <Symbol> symbols, ITimeProvider timeProvider, DataManager dataManager, FuncDataQueueHandler funcDataQueueHandler = null) { var feed = new TestableLiveTradingDataFeed(funcDataQueueHandler ?? new FuncDataQueueHandler(x => Enumerable.Empty <BaseData>()), timeProvider); var mapFileProvider = new LocalDiskMapFileProvider(); feed.Initialize(algorithm, new LiveNodePacket(), new BacktestingResultHandler(), mapFileProvider, new LocalDiskFactorFileProvider(mapFileProvider), new DefaultDataProvider(), dataManager); foreach (var symbol in symbols) { var config = algorithm.Securities[symbol].SubscriptionDataConfig; var request = new SubscriptionRequest(false, null, algorithm.Securities[symbol], config, startDate, Time.EndOfTime); feed.AddSubscription(request); } var feedThreadStarted = new ManualResetEvent(false); Task.Factory.StartNew(() => { feedThreadStarted.Set(); feed.Run(); }); feedThreadStarted.WaitOne(); return(feed); }