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

WilliamsAccumDistr

WilliamsAccumDistr en ProBuilder devuelve la línea Williams Accumulation Distribution, que mide la presión compradora y vendedora. Sintaxis, fórmula, ejemplos.

Sintaxis

probuilder
WilliamsAccumDistr(price)

Parámetros

NombreTipoPor defectoDescripción
pricefuente de preciocloseLa serie utilizada para comparar cierres consecutivos. La entrada convencional es close.

No hay argumento de periodo. La línea es acumulativa sobre todo el historial visible.

Fórmula

Para cada bar:

código
TRH = MAX(close[1], high)      // true range high
TRL = MIN(close[1], low)       // true range low

IF close > close[1] THEN  AD = close - TRL
IF close < close[1] THEN  AD = close - TRH
IF close = close[1] THEN  AD = 0

WilliamsAccumDistr = previous WilliamsAccumDistr + AD

Los cierres al alza añaden una cantidad positiva (la distancia desde el mínimo del true range), los cierres a la baja añaden una cantidad negativa (la distancia desde el máximo del true range), y los cierres sin cambio no añaden nada.

Cómo funciona

El indicador plantea una pregunta sencilla en cada bar: ¿cerró el mercado más cerca de la parte alta o de la parte baja de su true range, y en qué dirección se movió el cierre? Cuando el cierre sube, el bar se trata como acumulación y la distancia entre el cierre y el mínimo del true range se suma al total acumulado. Cuando el cierre baja, el bar se trata como distribución y se resta la distancia desde el máximo del true range. Usar el true range (que incorpora el cierre anterior) significa que los gaps se cuentan en lugar de ignorarse.

El nivel absoluto de la línea no es significativo, depende de cuánto historial se haya cargado. Lo que importa es su dirección y, sobre todo, cómo se compara esa dirección con el precio. Esto se diferencia de AccumDistr, que pondera cada bar por el volumen y por la posición del cierre dentro del propio rango de la bar, y de OBV, que suma o resta todo el volumen del bar según la dirección del cierre. WilliamsAccumDistr no usa volumen en absoluto, solo la geometría del precio.

Ejemplos

Ejemplo 1, Contadores de presión alcista y bajista (Indicador)

probuilder
// Track whether the accumulation line is above or below zero
i1 = WilliamsAccumDistr(close)
bullish = 0
bearish = 0
IF(i1 > 0) THEN
  // Net accumulation since the start of the data
  bullish = bullish + 1
  bearish = bearish - 1
ELSIF(i1 < 0) THEN
  // Net distribution since the start of the data
  bullish = bullish - 1
  bearish = bearish + 1
ENDIF
RETURN bullish, bearish

El ejemplo original, con los comentarios reescritos. Convierte el signo de la línea en dos contadores sencillos que pueden alimentar otra lógica.

Ejemplo 2, Comprobación de divergencia frente al precio (Indicador)

probuilder
// Compare 20-bar direction of price and the accumulation line
wad = WilliamsAccumDistr(close)
priceUp = close > close[20]
wadUp = wad > wad[20]

IF priceUp AND NOT wadUp THEN
  signal = -1   // price rising while accumulation falls, bearish divergence
ELSIF wadUp AND NOT priceUp THEN
  signal = 1    // accumulation rising while price falls, bullish divergence
ELSE
  signal = 0
ENDIF
RETURN signal AS "WAD divergence"

Marca los bars en los que la dirección a 20 bars de la línea de acumulación no coincide con la dirección a 20 bars del precio, el uso estándar de divergencia de este indicador.

Ejemplo 3, Filtro de salida cuando la acumulación se estanca (ProOrder)

probuilder
// Close longs when the accumulation line stops rising
wad = WilliamsAccumDistr(close)
trend = Average[50](close)

IF NOT LongOnMarket THEN
  IF close > trend AND wad > wad[10] THEN
    BUY 1 CONTRACT AT MARKET
  ENDIF
ELSE
  IF wad < wad[10] THEN
    SELL AT MARKET
  ENDIF
ENDIF

Exige que la línea de acumulación esté más alta que hace diez bars antes de entrar long, y sale cuando esa condición se invierte, usando la línea como medidor de presión en torno a un filtro de tendencia.

Interpretación

Una línea ascendente indica que los cierres al alza se están quedando de forma constante con más del true range que los cierres a la baja, presión compradora neta. Una línea descendente indica lo contrario.

La señal principal es la divergencia. Cuando el precio marca un mínimo más bajo pero la línea marca un mínimo más alto, la presión compradora se está acumulando bajo la superficie, una divergencia alcista. Cuando el precio marca un máximo más alto pero la línea marca un máximo más bajo, la subida no tiene presión detrás, una divergencia bajista. Las divergencias describen condiciones más que momentos, por lo que normalmente se combinan con un disparador como un cruce de media móvil o un breakout de rango.

Errores y trampas habituales

  • Añadir un argumento de periodo. WilliamsAccumDistr[14](close) no es válido. La instrucción solo admite un precio entre paréntesis y acumula sobre todas las bars cargadas.
  • Comparar niveles entre gráficos. El valor absoluto depende de la cantidad de historial cargado, por lo que una lectura de 500 en un gráfico y de 5000 en otro no dice nada comparable. Compara pendientes y divergencias, no niveles.
  • Esperar sensibilidad al volumen. A pesar del nombre, este indicador no usa volumen. Para acumulación ponderada por volumen usa AccumDistr, OBV, o ChaikinOsc.
  • Confundirlo con Williams. Williams es el oscilador de rango %R, un indicador distinto del mismo autor. Los dos no comparten nada más allá del nombre.
  • AccumDistr, línea de acumulación distribución ponderada por volumen.
  • OBV, on-balance volume, volumen acumulado con signo.
  • MoneyFlow, medida acotada de la presión compradora y vendedora.
  • MoneyFlowIndex, oscilador de estilo RSI ponderado por volumen.
  • ChaikinOsc, oscilador construido sobre la línea de acumulación distribución.
  • PVT, price volume trend, volumen escalado por el cambio porcentual.
  • ForceIndex, variación de precio multiplicada por el volumen.
  • Williams, el oscilador %R del mismo autor.