usingcAlgo.API;usingcAlgo.API.Indicators;usingSystem;namespacecAlgo.Robots{// This sample cBot shows how to use the Standard Deviation indicator[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]publicclassStandardDeviationSample:Robot{privatedouble_volumeInUnits;privateStandardDeviation_standardDeviation;privateSimpleMovingAverage_simpleMovingAverage;[Parameter("Volume (Lots)", DefaultValue = 0.01)]publicdoubleVolumeInLots{get;set;}[Parameter("Label", DefaultValue = "Sample")]publicstringLabel{get;set;}publicPosition[]BotPositions{get{returnPositions.FindAll(Label);}}protectedoverridevoidOnStart(){_volumeInUnits=Symbol.QuantityToVolumeInUnits(VolumeInLots);_standardDeviation=Indicators.StandardDeviation(Bars.ClosePrices,20,MovingAverageType.Simple);_simpleMovingAverage=Indicators.SimpleMovingAverage(Bars.ClosePrices,14);}protectedoverridevoidOnBar(){if(Bars.ClosePrices.HasCrossedAbove(_simpleMovingAverage.Result,0)){ClosePositions(TradeType.Sell);ExecuteOrder(TradeType.Buy);}elseif(Bars.ClosePrices.HasCrossedBelow(_simpleMovingAverage.Result,0)){ClosePositions(TradeType.Buy);ExecuteOrder(TradeType.Sell);}}privatevoidClosePositions(TradeTypetradeType){foreach(varpositioninBotPositions){if(position.TradeType!=tradeType)continue;ClosePosition(position);}}privatevoidExecuteOrder(TradeTypetradeType){varstandardDeviationInPips=_standardDeviation.Result.Last(1)*(Symbol.TickSize/Symbol.PipSize*Math.Pow(10,Symbol.Digits));varstopLossInPips=standardDeviationInPips*2;vartakeProfitInPips=stopLossInPips*2;ExecuteMarketOrder(tradeType,SymbolName,_volumeInUnits,Label,stopLossInPips,takeProfitInPips);}}}