DPO
DPO i ProBuilder returnerer Detrended Price Oscillator, som fjerner den langsiktige trenden for å avdekke kortere prissykluser. Syntaks, formel, eksempler.
Syntaks
DPO[N](price)Parametere
| Navn | Type | Standard | Beskrivelse |
|---|---|---|---|
N | heltall | ingen | Antall perioder for det glidende gjennomsnittet. Oscillatoren isolerer sykluser kortere enn omtrent N barer; 20 og 21 er vanlige verdier. |
price | priskilde | lukk | Prisserien oscillatoren beregnes på, for eksempel close, open, high, low, eller typicalprice. |
Formel
DPO = price - Average[N](price)[N/2 + 1]Den N-periodes enkelt glidende gjennomsnitt forskyves tilbake med N/2 + 1 barer, og trekkes så fra gjeldende pris. Resultatet svinger rundt null.
Slik fungerer det
Den langsiktige trenden har en tendens til å dominere rene prisdiagrammer og skjule de kortere rytmiske svingningene i dem. DPO løser dette ved å sammenligne den gjeldende prisen med et glidende gjennomsnitt fra omtrent en halv syklus tidligere. Fordi gjennomsnittet er forskjøvet bakover i tid, representerer det hvor trenden "var", og differansen isolerer prisens avvik fra den trendlinjen.
Utdataen er en ubegrenset oscillator sentrert på null. Positive verdier betyr at prisen ligger over det forskjøvede gjennomsnittet, negative verdier betyr at den ligger under. Rekkefølgen av topper og bunner i DPO tilnærmer lengden på den dominerende kortsiktige syklusen: å måle baravstanden mellom påfølgende DPO-bunner gir et anslag på syklusperioden, informasjon som brukes til å time innganger innenfor en større trend.
DPO er med hensikt ikke en trendindikator. Forskyvningen fjerner nettopp den komponenten trendfølgere baserer seg på, så den kombineres normalt med et retningsfilter som bestemmer hvilken side av markedet man skal handle, mens DPO timer svingningene.
Eksempler
Eksempel 1, Oppdage et 10-barers DPO-ekstrempunkt (Indikator)
// 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)Beregner 21-periode DPO av typisk pris og returnerer 1 hver gang den gjeldende målingen overstiger alle målingene fra de 10 forrige barene, og markerer et utbrudd av positivt avvik fra trenden.
Eksempel 2, Syklustiming på nullinjen med et trendfilter (ProBacktest)
// 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
ENDIFDet glidende gjennomsnittet definerer trendretningen, og DPOs kryssinger av nullinjen timer syklussvingningene innenfor den.
Eksempel 3, Screening for dype syklusbunner (ProScreener)
// 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")Returnerer instrumenter der DPO nettopp har snudd oppover fra sin laveste måling på 20 barer, en mulig syklusbunn.
Tolkning
| Betingelse | Avlesning |
|---|---|
| DPO over null | Prisen er over sitt forskjøvede gjennomsnitt, den korte syklusen er i oppgang. |
| DPO under null | Prisen er under det forskjøvede gjennomsnittet, syklusen er i nedgang. |
| DPO-topp | Mulig kortsiktig overkjøpt punkt i syklusen. |
| DPO-bunn | Mulig kortsiktig oversolgt punkt i syklusen. |
Avstanden mellom påfølgende bunner (eller topper) anslår den dominerende syklusens lengde i barer. Fordi DPO er ubegrenset og instrumentspesifikk, er det absolutte nivået ikke sammenlignbart på tvers av markeder; ekstrempunkter vurderes relativt til oscillatorens egen nylige historikk.
Vanlige feil og fallgruver
- Å lese DPO som et trendsignal. Indikatoren fjerner trend ved konstruksjon. En stigende DPO i et fallende marked sier ingenting om den overordnede retningen, så kombiner den med et eget trendmål.
- Feil bruk av parenteser. Perioden angis i hakeparenteser og priskilden i runde parenteser,
DPO[21](close). Å skriveDPO(21, close)gir en syntaksfeil. - Å sammenligne nivåer på tvers av instrumenter. DPO-verdier skalerer med instrumentets pris og volatilitet. En måling på 5 kan være ekstrem i ett marked og støy i et annet; normaliser, eller sammenlign bare innenfor ett instrument.
- Å forvente samsvar med de siste barene. Det forskjøvede gjennomsnittet betyr at oscillatoren beskriver avvik fra en trend målt et halvt vindu tilbake. Nær brå trendskift kan DPO henge etter det visuelle inntrykket av diagrammet.
Relaterte instruksjoner
Cycle, dedikert syklusindikator med relaterte formål.Average, det enkle glidende gjennomsnittet som brukes inne i DPO-beregningen.ROC, endringsrate, en prosentbasert momentum-oscillator.Momentum, rå prisendring over N barer.PriceOscillator, differansen mellom to glidende gjennomsnitt i prosent.RSI, avgrenset momentum-oscillator med fast område fra 0 til 100.CCI, avviksbasert oscillator med liknende bruk for mean reversion.TypicalPrice, vanlig inndataserie for DPO, (high + low + close) / 3.