usingcAlgo.API;usingcAlgo.API.Indicators;namespacecAlgo.Robots{// This sample cBot shows how to use the Historical Volatility indicator[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]publicclassHistoricalVolatilitySample:Robot{privatedouble_volumeInUnits;privateHistoricalVolatility_historicalVolatility;privateSimpleMovingAverage_simpleMovingAverage;[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);_historicalVolatility=Indicators.HistoricalVolatility(Bars.ClosePrices,14,252);_simpleMovingAverage=Indicators.SimpleMovingAverage(Bars.ClosePrices,9);}protectedoverridevoidOnBar(){if(_historicalVolatility.Result.Last(1)<_historicalVolatility.Result.Maximum(14))return;if(Bars.ClosePrices.Last(1)>_simpleMovingAverage.Result.Last(1)&&Bars.ClosePrices.Last(2)<_simpleMovingAverage.Result.Last(2)){ClosePositions(TradeType.Sell);ExecuteMarketOrder(TradeType.Buy,SymbolName,_volumeInUnits,Label,StopLossInPips,TakeProfitInPips);}elseif(Bars.ClosePrices.Last(1)<_simpleMovingAverage.Result.Last(1)&&Bars.ClosePrices.Last(2)>_simpleMovingAverage.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 and BarHistory are parameters defined in C# file of indicator self.historicalVolatility=api.Indicators.HistoricalVolatility(api.Bars.ClosePrices,api.Period,api.BarHistory)