Estrategia del indicador de volumen relativo

El autor:¿ Qué pasa?, Fecha: 2023-12-20 15:12:56
Las etiquetas:

img

Resumen de la estrategia

Esta es una estrategia de negociación cuantitativa basada en el índice de fuerza relativa (RSI) y el indicador de volumen relativo.

Estrategia lógica

La estrategia incorpora dos indicadores: Índice de Fuerza Relativa (RSI) y Volumen Relativo (RVOL). El RSI juzga los niveles de sobrecompra / sobreventa. RSI por debajo de 30 sugiere sobreventa y RSI por encima de 70 sugiere sobreventa. RVOL captura aumentos en el volumen en comparación con el promedio reciente. Cuando RVOL está por encima de un umbral, indica una fuerte presión de compra / venta.

La lógica de la estrategia es: ir largo cuando el RSI muestra sobrecompra (por encima del umbral) Y RVOL dispara hacia arriba; ir corto cuando el RSI muestra sobreventa (por debajo del umbral) Y RVOL dispara hacia arriba.

Análisis de ventajas

La mayor ventaja de esta estrategia es localizar la parte más agresiva de una tendencia combinando la señal de sobrecompra/sobreventa del RSI y la señal de alto volumen relativo.

En comparación con el uso del RSI solo, esta estrategia incorpora información sobre el volumen para evitar ingresar al mercado con liquidez insuficiente.

Análisis de riesgos

El mayor riesgo de esta estrategia es la posibilidad de que el RSI dé señales falsas. Cuando el mercado está en rango, el RSI puede cruzar con frecuencia las zonas OB/OS y generar señales falsas. Además, esta estrategia es sensible a los cambios de volumen. Los instrumentos de baja liquidez pueden descontar la rentabilidad.

Para mitigar los riesgos, los parámetros del RSI pueden ajustarse, como aumentar el período de promedio o elevar el umbral de RVOL.

Direcciones de optimización

Las posibles optimizaciones incluyen:

  1. añadir métricas de liquidez para evitar instrumentos no líquidos;

  2. añadir métricas de volatilidad a las operaciones únicamente cuando la volatilidad se expanda;

  3. Crear mecanismos para evitar falsos brotes, por ejemplo, el volumen de monitoreo;

  4. Hacer más estricto el stop loss, para limitar los drawdowns;

  5. Ajuste de parámetros basado en pruebas de retroceso para encontrar la configuración óptima.

Conclusión

La estrategia de volumen relativo se las arregla para localizar puntos de aumento del volumen dentro de las zonas OB / OS mediante la incorporación de RSI y volumen relativo, por lo que es una estrategia de captura de tendencias efectiva.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gary_trades
//This script is a basic concept to catch breakout moves utilising a spike in relative volume when the RSI is high (for longs) or when the RSI is low (for shorts).
//Drawdown is typically low as it exits out of the trade once the RSI returns back to "normal levels".

//@version=4
strategy(title="Relative Volume & RSI Pop", shorttitle="VOL & RSI Pop", overlay=false, precision=2, margin_long=100, margin_short=100)

//RSI
RSIlength = input(14, title="RSI Period")
RSItop = input(70, title="RSI buy", minval= 69, maxval=100)
RSIbottom = input(35, title="RSI short", minval= 0, maxval=35)
price = close
vrsi = rsi(price, RSIlength)
RSIco = crossover(vrsi, RSItop)
RSIcu = crossunder(vrsi, RSIbottom)
plot(vrsi, "RSI", color=color.purple)
band1 = hline(70, "Upper Band", color=#C0C0C0)
bandm = hline(50, "Middle Band", color=color.new(#C0C0C0, 50))
band0 = hline(30, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=color.purple, transp=90, title="Background")

//RELATIVE VOLUME
RVOLlen = input(14, minval=1, title="RV Period")
av = sma(volume, RVOLlen)
RVOL = volume / av
RVOLthreshold = input(1.5,title="RV Threshold", minval=0.5, maxval=10)

//TRADE TRIGGERS
LongCondition = RSIco and RVOL > RVOLthreshold
CloseLong = vrsi < 69

ShortCondition = RSIcu and RVOL > RVOLthreshold
CloseShort = vrsi > 35

if (LongCondition)
    strategy.entry("Long", strategy.long)
    
strategy.close("Long", when = CloseLong)    

if (ShortCondition)
    strategy.entry("Short", strategy.short)
    
strategy.close("Short", when = CloseShort)   


Más.