Ease of Movement is a volume based oscillator that measures the "ease" of price movement.
Remarks
It quantifies the price/volume relationship. When the oscillator is close to zero it signifies that prices will not move easy. Conversely, prices are advancing or declining with relative ease when the oscillator is positive or negative away from zero.
Signature
1
publicabstractinterfaceEaseOfMovement
Namespace
cAlgo.API.Indicators
Examples
1 2 3 4 5 6 7 8 910111213141516
privateEaseOfMovement_easeOfMovement;[Parameter("Period", DefaultValue = 14)]publicintPeriod{get;set;}[Parameter("MA Type", DefaultValue = MovingAverageType.Simple)]publicMovingAverageTypeMAType{get;set;}[Output("Main")]publicIndicatorDataSeriesResult{get;set;}protectedoverridevoidInitialize(){_easeOfMovement=Indicators.EaseOfMovement(Period,MAType);}publicoverridevoidCalculate(intindex){// Display Result of IndicatorResult[index]=_easeOfMovement.Result[index];}
usingcAlgo.API;usingcAlgo.API.Indicators;namespacecAlgo.Robots{// This sample cBot shows how to use the Ease Of Movement indicator[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]publicclassEaseOfMovementSample:Robot{privatedouble_volumeInUnits;privateEaseOfMovement_easeOfMovement;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);_easeOfMovement=Indicators.EaseOfMovement(14,MovingAverageType.Simple);_simpleMovingAverage=Indicators.SimpleMovingAverage(Bars.ClosePrices,9);}protectedoverridevoidOnBar(){if(_easeOfMovement.Result.Last(1)>(Symbol.TickSize*0.05)){if(Bars.ClosePrices.Last(1)>_simpleMovingAverage.Result.Last(1)&&Bars.ClosePrices.Last(2)<_simpleMovingAverage.Result.Last(2)){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)){ExecuteMarketOrder(TradeType.Sell,SymbolName,_volumeInUnits,Label,StopLossInPips,TakeProfitInPips);}}else{ClosePositions();}}privatevoidClosePositions(){foreach(varpositioninBotPositions){ClosePosition(position);}}}}
1 2 3 4 5 6 7 8 91011
importclrclr.AddReference("cAlgo.API")fromcAlgo.APIimport*classTest():definitialize(self):# Periods, and MaType are parameters defined in C# file of indicatorself.easeOfMovement=api.Indicators.EaseOfMovement(api.Period,api.MaType)defcalculate(self,index):# Display Result of Indicator# Result is an indicator output defined in C# file of indicatorapi.Result[index]=self.easeOfMovement.Result[index]
1 2 3 4 5 6 7 8 9101112131415161718192021222324
importclrclr.AddReference("cAlgo.API")# Import cAlgo API typesfromcAlgo.APIimport*# Import trading wrapper functionsfromrobot_wrapperimport*classEaseOfMovementSample():defon_start(self):self.volumeInUnits=api.Symbol.QuantityToVolumeInUnits(api.VolumeInLots)self.easeOfMovement=api.Indicators.EaseOfMovement(api.Periods,api.MaType)self.simpleMovingAverage=api.Indicators.SimpleMovingAverage(api.Bars.ClosePrices,9)defon_bar_closed(self):ifself.easeOfMovement.Result.Last(0)>(api.Symbol.TickSize*0.05):ifapi.Bars.ClosePrices.Last(0)>self.simpleMovingAverage.Result.Last(0)andapi.Bars.ClosePrices.Last(1)<self.simpleMovingAverage.Result.Last(1):api.ExecuteMarketOrder(TradeType.Buy,api.SymbolName,self.volumeInUnits,api.Label,api.StopLossInPips,api.TakeProfitInPips)elifapi.Bars.ClosePrices.Last(0)<self.simpleMovingAverage.Result.Last(0)andapi.Bars.ClosePrices.Last(1)>self.simpleMovingAverage.Result.Last(1):api.ExecuteMarketOrder(TradeType.Sell,api.SymbolName,self.volumeInUnits,api.Label,api.StopLossInPips,api.TakeProfitInPips)else:self.close_positions()defget_bot_positions(self):returnapi.Positions.FindAll(api.Label)defclose_positions(self):forpositioninself.get_bot_positions():api.ClosePosition(position)
Properties
Result
Summary
The time series of the Ease Of Movement Indicator.
importclrclr.AddReference("cAlgo.API")# Import cAlgo API typesfromcAlgo.APIimport*# Import trading wrapper functionsfromrobot_wrapperimport*classTest():defon_start(self):# Periods, and MaType are parameters defined in C# file of cBotself.easeOfMovement=api.Indicators.EaseOfMovement(api.Period,api.MaType)defon_bar(self):currentValue=self.easeOfMovement.Result.LastValue