usingcAlgo.API;usingcAlgo.API.Indicators;namespacecAlgo.Robots{// This sample cBot shows how to use the Weighted Moving Average indicator[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]publicclassWeightedMovingAverageSample:Robot{privatedouble_volumeInUnits;privateWeightedMovingAverage_fastWeightedMovingAverage;privateWeightedMovingAverage_slowWeightedMovingAverage;[Parameter("Source", Group = "Fast MA")]publicDataSeriesFastMaSource{get;set;}[Parameter("Period", DefaultValue = 9, Group = "Fast MA")]publicintFastMaPeriod{get;set;}[Parameter("Source", Group = "Slow MA")]publicDataSeriesSlowMaSource{get;set;}[Parameter("Period", DefaultValue = 20, Group = "Slow MA")]publicintSlowMaPeriod{get;set;}[Parameter("Volume (Lots)", DefaultValue = 0.01, Group = "Trade")]publicdoubleVolumeInLots{get;set;}[Parameter("Stop Loss (Pips)", DefaultValue = 10, Group = "Trade")]publicdoubleStopLossInPips{get;set;}[Parameter("Take Profit (Pips)", DefaultValue = 10, Group = "Trade")]publicdoubleTakeProfitInPips{get;set;}[Parameter("Label", DefaultValue = "Sample", Group = "Trade")]publicstringLabel{get;set;}publicPosition[]BotPositions{get{returnPositions.FindAll(Label);}}protectedoverridevoidOnStart(){_volumeInUnits=Symbol.QuantityToVolumeInUnits(VolumeInLots);_fastWeightedMovingAverage=Indicators.WeightedMovingAverage(FastMaSource,FastMaPeriod);_slowWeightedMovingAverage=Indicators.WeightedMovingAverage(SlowMaSource,SlowMaPeriod);}protectedoverridevoidOnBar(){if(_fastWeightedMovingAverage.Result.HasCrossedAbove(_slowWeightedMovingAverage.Result,0)){ClosePositions(TradeType.Sell);ExecuteMarketOrder(TradeType.Buy,SymbolName,_volumeInUnits,Label,StopLossInPips,TakeProfitInPips);}elseif(_fastWeightedMovingAverage.Result.HasCrossedBelow(_slowWeightedMovingAverage.Result,0)){ClosePositions(TradeType.Buy);ExecuteMarketOrder(TradeType.Sell,SymbolName,_volumeInUnits,Label,StopLossInPips,TakeProfitInPips);}}privatevoidClosePositions(TradeTypetradeType){foreach(varpositioninBotPositions){if(position.TradeType!=tradeType)continue;ClosePosition(position);}}}}