public void GetLastKnownPriceOfIlliquidAsset_RealData() { var algorithm = new QCAlgorithm(); algorithm.SubscriptionManager.SetDataManager(new DataManagerStub(algorithm)); algorithm.HistoryProvider = new SubscriptionDataReaderHistoryProvider(); var cacheProvider = new ZipDataCacheProvider(new DefaultDataProvider()); algorithm.HistoryProvider.Initialize(new HistoryProviderInitializeParameters( null, null, new DefaultDataProvider(), cacheProvider, new LocalDiskMapFileProvider(), new LocalDiskFactorFileProvider(), null, false, new DataPermissionManager())); algorithm.SetDateTime(new DateTime(2014, 6, 6, 15, 0, 0)); //20140606_twx_minute_quote_american_call_230000_20150117.csv var optionSymbol = Symbol.CreateOption("TWX", Market.USA, OptionStyle.American, OptionRight.Call, 23, new DateTime(2015, 1, 17)); var option = algorithm.AddOptionContract(optionSymbol); var lastKnownPrice = algorithm.GetLastKnownPrice(option); Assert.IsNotNull(lastKnownPrice); // Data gap of more than 15 minutes Assert.Greater((algorithm.Time - lastKnownPrice.EndTime).TotalMinutes, 15); cacheProvider.DisposeSafely(); }
public void GetLastKnownPriceOfIlliquidAsset_TestData() { // Set the start date on Tuesday _algorithm.SetStartDate(2014, 6, 10); var optionSymbol = Symbol.CreateOption("TWX", Market.USA, OptionStyle.American, OptionRight.Call, 23, new DateTime(2015, 1, 17)); var option = _algorithm.AddOptionContract(optionSymbol); // The last known price is on Friday, so we missed data from Monday and no data during Weekend var barTime = new DateTime(2014, 6, 6, 15, 0, 0, 0); _testHistoryProvider.Slices = new[] { new Slice(barTime, new[] { new TradeBar(barTime, optionSymbol, 100, 100, 100, 100, 1) }, barTime) }.ToList(); var lastKnownPrice = _algorithm.GetLastKnownPrice(option); Assert.IsNotNull(lastKnownPrice); Assert.AreEqual(barTime.AddMinutes(1), lastKnownPrice.EndTime); }