Únete hoy
Indicadores/probuilder · probacktest · proorder · proscreener

DPO

DPO en ProBuilder devuelve el Detrended Price Oscillator, que elimina la tendencia de largo plazo para dejar a la vista los ciclos de precio más cortos. Sintaxis, fórmula, ejemplos.

Sintaxis

probuilder
DPO[N](price)

Parámetros

NombreTipoPor defectoDescripción
NenteroningunoNúmero de periodos de la media móvil. El oscilador aísla los ciclos más cortos de aproximadamente N bars; 20 y 21 son valores habituales.
pricefuente de preciocloseSerie de precios sobre la que se calcula el oscilador, por ejemplo close, open, high, low, o typicalprice.

Fórmula

código
DPO = price - Average[N](price)[N/2 + 1]

El N-periodos de la media móvil simple se desplaza hacia atrás en N/2 + 1 bars, y luego se resta del precio actual. El resultado oscila alrededor de cero.

Cómo funciona

La tendencia de largo plazo tiende a dominar los gráficos de precio en bruto, ocultando los swings rítmicos más cortos que contiene. El DPO aborda esto comparando el precio actual con una media móvil de aproximadamente medio ciclo antes. Como la media está desplazada hacia atrás en el tiempo, representa dónde "estaba" la tendencia, y la diferencia aísla la desviación del precio respecto a esa línea de tendencia.

La salida es un oscilador no acotado centrado en cero. Los valores positivos significan que el precio se sitúa por encima de la media desplazada, los negativos que se sitúa por debajo. La secuencia de picos y valles del DPO aproxima la longitud del ciclo dominante de corto plazo: medir la distancia en barras entre valles sucesivos del DPO da una estimación del periodo del ciclo, información que se usa para sincronizar las entradas dentro de una tendencia mayor.

El DPO deliberadamente no es un indicador de tendencia. Su desplazamiento elimina precisamente el componente en el que se apoyan los seguidores de tendencia, por lo que normalmente se combina con un filtro direccional que decide en qué lado del mercado operar, mientras el DPO sincroniza los swings.

Ejemplos

Ejemplo 1, Detectar un extremo del DPO de 10 barras (Indicador)

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)

Calcula el DPO de 21 periodos del precio típico y devuelve 1 siempre que la lectura actual supera todas las lecturas de las 10 barras anteriores, señalando un estallido de desviación al alza respecto a la tendencia.

Ejemplo 2, Sincronización del ciclo con la línea cero y un filtro de tendencia (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

La media móvil define la dirección de la tendencia y los cruces de la línea cero del DPO sincronizan los swings del ciclo dentro de ella.

Ejemplo 3, Buscar valles de ciclo profundos (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")

Devuelve los instrumentos en los que el DPO acaba de girar al alza desde su lectura más baja en 20 barras, un posible valle de ciclo.

Interpretación

CondiciónLectura
DPO por encima de ceroEl precio está por encima de su media desplazada, el ciclo corto está en su fase alcista.
DPO por debajo de ceroEl precio está por debajo de la media desplazada, el ciclo está en su fase bajista.
Pico del DPOPosible punto de sobrecompra de corto plazo dentro del ciclo.
Valle del DPOPosible punto de sobreventa de corto plazo dentro del ciclo.

La distancia entre valles (o picos) consecutivos estima la longitud del ciclo dominante en barras. Como el DPO no está acotado y es específico de cada instrumento, su nivel absoluto no es comparable entre mercados; los extremos se juzgan en relación con el propio historial reciente del oscilador.

Errores y trampas habituales

  • Leer el DPO como una señal de tendencia. El indicador elimina la tendencia por construcción. Un DPO al alza en un mercado a la baja no dice nada sobre la dirección general, así que combínalo con una medida de tendencia aparte.
  • Uso incorrecto de los corchetes. El periodo va entre corchetes y la fuente de precio entre paréntesis, DPO[21](close). Escribir DPO(21, close) genera un error de sintaxis.
  • Comparar niveles entre instrumentos. Los valores del DPO escalan con el precio y la volatilidad del instrumento. Una lectura de 5 puede ser extrema en un mercado y ruido en otro; normaliza o compara solo dentro de un mismo instrumento.
  • Esperar alineación con las barras más recientes. La media desplazada hace que el oscilador describa la desviación respecto a una tendencia medida media ventana antes. Cerca de cambios bruscos de tendencia, el DPO puede retrasarse respecto a la impresión visual del gráfico.
  • Cycle, indicador de ciclo específico con objetivos relacionados.
  • Average, la media móvil simple utilizada dentro del cálculo del DPO.
  • ROC, tasa de cambio, un oscilador de momentum porcentual.
  • Momentum, variación bruta de precio en N bars.
  • PriceOscillator, diferencia entre dos medias móviles en porcentaje.
  • RSI, oscilador de momentum acotado con rango fijo de 0 a 100.
  • CCI, oscilador basado en la desviación con un uso similar de mean reversion.
  • TypicalPrice, serie de entrada habitual para el DPO, (high + low + close) / 3.