indicador de Divergencia de Agotamiento de Precio basado en la confluencia del RSI y el Volumen, que es la forma más efectiva de medir el agotamiento.
Puedes entregar este pseudocódigo a un desarrollador de Pine Script para que lo codifique.
💻 Pseudocódigo: Indicador de Agotamiento por Divergencia (RSI + Volumen)
Este indicador generará una alerta cuando el precio se mueve en una dirección, pero el impulso y la participación (volumen) no lo confirman, señalando un alto riesgo de reversión.
código completo de la lógica de agotamiento por divergencia (RSI + Volumen) que puedes copiar y pegar en el Editor Pine de TradingView.
Este código sigue la lógica que definimos: busca Divergencia en el RSI y la Confirma con Volumen decreciente.
💻 Código Pine Script v5 para Agotamiento de Precio
Copia el siguiente código y pégalo en el Editor Pine de TradingView.
//@version=5
indicator(«Divergencia de Agotamiento (RSI + Vol)», shorttitle=»Agotamiento RSI/Vol», overlay=true)
// — 1. CONFIGURACIÓN DE PARÁMETROS DE ENTRADA —
lenRSI = input.integer(14, title=»Periodo del RSI»)
lenVol = input.integer(20, title=»Periodo de Media Movil de Volumen»)
longitudPicos = input.integer(5, title=»Longitud de Picos/Valles (para detección)»)
// — 2. CÁLCULO DE INDICADORES —
// 2.1 RSI
rsiValue = ta.rsi(close, lenRSI)
// 2.2 Volumen Promedio
volAvg = ta.sma(volume, lenVol)
// — 3. Detección de Picos y Valles —
// Usamos ta.pivothigh y ta.pivotlow para identificar picos de forma objetiva
precio_alto_pivot = ta.pivothigh(high, longitudPicos, longitudPicos)
precio_bajo_pivot = ta.pivotlow(low, longitudPicos, longitudPicos)
// Detectamos el valor de RSI y Volumen en esos picos/valles
rsi_alto_pivot = ta.pivothigh(rsiValue, longitudPicos, longitudPicos)
rsi_bajo_pivot = ta.pivotlow(rsiValue, longitudPicos, longitudPicos)
vol_alto_pivot = ta.pivothigh(volAvg, longitudPicos, longitudPicos)
vol_bajo_pivot = ta.pivotlow(volAvg, longitudPicos, longitudPicos)
// — 4. LÓGICA DE AGOTAMIENTO (DIVERGENCIA Y VOLUMEN) —
// 4.1 Agotamiento Alcista (Señal Venta/PUT)
var bool agotamientoBajista = false
// Condición 1: Divergencia Bajista (Precio Máximo Más Alto / RSI Máximo Más Bajo)
if precio_alto_pivot and rsi_alto_pivot and
precio_alto_pivot[longitudPicos] < precio_alto_pivot and
rsi_alto_pivot[longitudPicos] > rsi_alto_pivot
agotamientoBajista := true
// Condición 2: Confirmación por Volumen (Volumen Decreciente)
volDecrecienteBajista = vol_alto_pivot and vol_alto_pivot[longitudPicos] > vol_alto_pivot
// Señal Final VENTA
senalVenta = agotamientoBajista and volDecrecienteBajista
// 4.2 Agotamiento Bajista (Señal Compra/CALL)
var bool agotamientoAlcista = false
// Condición 1: Divergencia Alcista (Precio Mínimo Más Bajo / RSI Mínimo Más Alto)
if precio_bajo_pivot and rsi_bajo_pivot and
precio_bajo_pivot[longitudPicos] > precio_bajo_pivot and
rsi_bajo_pivot[longitudPicos] < rsi_bajo_pivot
agotamientoAlcista := true
// Condición 2: Confirmación por Volumen (Volumen Decreciente)
volDecrecienteAlcista = vol_bajo_pivot and vol_bajo_pivot[longitudPicos] > vol_bajo_pivot
// Señal Final COMPRA
senalCompra = agotamientoAlcista and volDecrecienteAlcista
// — 5. PLOTEO Y ALERTAS —
// Ploteo de Señales
plotshape(senalVenta, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.small, title=»Venta Agotamiento»)
plotshape(senalCompra, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.small, title=»Compra Agotamiento»)
// Ploteo del RSI (para visualización)
plot(rsiValue, title=»RSI», color=color.blue, display=display.pane)
hline(70, «RSI Sobrec.», color=color.gray)
hline(30, «RSI Sobreventa», color=color.gray)
// Ploteo del Volumen Promedio
plot(volAvg, title=»Vol Avg», color=color.yellow, display=display.pane)
// Alertas (opcional)
alertcondition(senalVenta, title=»ALERTA: Agotamiento Alcista (Venta)», message=»Divergencia RSI y Volumen Decreciente.»)
alertcondition(senalCompra, title=»ALERTA: Agotamiento Bajista (Compra)», message=»Divergencia RSI y Volumen Decreciente.»)
Cómo Funciona Este Código
-
Inputs: Permite configurar el periodo del RSI () y el periodo de la Media Móvil del Volumen ().
-
Detección de Picos: Utiliza las funciones integradas de TradingView (
ta.pivothighyta.pivotlow) para identificar puntos válidos en el precio, el RSI y el Volumen. -
Lógica de Divergencia:
-
Venta: Compara el pico actual del precio con el pico anterior (debe ser más alto) y el pico actual del RSI con el pico anterior (debe ser más bajo).
-
Compra: Compara el valle actual del precio con el valle anterior (debe ser más bajo) y el valle actual del RSI con el valle anterior (debe ser más alto).
-
-
Filtro de Volumen: Confirma que el volumen promedio en el segundo pico/valle es menor que en el primero, validando el agotamiento de la participación.
-
Plotting: Muestra flechas de compra/venta directamente en el gráfico.
Nota: La detección de picos en Pine Script puede ser un poco abstracta. Este código utiliza la detección de pivotes para hacer la lógica lo más objetiva posible.

