# API ChartStyles Community Components Community Indicators IndexDefinitions Knowledge Base Misc Optimizers PosSizers Providers Standard Indicators TASC Traders Tips TASCIndicators Visualizers ### Navigation

Quick Search
»
Advanced Search »

# LinearReg

### Syntax

```public LinearReg(DataSeries ds, int period, string description)
public static LinearReg Series(DataSeries ds, int period)
public static double Value(int bar, DataSeries ds, int period)```

### Parameter Description

 ds Price series period Indicator calculation period

### Description

Returns the Linear Regression value for the specified DataSeries ds and period. LinearReg gathers the prices for the number of specified periods and finds a straight line which best fits all the prices using a linear regression model. The procedure is reinitialized and repeated for each bar in the Price Series. Since a new value is calculated at each Bar, the result is not a straight linear regression trendline; rather, it is an indicator which loosely tracks the price action.

LinearReg is a statistical indicator. Other indicators in the same class are LinearRegSlope, StdError, RSquared and StdDev.

### Interpretation

• Since the Linear Regression indicator displays the statistically-predicted price value, you can look for cases where price veers sharply from the predicted value. Use RSquared to determine significant weakness in the trend and if due for a return to the predicted value.

### Calculation

Linear Regression is a somewhat complex statistical calculation. It uses the least square method to fit a trendline to the data by minimizing the distance between the price and the Linear Regression trendline. LinearReg returns the final value of the LinearRegLine, recalculated for each bar over the regression Period to complete indicator.

### Example

```using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;namespace WealthLab.Strategies
{
public class MyStrategy : WealthScript
{
protected override void Execute()
{
// Report on how far closing prices are away from predicted value

string s;
int bar = Bars.Count-1;
double close = Close[bar];

double Diff = close - LinearReg.Series( Close, 20 )[bar];
Diff = Diff/close*100;

if( Diff > 0 )
s = "Price closed above "; else
s = "Price closed below ";
Diff = Math.Abs( Diff );
s = s + "the Regression Line by " + Bars.FormatValue( Diff ) + "%";

DrawLabel( PricePane, s );
PlotSeries( PricePane, LinearReg.Series( Close, 20 ), Color.Black, WealthLab.LineStyle.Solid, 1 );
}
}
}```

 Important Disclaimer: The information provided by Wealth-Lab is strictly for informational purposes and is not to be construed as advice or solicitation to buy or sell any security.  The owner of Wealth-Lab.com assumes no liability resulting from the use of the material contained herein for investment purposes. By using this web site, you agree to the terms of this disclaimer and our Terms of Use.

ScrewTurn Wiki. Some of the icons created by FamFamFam.