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.»)
 
			
CONTACTA CON NOSOTROS Y CREEMOS COMUNIDAD
IMPORTANTE:
En ningún momento queremos que lo reflejado en esta web, se considere como recomendaciones.
