The Welles Wilder's Smoothing indicator is an exponential moving average, but it has different alpha ration. As a result it responds to price changes slower.
usingcAlgo.API;usingcAlgo.API.Indicators;namespacecAlgo.Robots{// This sample cBot shows how to use the Welles Wilder Smoothing indicator[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]publicclassWellesWilderSmoothingSample:Robot{privatedouble_volumeInUnits;privateWellesWilderSmoothing_fastWellesWilderSmoothing;privateWellesWilderSmoothing_slowWellesWilderSmoothing;[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);_fastWellesWilderSmoothing=Indicators.WellesWilderSmoothing(FastMaSource,FastMaPeriod);_slowWellesWilderSmoothing=Indicators.WellesWilderSmoothing(SlowMaSource,SlowMaPeriod);}protectedoverridevoidOnBar(){if(_fastWellesWilderSmoothing.Result.HasCrossedAbove(_slowWellesWilderSmoothing.Result,0)){ClosePositions(TradeType.Sell);ExecuteMarketOrder(TradeType.Buy,SymbolName,_volumeInUnits,Label,StopLossInPips,TakeProfitInPips);}elseif(_fastWellesWilderSmoothing.Result.HasCrossedBelow(_slowWellesWilderSmoothing.Result,0)){ClosePositions(TradeType.Buy);ExecuteMarketOrder(TradeType.Sell,SymbolName,_volumeInUnits,Label,StopLossInPips,TakeProfitInPips);}}privatevoidClosePositions(TradeTypetradeType){foreach(varpositioninBotPositions){if(position.TradeType!=tradeType)continue;ClosePosition(position);}}}}