The Detrended Price Oscillator Indicator interface.
Remarks
The Detrended Price Oscillator eliminates trends in prices, showing only absolute changes in price movement.
Signature
1
publicabstractinterfaceDetrendedPriceOscillator
Namespace
cAlgo.API.Indicators
Examples
1 2 3 4 5 6 7 8 9101112
privateDetrendedPriceOscillator_detrendedPriceOscillator;[Output("Main")]publicIndicatorDataSeriesResult{get;set;}protectedoverridevoidInitialize(){_detrendedPriceOscillator=Indicators.DetrendedPriceOscillator(Source,Periods,MaType);}publicoverridevoidCalculate(intindex){// Display Result of IndicatorResult[index]=_detrendedPriceOscillator.Result[index];}
usingcAlgo.API;usingcAlgo.API.Indicators;namespacecAlgo.Robots{// This sample cBot shows how to use the Detrended Price Oscillator indicator[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]publicclassDetrendedPriceOscillatorSample:Robot{privatedouble_volumeInUnits;privateDetrendedPriceOscillator_detrendedPriceOscillator;[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);_detrendedPriceOscillator=Indicators.DetrendedPriceOscillator(Bars.ClosePrices,14,MovingAverageType.Simple);}protectedoverridevoidOnBar(){if(_detrendedPriceOscillator.Result.Last(1)>0&&_detrendedPriceOscillator.Result.Last(2)<=0){ClosePositions(TradeType.Sell);ExecuteMarketOrder(TradeType.Buy,SymbolName,_volumeInUnits,Label,StopLossInPips,TakeProfitInPips);}elseif(_detrendedPriceOscillator.Result.Last(1)<0&&_detrendedPriceOscillator.Result.Last(2)>=0){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 91011
importclrclr.AddReference("cAlgo.API")fromcAlgo.APIimport*classTest():definitialize(self):# Source, Periods, and MaType are parameters defined in C# file of indicatorself.detrendedPriceOscillator=api.Indicators.DetrendedPriceOscillator(api.Source,api.Periods,api.MaType)defcalculate(self,index):# Result is an output defined in C# file of indicator# Display Result of Indicatorapi.Result[index]=self.detrendedPriceOscillator.Result[index]
""" VolumeInLots, Periods, MaType, StopLossInPips, TakeProfitInPips, and Label are parameters defined in C# file of cBot. """importclrclr.AddReference("cAlgo.API")# Import cAlgo API typesfromcAlgo.APIimport*# Import trading wrapper functionsfromrobot_wrapperimport*classDetrendedPriceOscillatorSample():defon_start(self):self.volumeInUnits=api.Symbol.QuantityToVolumeInUnits(api.VolumeInLots)self.detrendedPriceOscillator=api.Indicators.DetrendedPriceOscillator(api.Bars.ClosePrices,api.Periods,api.MaType)defon_bar_closed(self):ifself.detrendedPriceOscillator.Result.Last(0)>0andself.detrendedPriceOscillator.Result.Last(1)<=0:self.close_positions(TradeType.Sell)api.ExecuteMarketOrder(TradeType.Buy,api.SymbolName,self.volumeInUnits,api.Label,api.StopLossInPips,api.TakeProfitInPips)elifself.detrendedPriceOscillator.Result.Last(0)<0andself.detrendedPriceOscillator.Result.Last(1)>=0:self.close_positions(TradeType.Buy)api.ExecuteMarketOrder(TradeType.Sell,api.SymbolName,self.volumeInUnits,api.Label,api.StopLossInPips,api.TakeProfitInPips)defget_bot_positions(self):returnapi.Positions.FindAll(api.Label)defclose_positions(self,tradeType):forpositioninself.get_bot_positions():ifposition.TradeType!=tradeType:continueapi.ClosePosition(position)
Properties
Result
Summary
The resulting time series of Detrended Price Oscillator calculation.
importclrclr.AddReference("cAlgo.API")# Import cAlgo API typesfromcAlgo.APIimport*# Import trading wrapper functionsfromrobot_wrapperimport*classTest():defon_start(self):# Source, PeriodFast, PeriodSlow, and MaType are parameters defined in C# file of cBotself.dpoFast=api.Indicators.DetrendedPriceOscillator(api.Source,api.PeriodFast,api.MaType)self.dpoSlow=api.Indicators.DetrendedPriceOscillator(api.Source,api.PeriodSlow,api.MaType)defon_bar(self):ifself.dpoFast.Result.Count<1:returncurrentIndex=self.dpoFast.Result.Count-1prevIndex=currentIndex-1ifself.dpoFast.Result[prevIndex]>self.dpoSlow.Result[prevIndex]:# Do something