Estrategia de negociación de reversión de la banda de Bollinger

El autor:¿ Qué pasa?, Fecha: 2023-12-27 17:18:26
Las etiquetas:

img

Resumen general

Esta es una estrategia de negociación de reversión media basada en bandas de Bollinger, que combina la negociación de reversión media y mecanismos de gestión de riesgos para capturar oportunidades de reversión a corto plazo en los mercados de tendencia.

Estrategia lógica

La estrategia utiliza bandas de Bollinger de 20 días para identificar áreas de precios sobreextensibles. Va corto cuando el precio se acerca a la banda superior y va largo cuando el precio se acerca a la banda inferior, beneficiándose de eventual reversión.

También establece stop loss y take profit basados en ATR. El stop loss se establece en el precio que rompe el promedio móvil menos 2 veces ATR. Take profit se establece en el precio más 3 veces ATR. Esto controla efectivamente el riesgo por operación.

En concreto, la estrategia incluye:

  1. Calcular las bandas de Bollinger de 20 días banda superior, banda inferior y media móvil
  2. Calcular el ATR de 14 días
  3. Long cuando el precio cruza la banda inferior; Short cuando el precio cruza la banda superior
  4. Establecer el stop loss al precio menos 2 veces ATR y obtener ganancias al precio más 3 veces ATR cuando largo
  5. Establecer el stop loss en el precio más 2 veces ATR y obtener ganancias en el precio menos 3 veces ATR cuando sea corto

Análisis de ventajas

Las principales ventajas son:

  1. Las bandas de Bollinger identifican eficazmente las áreas de precios sobreextensibles
  2. Profitos de las reversiones a través de la reversión media
  3. ATR deja de establecer controles de riesgos
  4. Resultados positivos de backtest con múltiples operaciones rentables

Análisis de riesgos

Los riesgos potenciales incluyen:

  1. Riesgo de reversión fallida si el precio continúa su tendencia
  2. Stop loss no incluye riesgos derivados de las brechas de precios
  3. Optimización de parámetros requerida para mercados cambiantes

Soluciones:

  1. Seguir estrictamente las reglas de stop loss para limitar las pérdidas por operación
  2. Optimizar los parámetros para adaptarse a los mercados actuales
  3. Uso de opciones u otras herramientas para cubrir el riesgo de brecha

Direcciones de optimización

La estrategia se puede optimizar aún más mediante:

  1. Prueba de diferentes medias móviles para obtener los mejores parámetros
  2. Añadir filtros para mejorar la determinación de tendencias
  3. Ajuste de los múltiplos de ATR para ajustar las paradas y los límites
  4. Incorporación de mecanismos dinámicos de salida basados en regímenes de mercado

Esto mejorará aún más el perfil de estabilidad y retorno.

Resumen de las actividades

En resumen, la estrategia de reversión de la banda de Bollinger con filtros de tendencia y gestión de riesgos ha demostrado resultados positivos.


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

//@version=4
strategy("Mean Reversion with Risk Management", overlay=true)

// Inputs for Bollinger Bands and Risk Management
length = input(20, minval=1, title="Bollinger Bands Length")
mult = input(2.0, title="Bollinger Bands Multiplier")
stopLossATRMult = input(2.0, title="Stop Loss ATR Multiplier")
takeProfitATRMult = input(3.0, title="Take Profit ATR Multiplier")

// Bollinger Bands Calculation
src = close
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
plot(upper, "Upper Band", color=color.red)
plot(lower, "Lower Band", color=color.green)

// ATR for Stop Loss and Take Profit
atr = atr(14)

// Trading Conditions
longCondition = crossover(src, lower)
shortCondition = crossunder(src, upper)

// Order Execution with Stop Loss and Take Profit
if (longCondition)
    sl = src - stopLossATRMult * atr
    tp = src + takeProfitATRMult * atr
    strategy.entry("Long", strategy.long, stop=sl, limit=tp)

if (shortCondition)
    sl = src + stopLossATRMult * atr
    tp = src - takeProfitATRMult * atr
    strategy.entry("Short", strategy.short, stop=sl, limit=tp)


Más.