/** * @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))); }
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)); }
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); }
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); }
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)); }