DPO
DPO in ProBuilder restituisce il Detrended Price Oscillator, che rimuove il trend di lungo termine per mettere in evidenza i cicli di prezzo più brevi. Sintassi, formula, esempi.
Sintassi
DPO[N](price)Parametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
N | intero | nessuno | Numero di periodi per la media mobile. L'oscillatore isola i cicli più brevi di circa N bar; 20 e 21 sono valori comuni. |
price | fonte di prezzo | chiusura | Serie di prezzo su cui è calcolato l'oscillatore, ad esempio close, open, high, low, o typicalprice. |
Formula
DPO = price - Average[N](price)[N/2 + 1]Il N-periodi, la media mobile semplice è spostata indietro di N/2 + 1 bar, poi sottratta dal prezzo corrente. Il risultato oscilla attorno allo zero.
Come funziona
Il trend di lungo termine tende a dominare i grafici di prezzo grezzi, nascondendo gli swing ritmici più brevi al suo interno. Il DPO affronta questo problema confrontando il prezzo corrente con una media mobile di circa mezzo ciclo prima. Poiché la media è spostata indietro nel tempo, rappresenta dove il trend "era", e la differenza isola la deviazione del prezzo da quella linea di trend.
L'output è un oscillatore illimitato centrato sullo zero. I valori positivi significano che il prezzo si trova sopra la media spostata, i valori negativi che si trova sotto. La sequenza di massimi e minimi del DPO approssima la lunghezza del ciclo dominante di breve termine: misurare la distanza in bar tra minimi successivi del DPO fornisce una stima del periodo del ciclo, informazione usata per cronometrare gli ingressi all'interno di un trend più ampio.
Il DPO non è deliberatamente un indicatore di trend. Il suo spostamento rimuove proprio la componente su cui si basano i trend follower, quindi normalmente viene abbinato a un filtro direzionale che decide su quale lato del mercato operare, mentre il DPO cronometra gli swing.
Esempi
Esempio 1, Rilevare un estremo del DPO a 10 bar (Indicatore)
// 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)Calcola il DPO a 21 periodi del prezzo tipico e restituisce 1 ogni volta che il valore corrente supera ogni valore delle 10 bar precedenti, segnalando un'impennata di deviazione rialzista dal trend.
Esempio 2, Timing del ciclo sulla linea dello zero con un filtro di trend (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
ENDIFLa media mobile definisce la direzione del trend e gli attraversamenti della linea dello zero del DPO cronometrano gli swing di ciclo al suo interno.
Esempio 3, Screening di minimi di ciclo profondi (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")Restituisce gli strumenti in cui il DPO ha appena girato al rialzo dal suo valore più basso in 20 bar, un possibile minimo di ciclo.
Interpretazione
| Condizione | Lettura |
|---|---|
| DPO sopra lo zero | Il prezzo è sopra la sua media spostata, il ciclo breve è in fase di salita. |
| DPO sotto lo zero | Il prezzo è sotto la media spostata, il ciclo è in fase di discesa. |
| Picco del DPO | Possibile punto di ipercomprato di breve termine all'interno del ciclo. |
| Minimo del DPO | Possibile punto di ipervenduto di breve termine all'interno del ciclo. |
La distanza tra minimi (o massimi) consecutivi stima la lunghezza del ciclo dominante in bar. Poiché il DPO è illimitato e specifico dello strumento, il suo livello assoluto non è confrontabile tra mercati diversi; gli estremi si valutano in relazione allo storico recente dell'oscillatore stesso.
Errori e insidie comuni
- Leggere il DPO come un segnale di trend. L'indicatore rimuove il trend per costruzione. Un DPO in salita in un mercato in discesa non dice nulla sulla direzione più ampia, quindi abbinalo a una misura di trend separata.
- Uso errato delle parentesi. Il periodo va tra parentesi quadre e la fonte di prezzo tra parentesi tonde,
DPO[21](close). ScrivereDPO(21, close)genera un errore di sintassi. - Confrontare i livelli tra strumenti diversi. I valori del DPO scalano con il prezzo e la volatilità dello strumento. Un valore di 5 può essere estremo su un mercato e rumore su un altro; normalizza oppure confronta solo all'interno di uno stesso strumento.
- Aspettarsi un allineamento con le bar più recenti. La media spostata fa sì che l'oscillatore descriva la deviazione da un trend misurato mezza finestra prima. In prossimità di bruschi cambi di trend il DPO può essere in ritardo rispetto all'impressione visiva del grafico.
Istruzioni correlate
Cycle, indicatore di ciclo dedicato con obiettivi analoghi.Average, la media mobile semplice usata all'interno del calcolo del DPO.ROC, rate of change, un oscillatore di momentum percentuale.Momentum, variazione di prezzo grezza su N bar.PriceOscillator, differenza tra due medie mobili in percentuale.RSI, oscillatore di momentum limitato con intervallo fisso da 0 a 100.CCI, oscillatore basato sulla deviazione con un uso simile in mean reversion.TypicalPrice, serie di input comune per il DPO, (high + low + close) / 3.