Ejemplo n.º 1
0
        public void QuoteBarParseDoesNotScaleOptionsWithNonEquityUnderlying()
        {
            var factory      = new QuoteBar();
            var underlying   = Symbol.CreateFuture("ES", QuantConnect.Market.CME, new DateTime(2021, 3, 19));
            var optionSymbol = Symbol.CreateOption(
                underlying,
                QuantConnect.Market.CME,
                OptionStyle.American,
                OptionRight.Put,
                4200m,
                SecurityIdentifier.DefaultDate);

            var config = new SubscriptionDataConfig(
                typeof(QuoteBar),
                optionSymbol,
                Resolution.Minute,
                TimeZones.Chicago,
                TimeZones.Chicago,
                true,
                false,
                false,
                false,
                TickType.Quote,
                true,
                DataNormalizationMode.Raw);

            var quoteLine = "40560000,1.0,1.5,1.0,1.5,90.0,1.0,1.5,1.0,1.5,100.0";
            var stream    = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(quoteLine)));

            var unscaledQuoteBarFromLine   = (QuoteBar)factory.Reader(config, quoteLine, new DateTime(2020, 9, 22), false);
            var unscaledQuoteBarFromStream = (QuoteBar)factory.Reader(config, stream, new DateTime(2020, 9, 22), false);

            Assert.AreEqual(new DateTime(2020, 9, 22, 11, 17, 0), unscaledQuoteBarFromLine.EndTime);
            Assert.AreEqual(optionSymbol, unscaledQuoteBarFromLine.Symbol);
            Assert.AreEqual(1m, unscaledQuoteBarFromLine.Bid.Open);
            Assert.AreEqual(1.5m, unscaledQuoteBarFromLine.Bid.High);
            Assert.AreEqual(1m, unscaledQuoteBarFromLine.Bid.Low);
            Assert.AreEqual(1.5m, unscaledQuoteBarFromLine.Bid.Close);
            Assert.AreEqual(90m, unscaledQuoteBarFromLine.LastBidSize);
            Assert.AreEqual(1m, unscaledQuoteBarFromLine.Ask.Open);
            Assert.AreEqual(1.5m, unscaledQuoteBarFromLine.Ask.High);
            Assert.AreEqual(1m, unscaledQuoteBarFromLine.Ask.Low);
            Assert.AreEqual(1.5m, unscaledQuoteBarFromLine.Ask.Close);
            Assert.AreEqual(100m, unscaledQuoteBarFromLine.LastAskSize);

            Assert.AreEqual(new DateTime(2020, 9, 22, 11, 17, 0), unscaledQuoteBarFromStream.EndTime);
            Assert.AreEqual(optionSymbol, unscaledQuoteBarFromStream.Symbol);
            Assert.AreEqual(1m, unscaledQuoteBarFromStream.Bid.Open);
            Assert.AreEqual(1.5m, unscaledQuoteBarFromStream.Bid.High);
            Assert.AreEqual(1m, unscaledQuoteBarFromStream.Bid.Low);
            Assert.AreEqual(1.5m, unscaledQuoteBarFromStream.Bid.Close);
            Assert.AreEqual(90m, unscaledQuoteBarFromStream.LastBidSize);
            Assert.AreEqual(1m, unscaledQuoteBarFromStream.Ask.Open);
            Assert.AreEqual(1.5m, unscaledQuoteBarFromStream.Ask.High);
            Assert.AreEqual(1m, unscaledQuoteBarFromStream.Ask.Low);
            Assert.AreEqual(1.5m, unscaledQuoteBarFromStream.Ask.Close);
            Assert.AreEqual(100m, unscaledQuoteBarFromStream.LastAskSize);
        }
Ejemplo n.º 2
0
        public void QuoteBarReader_CanParseTradeBarFormattedData_Successfully()
        {
            var config     = new SubscriptionDataConfig(typeof(TradeBar), Symbols.SPY, Resolution.Second, TimeZones.NewYork, TimeZones.NewYork, false, false, false);
            var line       = "14280000,1.10905,1.10909,1.10904,1.10908";
            var date       = DateTime.MaxValue;
            var isLiveMode = false;

            var quoteBar       = new QuoteBar();
            var parsedQuoteBar = (QuoteBar)quoteBar.Reader(config, line, date, isLiveMode);

            Assert.AreEqual(parsedQuoteBar.Symbol, Symbols.SPY);

            Assert.AreEqual(parsedQuoteBar.Ask.Open, 1.10905);
            Assert.AreEqual(parsedQuoteBar.Ask.High, 1.10909);
            Assert.AreEqual(parsedQuoteBar.Ask.Low, 1.10904);
            Assert.AreEqual(parsedQuoteBar.Ask.Close, 1.10908);

            Assert.AreEqual(parsedQuoteBar.Bid.Open, 1.10905);
            Assert.AreEqual(parsedQuoteBar.Bid.High, 1.10909);
            Assert.AreEqual(parsedQuoteBar.Bid.Low, 1.10904);
            Assert.AreEqual(parsedQuoteBar.Bid.Close, 1.10908);
        }
Ejemplo n.º 3
0
        public void QuoteBarReader_CanParseQuoteBar_Successfully()
        {
            var config = new SubscriptionDataConfig(typeof(TradeBar), Symbols.SPY, Resolution.Second, TimeZones.NewYork, TimeZones.NewYork, false, false, false);
            // Neither a quote or a trade
            var line       = "14340000,11090,11090,11089,11090,100,11090,11088,11088,11090,10000";
            var date       = DateTime.MaxValue;
            var isLiveMode = false;

            var quoteBar       = new QuoteBar();
            var parsedQuoteBar = (QuoteBar)quoteBar.Reader(config, line, date, isLiveMode);

            Assert.AreEqual(parsedQuoteBar.Symbol, Symbols.SPY);

            Assert.AreEqual(parsedQuoteBar.Bid.Open, 1.1090);
            Assert.AreEqual(parsedQuoteBar.Bid.High, 1.1090);
            Assert.AreEqual(parsedQuoteBar.Bid.Low, 1.1089);
            Assert.AreEqual(parsedQuoteBar.Bid.Close, 1.1090);

            Assert.AreEqual(parsedQuoteBar.Ask.Open, 1.10900);
            Assert.AreEqual(parsedQuoteBar.Ask.High, 1.1088);
            Assert.AreEqual(parsedQuoteBar.Ask.Low, 1.1088);
            Assert.AreEqual(parsedQuoteBar.Ask.Close, 1.1090);
        }