En la carga de los recursos... Cargando...

Las bandas de Bollinger + RSI + estrategia de tendencia multi-MA

El autor:¿ Qué pasa?, Fecha: 2024-05-27 15:20:40
Las etiquetas:- ¿ Qué?Indicador de riesgo- ¿Qué es?La SMAEl MACD

img

Resumen general

Esta estrategia combina bandas de Bollinger, RSI, múltiples promedios móviles y el indicador MACD para construir un sistema comercial completo. En primer lugar, utiliza bandas de Bollinger para determinar la volatilidad de precios y la posición del precio en relación con la banda media para identificar tendencias. Al mismo tiempo, emplea el indicador RSI para evaluar las condiciones de sobrecompra y sobreventa y detectar posibles inversiones de tendencia utilizando divergencias RSI. Se utilizan múltiples promedios móviles para rastrear tendencias y determinar niveles de soporte y resistencia. Finalmente, el indicador MACD también se utiliza para ayudar a juzgar tendencias y posibles inversiones. Al considerar de manera integral estos indicadores, la estrategia formula condiciones completas de entrada y salida para construir una estrategia comercial.

Principios de estrategia

  1. Se utilizará una banda de Bollinger de 20 períodos con 2 desviaciones estándar para determinar la tendencia basada en la posición del precio de cierre en relación con la banda media.
  2. Calcular el RSI de 14 períodos y utilizar el cruce del RSI con los niveles 30 y 70 para identificar las condiciones de sobreventa y sobrecompra, reconociendo posibles reversiones.
  3. Calcule promedios móviles simples con períodos de 34, 89, 144, 233, 377 y 610.
  4. Calcular el indicador MACD basado en los parámetros 12, 26, 9 y utilizar el cruce del histograma MACD con el eje cero para ayudar a juzgar las inversiones de tendencia.
  5. Evaluar de forma exhaustiva los indicadores anteriores para formular una lógica de entrada y salida:
    • Entrada: se abre una posición larga cuando el precio de cierre está por encima de la banda media de Bollinger y la media móvil a corto plazo está por encima de la media móvil a largo plazo.
    • Exit: cierre de la mitad de la posición cuando el precio de cierre caiga por debajo de la banda media de Bollinger y cierre de todas las posiciones cuando la media móvil a corto plazo caiga por debajo de la media móvil a largo plazo.

Ventajas estratégicas

  1. Las bandas de Bollinger pueden cuantificar objetivamente la volatilidad de los precios, proporcionando una base para la determinación de la tendencia.
  2. La introducción del indicador RSI ayuda a identificar las condiciones de sobrecompra y sobreventa y captura las posibles oportunidades de inversión de tendencia.
  3. La combinación de múltiples medias móviles permite un análisis más completo de las condiciones de tendencia en diferentes escalas de tiempo.
  4. El indicador MACD puede servir como un juicio auxiliar para las tendencias e inversiones, mejorando la fiabilidad de las señales.
  5. La lógica de entrada y salida incorpora la idea de gestión de posiciones, reduciendo gradualmente las posiciones para controlar el riesgo cuando la tendencia es incierta.

Riesgos estratégicos

  1. En mercados agitados, las bandas de Bollinger y los sistemas de promedios móviles pueden generar señales frecuentes y contradictorias.
  2. Los indicadores RSI y MACD pueden permanecer en zonas de sobrecompra o sobreventa durante períodos prolongados durante mercados con tendencias fuertes, perdiendo su poder predictivo.
  3. La selección de parámetros (como el período de banda de Bollinger, los períodos de media móvil, etc.) tiene una cierta subjetividad, y diferentes parámetros pueden dar lugar a resultados diferentes.
  4. La falta de un mecanismo de stop-loss puede aumentar el riesgo de las operaciones individuales.
  5. La estrategia puede no ser capaz de responder rápidamente a eventos extremos como los cisnes negros, lo que resulta en reducciones significativas.

Direcciones para la optimización de la estrategia

  1. Realizar una optimización más sistemática de los parámetros de cada indicador, como el período y la anchura de las bandas de Bollinger, el período y los umbrales del RSI, etc.
  2. Introducir más señales de confirmación, como cambios en el volumen de operaciones, para mejorar la fiabilidad de las señales.
  3. Incorporar mecanismos de stop-loss y take-profit en las condiciones de entrada y salida para controlar mejor el riesgo de las operaciones individuales.
  4. Considerar la posibilidad de introducir un mecanismo de ajuste de posiciones para ajustar de forma flexible las posiciones en diferentes condiciones de mercado y mejorar la relación riesgo/beneficio.
  5. Diseñar planes de contingencia para eventos extremos, como la cobertura basada en el índice VIX o la ponderación dinámica de los factores alfa.

Resumen de las actividades

Esta estrategia construye un sistema comercial relativamente completo a partir de múltiples dimensiones, incluyendo la identificación de tendencias, juicios de sobrecompra y sobreventa, análisis de escala de tiempo múltiple y control de posición. Sin embargo, la estrategia necesita una mayor optimización para lidiar con mercados agitados y eventos extremos, y carece de una optimización de parámetros más sistemática y control de riesgos. En el futuro, la estrategia puede seguir mejorando en términos de filtrado de señales más refinado, ajuste dinámico de peso y respuesta a eventos extremos. A través de la optimización continua de backtesting y verificación de operaciones en vivo, esta estrategia tiene el potencial de convertirse en una estrategia de trading cuantitativa robusta y sostenible.


/*backtest
start: 2023-05-21 00:00:00
end: 2024-05-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands + RSI Strategy with MA", overlay=true)

// Bollinger Bands
length = input.int(20, title="BB Length")
mult = input.float(2.0, title="BB Mult")
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper_band = basis + dev
lower_band = basis - dev

// RSI
rsi_length = input.int(14, title="RSI Length")
rsi_oversold = input.int(30, title="RSI Oversold", minval=0, maxval=100)
rsi_overbought = input.int(70, title="RSI Overbought", minval=0, maxval=100)
rsi = ta.rsi(close, rsi_length)

// RSI Divergence
rsi_divergence_bottom = ta.crossunder(rsi, rsi_oversold)
rsi_divergence_peak = ta.crossunder(rsi_overbought, rsi)

// Moving Averages
ma34 = ta.sma(close, 34)
ma89 = ta.sma(close, 89)
ma144 = ta.sma(close, 144)
ma233 = ta.sma(close, 233)
ma377 = ta.sma(close, 377)
ma610 = ta.sma(close, 610)

// MACD Calculation
[macd_line, signal_line, _] = ta.macd(close, 12, 26, 9)
macd_histogram = macd_line - signal_line

// MACD Divergence
macd_divergence_bottom = ta.crossunder(macd_histogram, 0)
macd_divergence_peak = ta.crossover(macd_histogram, 0)

// Conditions for Buy and Sell
basis_gt_ma34 = basis > ma34
ma34_gt_ma89 = ma34 > ma89

// Entry condition
buy_condition = basis_gt_ma34 and ma34_gt_ma89 
sell_condition =  basis <ma34

// Calculate position size
position_size = 1.0  // 100% capital initially

// Update position size based on conditions
if (sell_condition)
    position_size := 0.5  // Sell half of the position
if (not basis_gt_ma34)
    position_size := 0.0  // Sell all if basis < ma34

// Entry and exit strategy
if (buy_condition)
    strategy.entry("Buy", strategy.long, qty=position_size)
if (sell_condition)
    strategy.close("Buy")

// Plot Bollinger Bands and Moving Averages
bb_fill_color = basis > basis[1] ? color.new(color.blue, 90) : color.new(color.blue, 10)
plot(basis, color=color.blue, title="Basis")
plot(upper_band, color=color.red, title="Upper Band")
plot(lower_band, color=color.green, title="Lower Band")
fill(plot1=plot(upper_band), plot2=plot(lower_band), color=bb_fill_color, title="BB Fill")
plot(ma34, color=color.orange, title="MA34")
plot(ma89, color=color.purple, title="MA89")
plot(ma144, color=color.gray, title="MA144")
plot(ma233, color=color.blue, title="MA233")
plot(ma377, color=color.red, title="MA377")
plot(ma610, color=color.green, title="MA610")

// Plot RSI Divergence
plotshape(series=rsi_divergence_bottom, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small)
plotshape(series=rsi_divergence_peak, style=shape.triangledown, location=location.belowbar, color=color.red, size=size.small)

// Plot MACD Histogram Divergence
plotshape(series=macd_divergence_bottom, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(series=macd_divergence_peak, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)


Relacionados

Más.