Linear Regression Forecast is one of the indicators calculated by the Linear Regression approach.
Remarks
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.
Signature
1
publicabstractinterfaceLinearRegressionForecast
Namespace
cAlgo.API.Indicators
Examples
12345678
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);}}}}
1234567
importclrclr.AddReference("cAlgo.API")fromcAlgo.APIimport*classTest():definitialize(self):# Period is a parameter defined in C# file of indicatorself.linearRegressionForecast=api.Indicators.LinearRegressionForecast(Bars.ClosePrices,api.Period)
1 2 3 4 5 6 7 8 9101112131415161718192021222324
importclrclr.AddReference("cAlgo.API")# Import cAlgo API typesfromcAlgo.APIimport*# Import trading wrapper functionsfromrobot_wrapperimport*classLinearRegressionForecastSample():defon_start(self):self.volumeInUnits=api.Symbol.QuantityToVolumeInUnits(api.VolumeInLots)self.linearRegressionForecast=api.Indicators.LinearRegressionForecast(api.Source,api.Periods)defon_bar_closed(self):ifapi.Bars.ClosePrices.Last(0)>self.linearRegressionForecast.Result.Last(0)andapi.Bars.ClosePrices.Last(1)<=self.linearRegressionForecast.Result.Last(1):self.close_positions(TradeType.Sell)api.ExecuteMarketOrder(TradeType.Buy,api.SymbolName,self.volumeInUnits,api.Label,api.StopLossInPips,api.TakeProfitInPips)elifapi.Bars.ClosePrices.Last(0)<self.linearRegressionForecast.Result.Last(0)andapi.Bars.ClosePrices.Last(1)>=self.linearRegressionForecast.Result.Last(1):self.close_positions(TradeType.Buy)api.ExecuteMarketOrder(TradeType.Sell,api.SymbolName,self.volumeInUnits,api.Label,api.StopLossInPips,api.TakeProfitInPips)defget_bot_positions(self):returnapi.Positions.FindAll(api.Label)defclose_positions(self,tradeType):forpositioninself.get_bot_positions():ifposition.TradeType!=tradeType:continueapi.ClosePosition(position)
Properties
Result
Summary
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]);}
123
defcalculate(self,index):# Print the current result of the Linear Regression Forecast to the logprint(f"Linear Regression Forecast at the current index is = {self.linearRegressionForecast.Result[index]}")