/**
         * @param index the actual index
         * @return the relative slope
         */
        private decimal CalculateSlopeRel(int index)
        {
            SimpleLinearRegressionIndicator slrRef = new SimpleLinearRegressionIndicator(_indicator, _timeFrame);
            int firstIndex = Math.Max(0, index - _timeFrame + 1);

            return((slrRef.GetValue(index).Minus(slrRef.GetValue(firstIndex)))
                   .DividedBy(slrRef.GetValue(index)));
        }
Esempio n. 2
0
        public void CalculateLinearRegression()
        {
            var values    = new double[] { 1, 2, 1.3, 3.75, 2.25 };
            var indicator = new ClosePriceIndicator(GenerateTimeSeries.From(values));
            var reg       = new SimpleLinearRegressionIndicator(indicator, 5);

//			SimpleRegression origReg = buildSimpleRegression(values);
            TaTestsUtils.AssertDecimalEquals(reg.GetValue(4), 2.91);         //origReg.predict(4));
        }
Esempio n. 3
0
        public void NotComputedLinearRegression()
        {
            var linearReg = new SimpleLinearRegressionIndicator(_closePrice, 0);

            Assert.IsTrue(linearReg.GetValue(0).NaN);
            Assert.IsTrue(linearReg.GetValue(1).NaN);
            Assert.IsTrue(linearReg.GetValue(2).NaN);

            linearReg = new SimpleLinearRegressionIndicator(_closePrice, 1);
            Assert.IsTrue(linearReg.GetValue(0).NaN);
            Assert.IsTrue(linearReg.GetValue(1).NaN);
            Assert.IsTrue(linearReg.GetValue(2).NaN);
        }
Esempio n. 4
0
        public void CalculateLinearRegressionWithLessThan2ObservationsReturnsNaN()
        {
            var reg = new SimpleLinearRegressionIndicator(_closePrice, 0);

            Assert.IsTrue(reg.GetValue(0).NaN);
            Assert.IsTrue(reg.GetValue(3).NaN);
            Assert.IsTrue(reg.GetValue(6).NaN);
            Assert.IsTrue(reg.GetValue(9).NaN);
            reg = new SimpleLinearRegressionIndicator(_closePrice, 1);
            Assert.IsTrue(reg.GetValue(0).NaN);
            Assert.IsTrue(reg.GetValue(3).NaN);
            Assert.IsTrue(reg.GetValue(6).NaN);
            Assert.IsTrue(reg.GetValue(9).NaN);
        }
Esempio n. 5
0
        public void CalculateLinearRegressionOn4Observations()
        {
            var reg = new SimpleLinearRegressionIndicator(_closePrice, 4);

            TaTestsUtils.AssertDecimalEquals(reg.GetValue(1), 20);
            TaTestsUtils.AssertDecimalEquals(reg.GetValue(2), 30);

//			SimpleRegression origReg = buildSimpleRegression(10, 20, 30, 40);
            TaTestsUtils.AssertDecimalEquals(reg.GetValue(3), 40);
//			TaTestsUtils.AssertDecimalEquals(reg.GetValue(3), origReg.predict(3));

//			origReg = buildSimpleRegression(30, 40, 30, 40);
            TaTestsUtils.AssertDecimalEquals(reg.GetValue(5), 38);         //origReg.predict(3));

//			origReg = buildSimpleRegression(30, 20, 30, 50);
            TaTestsUtils.AssertDecimalEquals(reg.GetValue(9), 43);         //origReg.predict(3));
        }