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); }
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); }
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); }