public void LiveOptionChainProviderReturnsFutureOptionData() { var now = DateTime.Now; var december = new DateTime(now.Year, 12, 1); var canonicalFuture = Symbol.Create("ES", SecurityType.Future, Market.CME); var expiry = FuturesExpiryFunctions.FuturesExpiryFunction(canonicalFuture)(december); // When the current year's december contract expires, the test starts failing. // This will happen around the last 10 days of December, but will start working // once we've crossed into the new year. // Let's try the next listed contract, which is in March of the next year if this is the case. if (now >= expiry) { expiry = now.AddMonths(-now.Month).AddYears(1).AddMonths(3); } var underlyingFuture = Symbol.CreateFuture("ES", Market.CME, expiry); var provider = new LiveOptionChainProvider(); var result = provider.GetOptionContractList(underlyingFuture, now).ToList(); Assert.AreNotEqual(0, result.Count); foreach (var symbol in result) { Assert.IsTrue(symbol.HasUnderlying); Assert.AreEqual(Market.CME, symbol.ID.Market); Assert.AreEqual(OptionStyle.American, symbol.ID.OptionStyle); Assert.GreaterOrEqual(symbol.ID.StrikePrice, 100m); Assert.Less(symbol.ID.StrikePrice, 30000m); } }
public void LiveOptionChainProviderReturnsData() { var provider = new LiveOptionChainProvider(); var result = provider.GetOptionContractList(Symbols.AAPL, DateTime.Today); Assert.IsTrue(result.Any()); }
public void LiveOptionChainProviderReturnsNoDataForInvalidSymbol() { var symbol = Symbol.Create("ABCDEF123", SecurityType.Equity, Market.USA); var provider = new LiveOptionChainProvider(); var result = provider.GetOptionContractList(symbol, DateTime.Today); Assert.IsFalse(result.Any()); }
public void LiveOptionChainProviderReturnsData() { var provider = new LiveOptionChainProvider(); foreach (var symbol in new[] { Symbols.SPY, Symbols.AAPL, Symbols.MSFT }) { var result = provider.GetOptionContractList(symbol, DateTime.Today); Assert.IsTrue(result.Any()); } }
public void LiveOptionChainProviderReturnsNoDataForOldFuture() { var now = DateTime.Now; var december = now.AddMonths(-now.Month).AddYears(-1); var underlyingFuture = Symbol.CreateFuture("ES", Market.CME, december); var provider = new LiveOptionChainProvider(); var result = provider.GetOptionContractList(underlyingFuture, december); Assert.AreEqual(0, result.Count()); }
public void LiveOptionChainProviderReturnsData() { var provider = new LiveOptionChainProvider(TestGlobals.DataCacheProvider, TestGlobals.MapFileProvider); foreach (var symbol in new[] { Symbols.SPY, Symbols.AAPL, Symbols.MSFT }) { var result = provider.GetOptionContractList(symbol, DateTime.Today).ToList(); var countCall = result.Count(x => x.ID.OptionRight == OptionRight.Call); var countPut = result.Count(x => x.ID.OptionRight == OptionRight.Put); Assert.Greater(countCall, 0); Assert.Greater(countPut, 0); } }
public void LiveOptionChainProviderReturnsFutureOptionData() { var now = DateTime.Now; var december = now.AddMonths(-now.Month).AddMonths(12); var underlyingFuture = Symbol.CreateFuture("ES", Market.CME, december); var provider = new LiveOptionChainProvider(); var result = provider.GetOptionContractList(underlyingFuture, december); Assert.AreNotEqual(0, result.Count()); foreach (var symbol in result) { Assert.IsTrue(symbol.HasUnderlying); Assert.AreEqual(Market.CME, symbol.ID.Market); Assert.AreEqual(OptionStyle.American, symbol.ID.OptionStyle); Assert.GreaterOrEqual(symbol.ID.StrikePrice, 100m); Assert.Less(symbol.ID.StrikePrice, 30000m); } }