public void CorrectlyDeterminesContractList()
        {
            var symbol = Symbol.CreateFuture(Futures.Indices.SP500EMini, Market.CME, DateTime.Today);
            var result = _provider.GetFutureContractList(symbol, new DateTime(2013, 10, 11));

            Assert.IsNotEmpty(result);
        }
        public void CorrectlyDeterminesContractList(string date)
        {
            var dateTime = Time.ParseDate(date);
            var symbol   = Symbol.CreateFuture(Futures.Indices.SP500EMini, Market.CME, dateTime.AddDays(10));
            var result   = _provider.GetFutureContractList(symbol, dateTime);

            Assert.IsNotEmpty(result);
        }
Esempio n. 3
0
        /// <summary>
        /// Gets <see cref="FutureHistory"/> object for a given symbol, date and resolution
        /// </summary>
        /// <param name="symbol">The symbol to retrieve historical future data for</param>
        /// <param name="date">Date of the data</param>
        /// <param name="resolution">The resolution to request</param>
        /// <returns>A <see cref="FutureHistory"/> object that contains historical future data.</returns>
        public FutureHistory GetFutureHistory(Symbol symbol, DateTime date, Resolution? resolution = null)
        {
            SetStartDate(date.AddDays(1));
            var future = Securities[symbol] as Future;

            var provider = new BacktestingFutureChainProvider();
            var allSymbols = provider.GetFutureContractList(future.Symbol, date);

            var requests = future.ContractFilter.Filter(new FutureFilterUniverse(allSymbols, new Tick { Time = date }))
                .Select(x =>
                     new HistoryRequest(date.AddDays(-1),
                                        date,
                                        typeof(QuoteBar),
                                        x,
                                        resolution ?? future.Resolution,
                                        future.Exchange.Hours,
                                        MarketHoursDatabase.FromDataFolder().GetDataTimeZone(future.Symbol.ID.Market, future.Symbol, future.Type),
                                        Resolution.Minute,
                                        future.IsExtendedMarketHours,
                                        future.IsCustomData(),
                                        DataNormalizationMode.Raw,
                                        LeanData.GetCommonTickTypeForCommonDataTypes(typeof(QuoteBar), future.Type))
                    );

            return new FutureHistory(HistoryProvider.GetHistory(requests, TimeZone).Memoize());
        }