public void DownloadsFuturesData(string ticker, Resolution resolution, int days)
        {
            const SecurityType securityType = SecurityType.Future;

            using (var downloader = new IBDataDownloader())
            {
                var symbols = downloader.GetChainSymbols(ticker, securityType, true).ToList();

                var startDate = DateTime.UtcNow.Date.AddDays(-days);
                var endDate   = DateTime.UtcNow.Date;

                downloader.DownloadAndSave(symbols, resolution, securityType, TickType.Trade, startDate, endDate);
                downloader.DownloadAndSave(symbols, resolution, securityType, TickType.Quote, startDate, endDate);
            }
        }
        public void ThrowsIfDifferentRootSymbols()
        {
            Assert.Throws <ArgumentException>(
                () =>
            {
                using (var downloader = new IBDataDownloader())
                {
                    var startDate = DateTime.UtcNow.Date.AddDays(-1);
                    var endDate   = DateTime.UtcNow.Date;

                    var symbols = new List <Symbol> {
                        Symbols.Future_ESZ18_Dec2018, Symbols.Future_CLF19_Jan2019
                    };
                    downloader.DownloadAndSave(symbols, Resolution.Minute, SecurityType.Future, TickType.Trade, startDate, endDate);
                }
            });
        }
        public void ThrowsIfDifferentSecurityType()
        {
            Assert.Throws <ArgumentException>(
                () =>
            {
                using (var downloader = new IBDataDownloader())
                {
                    var startDate = DateTime.UtcNow.Date.AddDays(-1);
                    var endDate   = DateTime.UtcNow.Date;

                    var symbols = new List <Symbol> {
                        Symbols.SPY_C_192_Feb19_2016
                    };
                    downloader.DownloadAndSave(symbols, Resolution.Minute, SecurityType.Future, TickType.Trade, startDate, endDate);
                }
            });
        }