Estrategia de ruptura dinámica de Bollinger

El autor:¿ Qué pasa?, fecha: 2024-01-26 14:52:59
Las etiquetas:

img

Resumen general

Esta estrategia es una estrategia de negociación de ruptura basada en el indicador Bollinger Bands. Calcula los rieles superior e inferior de las Bandas de Bollinger y los combina con umbrales de compra y venta dinámicamente ajustables para automatizar la negociación de BTCUSDT en Binance.

Estrategia lógica

El indicador central de esta estrategia es las bandas de Bollinger. Las bandas de Bollinger consisten en un promedio móvil de N días y bandas superiores e inferiores trazadas en un nivel de desviación estándar por encima y por debajo de él. Las bandas de Bollinger en esta estrategia tienen una duración de 20 días y un multiplicador de desviación estándar de 2. Cuando el precio se acerca o toca el rieles inferior de las bandas de Bollinger, se considera sobreventa, y la estrategia abrirá una posición larga. Cuando el precio se acerca o toca el rieles superior, se considera sobrecomprado, y la estrategia cerrará posiciones largas.

Además del indicador Bollinger Bands, esta estrategia también introduce dos parámetros ajustables: umbral de compra y umbral de venta. El umbral de compra se impone a 58 puntos por debajo de la banda inferior y sirve como condición de entrada para abrir posiciones largas. El umbral de venta se impone a 470 puntos por encima de la banda inferior y sirve como condición de salida para cerrar posiciones. Estos umbrales se pueden ajustar dinámicamente en función de las condiciones reales del mercado y los resultados de las pruebas de retroceso para hacer que la estrategia sea más flexible.

Cuando se cumple la condición de compra, la estrategia abrirá una posición larga utilizando el 10% del capital de la cuenta. Después de abrir la posición larga, si el precio aumenta hasta alcanzar el nivel de stop loss (-125%), las posiciones se cerrarán mediante órdenes de stop loss. Cuando el precio aumenta para activar el umbral de venta, la estrategia elegirá cerrar todas las posiciones para recoger ganancias.

Análisis de ventajas

Las principales ventajas de esta estrategia incluyen:

  1. El uso de bandas de Bollinger puede capturar oportunidades cuando los precios se desvían anormalmente de las bandas y obtener beneficios de las reversiones
  2. La introducción de umbrales de compra y venta ajustables optimiza los puntos de entrada y salida
  3. La toma de posiciones de tamaño parcial controla el riesgo
  4. El establecimiento de la condición de stop loss evita pérdidas adicionales
  5. Las pruebas de retroceso con intervalos de 5 minutos pueden capturar oportunidades comerciales a corto plazo de manera oportuna.

Análisis de riesgos

También hay algunos riesgos con esta estrategia:

  1. Las bandas de Bollinger en sí no son 100% confiables, los precios pueden oscilar más bajo durante mucho tiempo antes de caer de nuevo
  2. La configuración incorrecta de umbrales puede provocar la falta de los mejores puntos de entrada o salida
  3. El ajuste de la pérdida de parada demasiado flojo puede no detener la pérdida a tiempo, o demasiado apretado puede causar una pérdida de parada demasiado sensible
  4. La selección incorrecta de un período de retroevaluación puede hacer que algunas ganancias ocasionales sean una renta estable.

Contramedidas:

  1. Combinar más indicadores para juzgar las condiciones del mercado y evitar señales falsas de bandas de Bollinger
  2. Prueba y optimización de los parámetros de umbral para encontrar la combinación óptima
  3. Prueba y optimización de las condiciones de stop loss para encontrar un equilibrio
  4. Adoptar un período de prueba posterior más largo para examinar la estabilidad de la estrategia

Direcciones de optimización

La estrategia se puede optimizar aún más en los siguientes aspectos:

  1. Trate de combinar otros indicadores como KD, RSI para establecer reglas de entrada más estrictas, evitar entrar demasiado temprano o demasiado tarde
  2. Prueba diferentes combinaciones de parámetros de bandas de Bollinger para optimizar la longitud de la banda y el multiplicador de desviación estándar
  3. Optimizar los umbrales de compra y venta para mejorar la tasa de ganancia
  4. Intentar adoptar una relación de stop loss dinámica basada en ATR para que coincida con la volatilidad del mercado
  5. Optimizar el tamaño de las posiciones, por ejemplo, ordenar adecuadamente las posiciones en forma de pirámide cuando se obtienen beneficios para controlar el riesgo de pérdida única

Resumen de las actividades

En resumen, esta es una estrategia de ruptura general simple y práctica. Adopta bandas de Bollinger para identificar oportunidades de reversión y establece umbrales dinámicos para la entrada y salida. Mientras tanto, se utilizan condiciones razonables de tamaño de posición y de stop loss para controlar los riesgos. Después de optimizar varios parámetros clave, esta estrategia puede producir rendimientos relativamente constantes. Es adecuada para el comercio algorítmico y también puede servir como una herramienta auxiliar para la selección de acciones o la medición del sentimiento del mercado. En términos generales, esta estrategia tiene una gran practicidad y extensibilidad.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
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/
// © SuperDS_BTC

//@version=5
strategy("布林通道策略多5min", overlay=true) 

// 布林通道计算
length = input(20, title="布林通道周期")
mult = input(2.0, title="标准差倍数")
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev

// 计算买入数量:每次检查仓位的大小 
// 每次买入使用总资金的10%
position_size = strategy.equity * 10 / close 

// 定義可調整的閾值
buy_threshold = input(58, title="買入閾值")
exit_threshold = input(470, title="賣出閾值")

// 买入条件:当现价低于布林通道的下限减去 buy_threshold
buy_condition = close < lower - buy_threshold

// 卖出条件和结清仓位条件
exit_condition = close > lower + exit_threshold

// 买入逻辑
if buy_condition
    strategy.entry("BuyLong", strategy.long, qty=position_size, comment="LongBTC")

// 卖出逻辑
if exit_condition
    strategy.close("BuyLong")

// 止损逻辑
stop_loss_percent = -1.25 //止损百分比为-125%
if strategy.position_size > 0
    position_profit_percent = (strategy.position_avg_price - close) / strategy.position_avg_price * 100
    if position_profit_percent <= stop_loss_percent
        strategy.close("BuyLong")

Más.