Jetzt beitreten
Indikatoren/probuilder · probacktest · proorder · proscreener

DPO

DPO gibt in ProBuilder den Detrended Price Oscillator zurück, der den langfristigen Trend entfernt, um kürzere Kurszyklen sichtbar zu machen. Syntax, Formel, Beispiele.

Syntax

probuilder
DPO[N](price)

Parameter

NameTypStandardBeschreibung
NGanzzahlkeineAnzahl der Perioden für den gleitenden Durchschnitt. Der Oszillator isoliert Zyklen kürzer als etwa N Bars; 20 und 21 sind gängige Werte.
priceKursquelleSchlusskursKursserie, auf der der Oszillator berechnet wird, zum Beispiel close, open, high, low, oder typicalprice.

Formel

Code
DPO = price - Average[N](price)[N/2 + 1]

Der N-Perioden-Durchschnitt wird zurückversetzt um N/2 + 1 Bars und dann vom aktuellen Kurs abgezogen. Das Ergebnis oszilliert um Null.

So funktioniert es

Der langfristige Trend dominiert rohe Kurscharts meist und verdeckt die kürzeren rhythmischen Schwankungen darin. Der DPO begegnet dem, indem er den aktuellen Kurs mit einem gleitenden Durchschnitt von etwa einem halben Zyklus früher vergleicht. Da der Durchschnitt zeitlich zurückversetzt ist, stellt er dar, wo der Trend "war", und die Differenz isoliert die Abweichung des Kurses von dieser Trendlinie.

Das Ergebnis ist ein unbegrenzter Oszillator, der um null zentriert ist. Positive Werte bedeuten, dass der Kurs über dem verschobenen Durchschnitt liegt, negative Werte, dass er darunter liegt. Die Folge der Hoch- und Tiefpunkte im DPO nähert die Länge des dominanten kurzfristigen Zyklus an: Der Abstand in Bars zwischen aufeinanderfolgenden DPO-Tiefpunkten liefert eine Schätzung der Zyklusperiode, eine Information, die zum Timing von Einstiegen innerhalb eines größeren Trends verwendet wird.

Der DPO ist absichtlich kein Trendindikator. Seine Verschiebung entfernt genau die Komponente, auf die sich Trendfolger stützen, daher wird er normalerweise mit einem Richtungsfilter kombiniert, der entscheidet, auf welcher Seite des Marktes gehandelt wird, während der DPO die Swings timt.

Beispiele

Beispiel 1, Ein DPO-Extrem über 10 Bars erkennen (Indikator)

probuilder
// 21-period DPO on the typical price
myDPO = DPO[21](typicalprice)

// Find the highest DPO value of the previous 10 bars
value = 0
FOR i = 1 TO 10 DO
  if(myDPO[i] > value) THEN
    value = myDPO[i]
  ENDIF
NEXT

// Flag when the current DPO exceeds that maximum
if(myDPO > value) THEN
  extremebullish = 1
ELSE
  extremebullish = 0
ENDIF

RETURN extremebullish COLOURED(124,252,0)

Berechnet den DPO über 21 Perioden auf den typischen Kurs und gibt 1 zurück, wenn der aktuelle Wert jeden Wert der vorherigen 10 Bars übersteigt, was einen Schub positiver Abweichung vom Trend markiert.

Beispiel 2, Zyklus-Timing an der Nulllinie mit einem Trendfilter (ProBacktest)

probuilder
// Trade DPO upswings only in the direction of the 100-bar trend
trend = Average[100](close)
osc   = DPO[20](close)

IF NOT LongOnMarket AND close > trend AND osc CROSSES OVER 0 THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

IF LongOnMarket AND osc CROSSES UNDER 0 THEN
  SELL AT MARKET
ENDIF

Der gleitende Durchschnitt bestimmt die Trendrichtung, und die Nulllinien-Kreuzungen des DPO timen die Zyklus-Swings darin.

Beispiel 3, Screening nach tiefen Zyklustiefs (ProScreener)

probuilder
// Instruments whose DPO turned up from a 20-bar low
osc = DPO[21](close)
trough = osc[1] <= Lowest[20](osc)[1] AND osc > osc[1]
SCREENER[trough](osc AS "DPO")

Gibt Instrumente zurück, bei denen der DPO gerade von seinem tiefsten Wert in 20 Bars nach oben gedreht hat, ein möglicher Zyklustiefpunkt.

Interpretation

BedingungAblesung
DPO über nullDer Kurs liegt über seinem verschobenen Durchschnitt, der kurze Zyklus befindet sich im Aufschwung.
DPO unter nullDer Kurs liegt unter dem verschobenen Durchschnitt, der Zyklus befindet sich im Abschwung.
DPO-HochpunktMöglicher kurzfristig überkaufter Punkt innerhalb des Zyklus.
DPO-TiefpunktMöglicher kurzfristig überverkaufter Punkt innerhalb des Zyklus.

Der Abstand zwischen aufeinanderfolgenden Tiefpunkten (oder Hochpunkten) schätzt die dominante Zykluslänge in Bars. Da der DPO unbegrenzt und instrumentenspezifisch ist, ist sein absoluter Wert nicht über Märkte hinweg vergleichbar; Extremwerte werden relativ zur eigenen jüngeren Historie des Oszillators beurteilt.

Häufige Fehler und Stolperfallen

  • Den DPO als Trendsignal lesen. Der Indikator entfernt den Trend konstruktionsbedingt. Ein steigender DPO in einem fallenden Markt sagt nichts über die größere Richtung aus, kombinieren Sie ihn daher mit einem separaten Trendmaß.
  • Falsche Klammerverwendung. Die Periode steht in eckigen Klammern und die Kursquelle in runden Klammern, DPO[21](close). Schreiben DPO(21, close) löst einen Syntaxfehler aus.
  • Niveaus über Instrumente hinweg vergleichen. DPO-Werte skalieren mit dem Kurs und der Volatilität des Instruments. Ein Wert von 5 kann auf einem Markt extrem und auf einem anderen Rauschen sein; normalisieren Sie oder vergleichen Sie nur innerhalb eines Instruments.
  • Übereinstimmung mit den neuesten Bars erwarten. Der verschobene Durchschnitt bedeutet, dass der Oszillator die Abweichung von einem Trend beschreibt, der ein halbes Fenster zuvor gemessen wurde. In der Nähe starker Trendwechsel kann der DPO dem visuellen Eindruck des Charts nachlaufen.
  • Cycle, eigenständiger Zyklusindikator mit ähnlichen Zielen.
  • Average, der einfache gleitende Durchschnitt, der in der DPO-Berechnung verwendet wird.
  • ROC, Änderungsrate, ein prozentualer Momentum-Oszillator.
  • Momentum, rohe Kursveränderung über N Bars.
  • PriceOscillator, Differenz zwischen zwei gleitenden Durchschnitten in Prozent.
  • RSI, begrenzter Momentum-Oszillator mit festem Bereich von 0 bis 100.
  • CCI, abweichungsbasierter Oszillator mit ähnlichem Einsatz für Mean Reversion.
  • TypicalPrice, gängige Eingabereihe für den DPO, (high + low + close) / 3.