Example #1
0
        public void ThrowsErrorWhenDataShapeIsNotExpected()
        {
            var consolidator = new DynamicDataConsolidator(1, true, true);
            var data         = new CustomData();

            consolidator.Update(data);
        }
        public void AggregatesTimeValuePairsWithVolumeProperly()
        {
            TradeBar newTradeBar = null;
            var consolidator = new DynamicDataConsolidator(4);
            consolidator.DataConsolidated += (sender, tradeBar) =>
            {
                newTradeBar = tradeBar;
            };
            var reference = DateTime.Today;
            dynamic bar1 = new CustomData
            {
                Symbol = Symbols.SPY,
                Time = reference,
                Value = 5,
            };
            bar1.Volume = 75L;

            consolidator.Update(bar1);
            Assert.IsNull(newTradeBar);

            dynamic bar2 = new CustomData
            {
                Symbol = Symbols.SPY,
                Time = reference.AddHours(1),
                Value = 10
            };
            bar2.Volume = 100L;

            consolidator.Update(bar2);
            Assert.IsNull(newTradeBar);
            dynamic bar3 = new CustomData
            {
                Symbol = Symbols.SPY,
                Time = reference.AddHours(2),
                Value = 1
            };
            bar3.Volume = 115L;

            consolidator.Update(bar3);
            Assert.IsNull(newTradeBar);

            dynamic bar4 = new CustomData
            {
                Symbol = Symbols.SPY,
                Time = reference.AddHours(3),
                Value = 9
            };
            bar4.Volume = 85L;

            consolidator.Update(bar4);
            Assert.IsNotNull(newTradeBar);

            Assert.AreEqual(Symbols.SPY, newTradeBar.Symbol);
            Assert.AreEqual(bar1.Time, newTradeBar.Time);
            Assert.AreEqual(bar1.Value, newTradeBar.Open);
            Assert.AreEqual(bar2.Value, newTradeBar.High);
            Assert.AreEqual(bar3.Value, newTradeBar.Low);
            Assert.AreEqual(bar4.Value, newTradeBar.Close);
            Assert.AreEqual(bar1.Volume + bar2.Volume + bar3.Volume + bar4.Volume, newTradeBar.Volume);
        }
Example #3
0
        public void AggregatesTimeValuePairsWithOutVolumeProperly()
        {
            TradeBar newTradeBar  = null;
            var      consolidator = new DynamicDataConsolidator(4);

            consolidator.DataConsolidated += (sender, tradeBar) =>
            {
                newTradeBar = tradeBar;
            };
            var reference = DateTime.Today;
            var bar1      = new CustomData
            {
                Symbol = Symbols.SPY,
                Time   = reference,
                Value  = 5
            };

            consolidator.Update(bar1);
            Assert.IsNull(newTradeBar);

            var bar2 = new CustomData
            {
                Symbol = Symbols.SPY,
                Time   = reference.AddHours(1),
                Value  = 10
            };

            consolidator.Update(bar2);
            Assert.IsNull(newTradeBar);
            var bar3 = new CustomData
            {
                Symbol = Symbols.SPY,
                Time   = reference.AddHours(2),
                Value  = 1
            };

            consolidator.Update(bar3);
            Assert.IsNull(newTradeBar);

            var bar4 = new CustomData
            {
                Symbol = Symbols.SPY,
                Time   = reference.AddHours(3),
                Value  = 9
            };

            consolidator.Update(bar4);
            Assert.IsNotNull(newTradeBar);

            Assert.AreEqual(Symbols.SPY, newTradeBar.Symbol);
            Assert.AreEqual(bar1.Time, newTradeBar.Time);
            Assert.AreEqual(bar1.Value, newTradeBar.Open);
            Assert.AreEqual(bar2.Value, newTradeBar.High);
            Assert.AreEqual(bar3.Value, newTradeBar.Low);
            Assert.AreEqual(bar4.Value, newTradeBar.Close);
            Assert.AreEqual(0, newTradeBar.Volume);
            Assert.AreEqual(bar4.EndTime, newTradeBar.EndTime);
        }
Example #4
0
        public void AggregatesTradeBarsWithVolumeProperly()
        {
            TradeBar consolidated = null;
            var      consolidator = new DynamicDataConsolidator(3, true, true);

            consolidator.DataConsolidated += (sender, bar) =>
            {
                consolidated = bar;
            };

            var     reference = DateTime.Today;
            dynamic bar1      = new CustomData();

            bar1.Symbol = "SPY";
            bar1.Time   = reference;
            bar1.Open   = 10;
            bar1.High   = 100m;
            bar1.Low    = 1m;
            bar1.Close  = 50m;
            bar1.Volume = 75L;

            dynamic bar2 = new CustomData();

            bar2.Symbol = "SPY";
            bar2.Time   = reference.AddHours(1);
            bar2.Open   = 50m;
            bar2.High   = 123m;
            bar2.Low    = 35m;
            bar2.Close  = 75m;
            bar2.Volume = 100L;

            dynamic bar3 = new CustomData();

            bar3.Symbol = "SPY";
            bar3.Time   = reference.AddHours(1);
            bar3.Open   = 75m;
            bar3.High   = 100m;
            bar3.Low    = 50m;
            bar3.Close  = 83m;
            bar3.Volume = 125L;

            consolidator.Update(bar1);
            Assert.IsNull(consolidated);

            consolidator.Update(bar2);
            Assert.IsNull(consolidated);

            consolidator.Update(bar3);

            Assert.IsNotNull(consolidated);
            Assert.AreEqual("SPY", consolidated.Symbol);
            Assert.AreEqual(bar1.Open, consolidated.Open);
            Assert.AreEqual(Math.Max(bar1.High, Math.Max(bar2.High, bar3.High)), consolidated.High);
            Assert.AreEqual(Math.Min(bar1.Low, Math.Min(bar2.Low, bar3.Low)), consolidated.Low);
            Assert.AreEqual(bar3.Close, consolidated.Close);
            Assert.AreEqual(bar1.Volume + bar2.Volume + bar3.Volume, consolidated.Volume);
        }
Example #5
0
        public void PythonCustomDataTypes_AreAddedToConsolidator_Successfully()
        {
            var qcAlgorithm = new AlgorithmPythonWrapper("Test_CustomDataAlgorithm");

            // Initialize contains the statements:
            // self.AddData(Nifty, "NIFTY")
            // self.AddData(QuandlFuture, "SCF/CME_CL1_ON", Resolution.Daily)
            qcAlgorithm.Initialize();

            var niftyConsolidator = new DynamicDataConsolidator(TimeSpan.FromDays(2));

            Assert.DoesNotThrow(() => qcAlgorithm.SubscriptionManager.AddConsolidator("NIFTY", niftyConsolidator));

            var quandlConsolidator = new DynamicDataConsolidator(TimeSpan.FromDays(2));

            Assert.DoesNotThrow(() => qcAlgorithm.SubscriptionManager.AddConsolidator("SCF/CME_CL1_ON", quandlConsolidator));
        }
        public void PythonCustomDataTypes_AreAddedToConsolidator_Successfully()
        {
            var qcAlgorithm = new AlgorithmPythonWrapper("Test_CustomDataAlgorithm");

            qcAlgorithm.SubscriptionManager.SetDataManager(new DataManagerStub(qcAlgorithm));

            // Initialize contains the statements:
            // self.AddData(Nifty, "NIFTY")
            // self.AddData(CustomPythonData, "IBM", Resolution.Daily)
            qcAlgorithm.Initialize();

            var niftyConsolidator = new DynamicDataConsolidator(TimeSpan.FromDays(2));

            Assert.DoesNotThrow(() => qcAlgorithm.SubscriptionManager.AddConsolidator("NIFTY", niftyConsolidator));

            var customDataConsolidator = new DynamicDataConsolidator(TimeSpan.FromDays(2));

            Assert.DoesNotThrow(() => qcAlgorithm.SubscriptionManager.AddConsolidator("IBM", customDataConsolidator));
        }
Example #7
0
        public void PythonCustomDataTypes_AreAddedToConsolidator_Successfully()
        {
            var pythonPath = new System.IO.DirectoryInfo("RegressionAlgorithms");

            Environment.SetEnvironmentVariable("PYTHONPATH", pythonPath.FullName);

            var qcAlgorithm = new AlgorithmPythonWrapper("Test_CustomDataAlgorithm");

            // Initialize contains the statements:
            // self.AddData(Nifty, "NIFTY")
            // self.AddData(QuandlFuture, "SCF/CME_CL1_ON", Resolution.Daily)
            qcAlgorithm.Initialize();

            var niftyConsolidator = new DynamicDataConsolidator(TimeSpan.FromDays(2));

            Assert.DoesNotThrow(() => qcAlgorithm.SubscriptionManager.AddConsolidator("NIFTY", niftyConsolidator));

            var quandlConsolidator = new DynamicDataConsolidator(TimeSpan.FromDays(2));

            Assert.DoesNotThrow(() => qcAlgorithm.SubscriptionManager.AddConsolidator("SCF/CME_CL1_ON", quandlConsolidator));
        }
        public void AggregatesTradeBarsWithVolumeProperly()
        {
            TradeBar consolidated = null;
            var consolidator = new DynamicDataConsolidator(3);
            consolidator.DataConsolidated += (sender, bar) =>
            {
                consolidated = bar;
            };

            var reference = DateTime.Today;
            dynamic bar1 = new CustomData();
            bar1.Symbol = "SPY";
            bar1.Time = reference;
            bar1.Open = 10;
            bar1.High = 100m;
            bar1.Low = 1m;
            bar1.Close = 50m;
            bar1.Volume = 75L;

            dynamic bar2 = new CustomData();
            bar2.Symbol = "SPY";
            bar2.Time = reference.AddHours(1);
            bar2.Open = 50m;
            bar2.High = 123m;
            bar2.Low = 35m;
            bar2.Close = 75m;
            bar2.Volume = 100L;

            dynamic bar3 = new CustomData();
            bar3.Symbol = "SPY";
            bar3.Time = reference.AddHours(1);
            bar3.Open = 75m;
            bar3.High = 100m;
            bar3.Low = 50m;
            bar3.Close = 83m;
            bar3.Volume = 125L;

            consolidator.Update(bar1);
            Assert.IsNull(consolidated);

            consolidator.Update(bar2);
            Assert.IsNull(consolidated);

            consolidator.Update(bar3);

            Assert.IsNotNull(consolidated);
            Assert.AreEqual("SPY", consolidated.Symbol.Permtick);
            Assert.AreEqual(bar1.Open, consolidated.Open);
            Assert.AreEqual(Math.Max(bar1.High, Math.Max(bar2.High, bar3.High)), consolidated.High);
            Assert.AreEqual(Math.Min(bar1.Low, Math.Min(bar2.Low, bar3.Low)), consolidated.Low);
            Assert.AreEqual(bar3.Close, consolidated.Close);
            Assert.AreEqual(bar1.Volume + bar2.Volume + bar3.Volume, consolidated.Volume);
        }
Example #9
0
        public void AggregatesTimeValuePairsWithVolumeProperly()
        {
            TradeBar newTradeBar  = null;
            var      consolidator = new DynamicDataConsolidator(4, false, true);

            consolidator.DataConsolidated += (sender, tradeBar) =>
            {
                newTradeBar = tradeBar;
            };
            var     reference = DateTime.Today;
            dynamic bar1      = new CustomData
            {
                Symbol = "SPY",
                Time   = reference,
                Value  = 5,
            };

            bar1.Volume = 75L;

            consolidator.Update(bar1);
            Assert.IsNull(newTradeBar);

            dynamic bar2 = new CustomData
            {
                Symbol = "SPY",
                Time   = reference.AddHours(1),
                Value  = 10
            };

            bar2.Volume = 100L;

            consolidator.Update(bar2);
            Assert.IsNull(newTradeBar);
            dynamic bar3 = new CustomData
            {
                Symbol = "SPY",
                Time   = reference.AddHours(2),
                Value  = 1
            };

            bar3.Volume = 115L;

            consolidator.Update(bar3);
            Assert.IsNull(newTradeBar);

            dynamic bar4 = new CustomData
            {
                Symbol = "SPY",
                Time   = reference.AddHours(3),
                Value  = 9
            };

            bar4.Volume = 85L;

            consolidator.Update(bar4);
            Assert.IsNotNull(newTradeBar);

            Assert.AreEqual("SPY", newTradeBar.Symbol);
            Assert.AreEqual(bar1.Time, newTradeBar.Time);
            Assert.AreEqual(bar1.Value, newTradeBar.Open);
            Assert.AreEqual(bar2.Value, newTradeBar.High);
            Assert.AreEqual(bar3.Value, newTradeBar.Low);
            Assert.AreEqual(bar4.Value, newTradeBar.Close);
            Assert.AreEqual(bar1.Volume + bar2.Volume + bar3.Volume + bar4.Volume, newTradeBar.Volume);
        }
 public void ThrowsErrorWhenDataShapeIsNotExpected()
 {
     var consolidator = new DynamicDataConsolidator(1, true, true);
     var data = new CustomData();
     consolidator.Update(data);
 }