示例#1
0
        public void SerializeRoundTripEstimizeRelease()
        {
            var time             = new DateTime(2020, 3, 19, 10, 0, 0);
            var underlyingSymbol = Symbols.AAPL;
            var symbol           = Symbol.CreateBase(typeof(EstimizeRelease), underlyingSymbol, QuantConnect.Market.USA);

            var item = new EstimizeRelease
            {
                Id            = "123",
                Symbol        = symbol,
                FiscalYear    = 2020,
                FiscalQuarter = 1,
                Eps           = 2,
                Revenue       = null,
                ReleaseDate   = time
            };

            using (var stream = new MemoryStream())
            {
                Serializer.Serialize(stream, item);
                stream.Position = 0;

                var deserialized = Serializer.Deserialize <EstimizeRelease>(stream);

                Assert.AreEqual("123", deserialized.Id);
                Assert.AreEqual(2020, deserialized.FiscalYear);
                Assert.AreEqual(1, deserialized.FiscalQuarter);
                Assert.AreEqual(2, deserialized.Eps);
                Assert.AreEqual(null, deserialized.Revenue);
                Assert.AreEqual(time, deserialized.ReleaseDate);
                Assert.AreEqual(time, deserialized.Time);
                Assert.AreEqual(time, deserialized.EndTime);
            }
        }
示例#2
0
        public void EstimizeReleaseReaderTest()
        {
            var dataCacheProvider = new SingleEntryDataCacheProvider(new DefaultDataProvider());

            var config = new SubscriptionDataConfig(
                typeof(EstimizeRelease),
                Symbol.Create("AAPL.R", SecurityType.Base, QuantConnect.Market.USA),
                Resolution.Daily,
                DateTimeZone.Utc,
                DateTimeZone.Utc,
                false,
                false,
                false,
                true
                );

            var data    = new EstimizeRelease();
            var date    = new DateTime(2019, 6, 10);
            var source  = data.GetSource(config, date, false);
            var factory = SubscriptionDataSourceReader.ForSource(source, dataCacheProvider, config, date, false, data);

            var rows = factory.Read(source).ToList();

            Assert.IsTrue(rows.Count > 0);
        }
示例#3
0
        public void SerializeRoundTripEstimizeRelease()
        {
            var settings = new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.All
            };

            var time             = new DateTime(2020, 3, 19, 10, 0, 0);
            var underlyingSymbol = Symbols.AAPL;
            var symbol           = Symbol.CreateBase(typeof(EstimizeRelease), underlyingSymbol, QuantConnect.Market.USA);

            var item = new EstimizeRelease
            {
                Id            = "123",
                Symbol        = symbol,
                FiscalYear    = 2020,
                FiscalQuarter = 1,
                Eps           = 2,
                Revenue       = null,
                ReleaseDate   = time
            };

            var serialized   = JsonConvert.SerializeObject(item, settings);
            var deserialized = JsonConvert.DeserializeObject <EstimizeRelease>(serialized, settings);

            Assert.AreEqual("123", deserialized.Id);
            Assert.AreEqual(symbol, deserialized.Symbol);
            Assert.AreEqual(2020, deserialized.FiscalYear);
            Assert.AreEqual(1, deserialized.FiscalQuarter);
            Assert.AreEqual(2, deserialized.Eps);
            Assert.AreEqual(null, deserialized.Revenue);
            Assert.AreEqual(time, deserialized.ReleaseDate);
            Assert.AreEqual(time, deserialized.Time);
            Assert.AreEqual(time, deserialized.EndTime);
        }
示例#4
0
        public void SerializeEstimizeReleaseSuccessfully()
        {
            var data = new EstimizeRelease()
            {
                Id          = "0",
                ReleaseDate = new DateTime(2019, 6, 10)
            };

            var content = JsonConvert.SerializeObject(data);

            Assert.IsTrue(content.Contains("\"id\":\"0\""));
            Assert.IsTrue(content.Contains("\"release_date\":\"2019-06-10T00:00:00\""));
            Assert.IsTrue(content.Contains("\"eps\":null"));

            data.Eps = 1.2m;
            content  = JsonConvert.SerializeObject(data);
            Assert.IsTrue(content.Contains("\"eps\":1.2"));
        }
示例#5
0
        private IEnumerable <EstimizeConsensus> Unpack(EstimizeRelease estimizeEstimate, Source source, Type type, JObject jObject)
        {
            var jToken          = jObject[source.ToLower()][type.ToLower()];
            var revisionsJToken = jToken["revisions"];

            var consensuses = revisionsJToken == null
                ? new List <EstimizeConsensus>()
                : JsonConvert.DeserializeObject <List <EstimizeConsensus> >(revisionsJToken.ToString(), JsonSerializerSettings);

            consensuses.Add(JsonConvert.DeserializeObject <EstimizeConsensus>(jToken.ToString(), JsonSerializerSettings));

            foreach (var consensus in consensuses)
            {
                consensus.Id            = estimizeEstimate.Id;
                consensus.FiscalYear    = estimizeEstimate.FiscalYear;
                consensus.FiscalQuarter = estimizeEstimate.FiscalQuarter;
                consensus.Source        = source;
                consensus.Type          = type;
            }

            return(consensuses.Where(x => x.UpdatedAt > DateTime.MinValue));
        }
示例#6
0
 /// <summary>
 /// OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
 /// </summary>
 /// <param name="data">EstimizeRelease object containing the stock release data</param>
 public void OnData(EstimizeRelease data)
 {
     Log($"{Time} - {data}");
 }