The Linear Regression Forecast is used for identifying trends and trend direction, and shows the statistical trend of a financial instrument over a specified time period. The calculation uses a Linear Regression Line.
privateLinearRegressionForecast_linearRegressionForecast;[Parameter("Period", DefaultValue = 14)]publicintPeriod{get;set;}protectedoverridevoidInitialize(){// initialize a new instance of LinearRegressionForecastIndicator class_linearRegressionForecast=Indicators.LinearRegressionForecast(Bars.ClosePrices,Period);}
usingcAlgo.API;usingcAlgo.API.Indicators;usingcAlgo.API.Internals;namespacecAlgo.Robots{// This sample cBot shows how to use the Linear Regression Forecast indicator[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]publicclassLinearRegressionForecastSample:Robot{privatedouble_volumeInUnits;privateLinearRegressionForecast_linearRegressionForecast;[Parameter("Volume (Lots)", DefaultValue = 0.01)]publicdoubleVolumeInLots{get;set;}[Parameter("Stop Loss (Pips)", DefaultValue = 10)]publicdoubleStopLossInPips{get;set;}[Parameter("Take Profit (Pips)", DefaultValue = 10)]publicdoubleTakeProfitInPips{get;set;}[Parameter("Label", DefaultValue = "Sample")]publicstringLabel{get;set;}publicPosition[]BotPositions{get{returnPositions.FindAll(Label);}}protectedoverridevoidOnStart(){_volumeInUnits=Symbol.QuantityToVolumeInUnits(VolumeInLots);_linearRegressionForecast=Indicators.LinearRegressionForecast(Bars.ClosePrices,20);}protectedoverridevoidOnBar(){if(Bars.ClosePrices.Last(1)>_linearRegressionForecast.Result.Last(1)&&Bars.ClosePrices.Last(2)<=_linearRegressionForecast.Result.Last(2)){ClosePositions(TradeType.Sell);ExecuteMarketOrder(TradeType.Buy,SymbolName,_volumeInUnits,Label,StopLossInPips,TakeProfitInPips);}elseif(Bars.ClosePrices.Last(1)<_linearRegressionForecast.Result.Last(1)&&Bars.ClosePrices.Last(2)>=_linearRegressionForecast.Result.Last(2)){ClosePositions(TradeType.Buy);ExecuteMarketOrder(TradeType.Sell,SymbolName,_volumeInUnits,Label,StopLossInPips,TakeProfitInPips);}}privatevoidClosePositions(TradeTypetradeType){foreach(varpositioninBotPositions){if(position.TradeType!=tradeType)continue;ClosePosition(position);}}}}
The Result Series of the Linear Regression Forecast Indicator
Signature
1
publicabstractIndicatorDataSeriesResult{get;}
Return Value
IndicatorDataSeries
Examples
12345
publicoverridevoidCalculate(intindex){// Print the current result of the Linear Regression Forecast to the logPrint("Linear Regression Forecast at the current index is = {0}",_linearRegressionForecast.Result[index]);}