usingcAlgo.API;usingcAlgo.API.Indicators;usingcAlgo.API.Internals;namespacecAlgo.Robots{// This sample cBot shows how to use the Linear Regression R Squared indicator[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]publicclassLinearRegressionRSquaredSample:Robot{privatedouble_volumeInUnits;privateLinearRegressionRSquared_linearRegressionRSquared;privateSimpleMovingAverage_simpleMovingAverage;privateExponentialMovingAverage_exponentialMovingAverage;[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);_linearRegressionRSquared=Indicators.LinearRegressionRSquared(Bars.ClosePrices,20);_simpleMovingAverage=Indicators.SimpleMovingAverage(_linearRegressionRSquared.Result,10);_exponentialMovingAverage=Indicators.ExponentialMovingAverage(Bars.ClosePrices,20);}protectedoverridevoidOnBar(){if(Bars.ClosePrices.Last(1)>_exponentialMovingAverage.Result.Last(1)&&Bars.ClosePrices.Last(2)<=_exponentialMovingAverage.Result.Last(2)){ClosePositions(TradeType.Sell);if(_linearRegressionRSquared.Result.Last(1)>_simpleMovingAverage.Result.Last(1)){ExecuteMarketOrder(TradeType.Buy,SymbolName,_volumeInUnits,Label,StopLossInPips,TakeProfitInPips);}}elseif(Bars.ClosePrices.Last(1)<_exponentialMovingAverage.Result.Last(1)&&Bars.ClosePrices.Last(2)>=_exponentialMovingAverage.Result.Last(2)){ClosePositions(TradeType.Buy);if(_linearRegressionRSquared.Result.Last(1)>_simpleMovingAverage.Result.Last(1)){ExecuteMarketOrder(TradeType.Sell,SymbolName,_volumeInUnits,Label,StopLossInPips,TakeProfitInPips);}}}privatevoidClosePositions(TradeTypetradeType){foreach(varpositioninBotPositions){if(position.TradeType!=tradeType)continue;ClosePosition(position);}}}}
1 2 3 4 5 6 7 8 910111213
importclrclr.AddReference("cAlgo.API")# Import cAlgo API typesfromcAlgo.APIimport*# Import trading wrapper functionsfromrobot_wrapperimport*classTest():defon_start(self):# Initialize rSquared indicator# Source and Periods are parameters defined in C# fileself.rSquared=api.Indicators.LinearRegressionRSquared(api.Source,api.Periods)defon_tick(self):print(self.rSquared.Result.LastValue)
importclrclr.AddReference("cAlgo.API")# Import cAlgo API typesfromcAlgo.APIimport*# Import trading wrapper functionsfromrobot_wrapperimport*classLinearRegressionRSquaredSample():defon_start(self):self.volumeInUnits=api.Symbol.QuantityToVolumeInUnits(api.VolumeInLots)self.linearRegressionRSquared=api.Indicators.LinearRegressionRSquared(api.SourceLinearRegression,api.PeriodsLinearRegression);self.simpleMovingAverage=api.Indicators.SimpleMovingAverage(self.linearRegressionRSquared.Result,api.PeriodsSimpleMovingAverage);self.exponentialMovingAverage=api.Indicators.ExponentialMovingAverage(api.SourceExponentialMovingAverage,api.PeriodsExponentialMovingAverage);defon_bar_closed(self):ifapi.Bars.ClosePrices.Last(0)>self.exponentialMovingAverage.Result.Last(0)andapi.Bars.ClosePrices.Last(1)<=self.exponentialMovingAverage.Result.Last(1):self.close_positions(TradeType.Sell)ifself.linearRegressionRSquared.Result.Last(0)>self.simpleMovingAverage.Result.Last(0):api.ExecuteMarketOrder(TradeType.Buy,api.SymbolName,self.volumeInUnits,api.Label,api.StopLossInPips,api.TakeProfitInPips)elifapi.Bars.ClosePrices.Last(0)<self.exponentialMovingAverage.Result.Last(0)andapi.Bars.ClosePrices.Last(1)>=self.exponentialMovingAverage.Result.Last(1):self.close_positions(TradeType.Buy)ifself.linearRegressionRSquared.Result.Last(0)>self.simpleMovingAverage.Result.Last(0):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 R Squared indicator.
Signature
1
publicabstractIndicatorDataSeriesResult{get;}
Return Value
IndicatorDataSeries
Examples
1 2 3 4 5 6 7 8 91011
privateLinearRegressionRSquaredrSquared;protectedoverridevoidOnStart(){// initialize rSquared indicatorrSquared=Indicators.LinearRegressionRSquared(Bars.ClosePrices,9);}protectedoverridevoidOnTick(){// Print the last value of rSquared indicator to the logPrint("The current value of R Squared is {0}",rSquared.Result.LastValue);}
1 2 3 4 5 6 7 8 91011121314
importclrclr.AddReference("cAlgo.API")# Import cAlgo API typesfromcAlgo.APIimport*# Import trading wrapper functionsfromrobot_wrapperimport*classTest():defon_start(self):# Initialize rSquared indicator# Source and Periods are parameters defined in C# fileself.rSquared=api.Indicators.LinearRegressionRSquared(api.Source,api.Periods)defon_tick(self):# Print the last value of rSquared indicator to the logprint(f"The current value of R Squared is {self.rSquared.Result.LastValue}")