Syntax
public LinearRegSlope(DataSeries ds, int period, string description)
public static LinearRegSlope 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
Linear Regression Slope returns the slope of the Linear Regression line (see
LinearReg) of the DataSeries
ds for the specified
period. It looks at the prices for the number of specified periods and finds a straight line which best fits all the prices. The slope of this straight line is returned. Use the slope to determine if the trend is up (positive value) or down (negative value), as well as the general strength of the trend. It shows how much the prices are expected to change over time.
Linear Regression Slope indicator is a statistical indicator. Other indicators in the same class are
LinearReg,
StdError,
RSquared and
StdDev.
Interpretation
- An up-sloping Linear Regression line (LinearRegSlope > 0) indicates that prices have been rising within the regression period, you could open a long position if the rising trend is significant. Use RSquared to determine trend significances.
- A down-sloping line (LinearRegSlope < 0) indicates prices have been falling within the regression period, you could open a short position if the decline is significant. Use RSquared to determine trend significances.
- You can open a contrary short-term position to the prevailing trend when the Linear Regression Slope begins to round off at extreme levels.
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. The slope of this Linear Regression trendline (given by
LinearReg) is the value return by the LinearRegSlope 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()
{
/*
Minor up and down trends highlighted by
confirmation of 2 linear regression lines
*/
DataSeries lrs20 = LinearRegSlope.Series( Close, 20 );
DataSeries lrs10 = LinearRegSlope.Series( Close, 10 );
ChartPane LinRegSlopePane = CreatePane( 50, true, true );
PlotSeries( LinRegSlopePane, lrs20, Color.Black, WealthLab.LineStyle.Solid, 1 );
PlotSeries( LinRegSlopePane, lrs10, Color.Blue, WealthLab.LineStyle.Solid, 1 );
SetBarColors( Color.Black, Color.Black );
for(int bar = 20; bar < Bars.Count; bar++)
{
if( ( lrs20[bar] > 0 ) & ( lrs10[bar] > 0 ) )
SetBarColor( bar, Color.Blue );
if( ( lrs20[bar] < 0 ) & ( lrs10[bar] < 0 ) )
SetBarColor( bar, Color.Red );
}
}
}
}