Detrended Price Oscillator (DPO)
For a list of all members of this type, see DPO Members.
System.Object
RQuant.Indicator.TTimeArray
RQuant.Indicator.TDoubleArray
RQuant.Indicator.TIndicator
RQuant.Indicator.DPO
Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.
The Detrended Price Oscillator attempts to eliminate the trend in prices. Detrended prices a llow you to more easily identify cycles and overbought/oversold levels.
Long-term cycles are made up of a series of short-term cycles. Analyzing these shorter term components of the long-term cycles can be helpful in identifying major turning points in the longer term cycle. The DPO helps you remove these longer-term cycles from prices. To calculate the DPO, you specify a time period. Cycles longer than this time period are removed from prices, leaving the shorter-term cycles.
This indicator is described in more details in the Steve Achelis' book "Technical Analysis from A to Z".
Formula:
TDataManager.cd("Demo");
TDailyArray Daily1 = TDataManager.GetStock("YHOO").DailyArray;
DateTime Date1 = DateTime.Parse("1999/02/08");
DateTime Date2 = DateTime.Parse("2000/12/29");
TDailyArray Daily = Daily1.Clone(Date1, Date2);
TCanvas Canvas = new TCanvas("Canvas","DPO DEMO",600,400);
DPO DPO = new DPO(Daily, 14);
Canvas.cd(1);
Daily.Draw("c");
DPO.Draw(Color.Red);
Namespace: RQuant.Indicator
Assembly: RQuant.Indicator (in RQuant.Indicator.dll)
DPO Members | RQuant.Indicator Namespace