The Volume Rate of Change indicator measures the Rate Of Change of the tick volume.
Remarks
It shows whether a volume trend is developing and can be used to confirm price moves or not.
Signature
1
publicabstractinterfaceVolumeROC
Namespace
cAlgo.API.Indicators
Examples
1 2 3 4 5 6 7 8 91011121314
privateVolumeROC_volumeROC;[Parameter("Period", DefaultValue = 14)]publicintPeriod{get;set;}[Output("Main")]publicIndicatorDataSeriesResult{get;set;}protectedoverridevoidInitialize(){_volumeROC=Indicators.VolumeROC(Period);}publicoverridevoidCalculate(intindex){// Display Result of IndicatorResult[index]=_volumeROC.Result[index];}
usingcAlgo.API;usingcAlgo.API.Indicators;namespacecAlgo.Robots{/// /// This sample cBot shows how to use the Volume ROC indicator/// [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]publicclassVolumeROCSample:Robot{privatedouble_volumeInUnits;privateVolumeROC_volumeROC;privateSimpleMovingAverage_priceSimpleMovingAverage;privateSimpleMovingAverage_volumeROCSimpleMovingAverage;[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);_volumeROC=Indicators.VolumeROC(14);_volumeROCSimpleMovingAverage=Indicators.SimpleMovingAverage(_volumeROC.Result,14);_priceSimpleMovingAverage=Indicators.SimpleMovingAverage(Bars.ClosePrices,14);}protectedoverridevoidOnBar(){if(_volumeROC.Result.Last(1)<_volumeROCSimpleMovingAverage.Result.Last(1))return;if(Bars.ClosePrices.Last(1)>_priceSimpleMovingAverage.Result.Last(1)&&Bars.ClosePrices.Last(2)<=_priceSimpleMovingAverage.Result.Last(2)){ClosePositions(TradeType.Sell);ExecuteMarketOrder(TradeType.Buy,SymbolName,_volumeInUnits,Label,StopLossInPips,TakeProfitInPips);}elseif(Bars.ClosePrices.Last(1)<_priceSimpleMovingAverage.Result.Last(1)&&Bars.ClosePrices.Last(2)>=_priceSimpleMovingAverage.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);}}}}
1 2 3 4 5 6 7 8 910
importclrclr.AddReference("cAlgo.API")fromcAlgo.APIimport*classTest():definitialize(self):# Periods is a parameter defined in C# file of indicatorself.volumeROC=api.Indicators.VolumeROC(api.Periods)defcalculate(self,index):# Result is an output defined in C# file of indicatorapi.Result[index]=self.volumeROC.Result[index]
importclrclr.AddReference("cAlgo.API")fromcAlgo.APIimport*classTest():defon_start(self):# Periods is a parameter defined in C# file of indicatorself.volumeROC=api.Indicators.VolumeROC(api.Periods)defon_bar(self):currentValue=self.volumeROC.Result.LastValue