Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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());
            }
        }
Beispiel #5
0
        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());
        }
Beispiel #6
0
        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);
            }
        }
Beispiel #7
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);
            }
        }