El índice de variabilidad de las bandas de Bollinger (RSI)

El autor:¿ Qué pasa?, Fecha: 2023-09-18 22:13:18
Las etiquetas:

Todo el contenido en inglés

Resumen general

Esta estrategia identifica las señales comerciales mediante el uso del indicador RSI para determinar las condiciones de sobrecompra / sobreventa y combinarse con el indicador de Bollinger Bands para representar el rango de oscilación de precios. Genera señales de compra y venta cuando el RSI muestra niveles de sobrecompra o sobreventa, mientras que el precio se acerca o toca las bandas superiores o inferiores de Bollinger Bands. La estrategia sintetiza el análisis de tendencias y el juicio de oscilación para buscar oportunidades dinámicamente.

Estrategia lógica

La estrategia se basa principalmente en dos indicadores:

  1. Indicador RSI que evalúa la sobrecompra/sobreventa

Calcula el RSI para un cierto período y determina si entra en zonas de sobrecompra o sobreventa de acuerdo con parámetros preestablecidos, como el umbral de sobrecompra a 40 y el umbral de sobreventa a 45.

  1. Bandas de Bollinger que indican el rango de oscilación de precios

Calcula las bandas de Bollinger para un período y utiliza las bandas superior e inferior para formar un canal de precios, describiendo el rango de oscilaciones de precios.

Sobre la base de lo anterior, las reglas de comercio son:

Cuando el RSI cruza por encima de 45 en la zona de sobreventa, y el precio cruza por encima de la banda inferior de Bollinger, genera una señal de compra. Cuando el RSI cruza por debajo de 40 en la zona de sobrecompra, y el precio cruza por debajo de la banda superior de Bollinger, genera una señal de venta.

Análisis de ventajas

Las ventajas de combinar el RSI y las bandas de Bollinger incluyen:

  1. El RSI identifica los niveles de sobrecompra / sobreventa, las bandas de Bollinger determinan la dirección de la tendencia de los precios, complementándose entre sí.

  2. Las bandas de Bollinger pueden servir como niveles de stop loss para controlar el riesgo.

  3. Los parámetros simples hacen que sea fácil de implementar y backtest.

  4. Los parámetros del RSI se pueden optimizar para determinar el mejor rango de sobrecompra/sobreventa.

  5. Se pueden utilizar diferentes insumos de precios para adaptarse a diversos entornos de mercado.

Riesgos y soluciones

También hay algunos riesgos con esta estrategia:

  1. El exceso de ancho de las bandas de Bollinger conduce a una mala expectativa de stop loss.

    • Ajuste el parámetro de anchura de las bandas de Bollinger para optimizar el rango de stop loss.
  2. El índice de volatilidad de los valores de mercado se calcula de acuerdo con el índice de volatilidad de los valores de mercado.

    • Optimizar los parámetros del RSI a través de backtesting para determinar el rango óptimo de negociación.
  3. Incapacidad para determinar con precisión los puntos de inversión de tendencia, riesgo de señales perdidas.

    • Acortar el parámetro de período de bandas de Bollinger para capturar las inversiones de tendencia antes.
  4. Incapacidad para controlar eficazmente las pérdidas, riesgo de que el stop loss se vea afectado por fluctuaciones significativas de precios.

    • Añadir movimiento o stop loss dinámico para optimizar los métodos de stop loss.

Direcciones de mejora

Algunas maneras de optimizar la estrategia:

  1. Optimizar los parámetros del RSI para determinar el rango ideal de sobrecompra/sobreventa.

  2. Optimizar el parámetro de anchura de las bandas de Bollinger para controlar el rango de stop loss.

  3. Añadir otros indicadores para identificar inversiones de tendencia y evitar señales perdidas.

  4. Aplicar modelos de aprendizaje automático para determinar el tiempo de negociación.

  5. Utilice diferentes conjuntos de parámetros basados en diferentes entornos de mercado.

  6. Añadir mecanismos dinámicos de stop loss.

  7. Desarrollar programas para la optimización automática de parámetros.

Conclusión

En resumen, al combinar el RSI y las bandas de Bollinger, esta estrategia forma decisiones comerciales relativamente sólidas. La lógica es simple y clara, buena para el control de riesgos, pero tiene espacio para la optimización. Mejorar aún más la estrategia a través de la optimización de parámetros, optimización de pérdidas de parada, incorporación de algoritmos, etc. puede hacerla más adaptable a entornos de mercado complejos.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 2h
basePeriod: 15m
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/
// © Mdemoio


//@version=4
strategy("Madri", shorttitle="Madri", overlay=true)


// Version 1.1


///////////// RSI
RSIlength = input(2,title="A") 
RSIoverSold = 45
RSIoverBought = 40
price = close
vrsi = rsi(price, RSIlength)


///////////// Bollinger Bands
BBlength = input(150, minval=1,title="B")
BBmult = 2// input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)


///////////// Colors
//switch1=input(true, title="Enable Bar Color?")
//switch2=input(true, title="Enable Background Color?")
//TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? green : na
//barcolor(switch1?TrendColor:na)
//bgcolor(switch2?TrendColor:na,transp=50)


///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))

    if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower))
        strategy.entry("RSI_BB_L", strategy.long, stop=BBlower,  comment="Buy")
    else
        strategy.cancel(id="RSI_BB_L")
        
    if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper))
        strategy.entry("RSI_BB_S", strategy.short, stop=BBupper, comment="Sell")
    else
        strategy.cancel(id="RSI_BB_S")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Más.