WAP (Weighted Average Price): Qué es, cómo funciona y cómo interpretarlo

¿Qué es el WAP?

El WAP, o Weighted Average Price, es un indicador técnico que calcula el precio promedio ponderado de un activo durante un periodo específico. A diferencia del precio medio simple, el WAP toma en cuenta el volumen negociado, asignando mayor peso a los precios con más actividad.

En otras palabras, el WAP refleja el precio promedio real al que se ha negociado el activo, siendo especialmente útil para identificar zonas clave de negociación institucional.

¿Cómo se calcula?

Fórmula del WAP

El cálculo se realiza con la siguiente fórmula:

WAP = (Precio × Volumen) acumulado ÷ Volumen total acumulado

Este enfoque pondera cada precio por su volumen, lo que permite capturar de forma más precisa la acción del mercado a lo largo del tiempo.

¿Para qué sirve el WAP?

El WAP tiene múltiples aplicaciones en trading profesional. Por ejemplo, los traders institucionales lo utilizan como referencia para determinar si compraron o vendieron mejor que el promedio del mercado.

Además, actúa como un nivel de soporte o resistencia dinámico, ya que refleja el consenso entre compradores y vendedores en términos reales de volumen.

Interpretación del WAP

Precio por encima del WAP

Cuando el precio está por encima del WAP, indica una presión compradora dominante. En este caso, los compradores están dispuestos a pagar más que el promedio ponderado del mercado.

Precio por debajo del WAP

En cambio, si el precio cae por debajo del WAP, se interpreta como presión vendedora. Aquí, los vendedores están aceptando precios por debajo del promedio, lo que podría indicar debilidad.

Confluencias con otros indicadores

El WAP también gana relevancia cuando se alinea con otras herramientas técnicas, como soportes horizontales, medias móviles o zonas de volumen.

Ventajas del WAP

  • Objetividad: basado en datos reales de volumen y precio.
  • Valor estratégico: ideal para evaluar ejecución de órdenes grandes.
  • Adaptabilidad: funciona bien en distintos marcos temporales e instrumentos.

Limitaciones

  • Requiere acceso a datos de volumen confiables.
  • No anticipa movimientos futuros, solo refleja el comportamiento actual.
  • Puede perder relevancia en mercados de baja liquidez.

Conclusión

El WAP es un indicador técnico poderoso que proporciona una visión clara del promedio ponderado de negociación. Aunque sencillo en su cálculo, resulta altamente eficaz para evaluar la acción institucional y la eficiencia de entrada o salida del mercado.

Por lo tanto, si deseas mejorar tus decisiones basadas en volumen y precio, el WAP es una herramienta indispensable en tu análisis técnico.

Código Pine Script Trading View

//@version=5
indicator(«WAP (Weighted Average Price) – Session / Anchored», overlay=true)

//—————- Inputs —————-
mode = input.string(«Session», «Mode», options=[«Session»,»Anchored»])
anchorTime = input.time(timestamp(«01 Jan 2024 00:00 +0000»), «Anchored start (UTC)», tooltip=»Usado solo en modo Anchored»)
srcOpt = input.string(«hlc3», «Price source», options=[«close»,»hl2″,»hlc3″,»ohlc4″])
showBands = input.bool(true, «Show bands»)
mult = input.float(2.0, «Band multiplier», minval=0.1, step=0.1)

// Price source
src = srcOpt == «close» ? close :
srcOpt == «hl2» ? (high + low) / 2.0 :
srcOpt == «hlc3» ? (high + low + close) / 3.0 :
(open + high + low + close) / 4.0

//—————- Accumulators (volume-weighted) —————-
// We keep three running sums: sumV, sumPV, sumPV2, where
// PV = price * volume
// PV2 = price^2 * volume (for weighted variance)
var float sumV = na
var float sumPV = na
var float sumPV2= na

isNewDay = ta.change(time(«D»)) != 0
inAnchor = time >= anchorTime

if mode == «Session»
if isNewDay or na(sumV)
sumV := 0
sumPV := 0
sumPV2:= 0
sumV += volume
sumPV += src * volume
sumPV2+= src * src * volume
else
// Anchored
if inAnchor
if na(sumV) or time[1] < anchorTime
sumV := 0
sumPV := 0
sumPV2:= 0
sumV += volume
sumPV += src * volume
sumPV2+= src * src * volume
else
sumV := na
sumPV := na
sumPV2:= na

//—————- WAP and weighted sigma —————-
wap = sumV != 0 and not na(sumV) ? sumPV / sumV : na

// Weighted variance: E[p^2] – (E[p])^2 with volume weights
wVar = sumV != 0 and not na(sumV) ? (sumPV2 / sumV) – (wap * wap) : na
wStd = not na(wVar) and wVar > 0 ? math.sqrt(wVar) : na

upper = showBands and not na(wap) and not na(wStd) ? wap + mult * wStd : na
lower = showBands and not na(wap) and not na(wStd) ? wap – mult * wStd : na

//—————- Plots —————-
col = close >= wap ? color.new(color.green, 0) : color.new(color.red, 0)
wapPlot = plot(wap, title=»WAP», color=col, linewidth=2)
uPlot = plot(upper, title=»Upper band», color=color.new(color.teal, 0), linewidth=1)
lPlot = plot(lower, title=»Lower band», color=color.new(color.orange, 0), linewidth=1)
fill(uPlot, lPlot, color=color.new(color.gray, 88))

//—————- Alerts —————-
alertcondition(ta.crossover(close, wap), «Price crosses above WAP», «Price crossed ABOVE WAP.»)
alertcondition(ta.crossunder(close, wap), «Price crosses below WAP», «Price crossed BELOW WAP.»)

 

Si quieres dar un paso más en el trading, y quieres darnos sugerencias estamos abiertos a comentarios e ideas constructivas,

CONTACTA CON NOSOTROS Y CREEMOS COMUNIDAD

IR A NUESTRO CANAL DE YOUTUBE

 

IMPORTANTE:

En ningún momento queremos que lo reflejado en esta web, se considere como recomendaciones.

 

El objetivo es mostrar la veracidad de las estrategias desde un punto de vista técnico de análisis de los resultados arrojados por los algoritmos de trading, estudiando los años pasados que pueden coincidir o no con los futuros.