La estrategia de seguimiento de volatilidad de la banda de Bollinger doble es una estrategia de trading cuantitativa que captura la volatilidad de precios mediante la construcción de bandas de Bollinger dobles para el seguimiento.
La estrategia primero calcula el promedio móvil de N días como la línea de base, luego calcula los carriles superiores e inferiores basados en múltiplos de la desviación estándar para construir las Bandas de Bollinger. La estrategia emplea doble Bandas de Bollinger, donde ambos carriles superiores e inferiores son múltiplos de la desviación estándar. Una vez que se forman las doble Bandas de Bollinger, se activa una señal de compra cuando el precio rompe la línea superior, y se activa una señal de venta cuando el precio rompe la línea inferior, capturando oportunidades de volatilidad de precios en las Bandas de Bollinger.
La estrategia también establece una ventana de tiempo para hacer que la backtest sea más TARGET y evitar que los datos iniciales afecten los resultados de la prueba.
La mayor ventaja de esta estrategia es que puede capturar la volatilidad de los precios en tiempo real rompiendo los rieles superior e inferior de las bandas de Bollinger para determinar la dirección de la OPERACIÓN. En comparación con otros indicadores, las bandas de Bollinger reaccionan al mercado de manera más sensible y pueden formar señales comerciales en un período de tiempo más corto. Además, las bandas de Bollinger dobles establecen un canal más amplio para que la probabilidad de ruptura de precios sea mayor, lo que permite a la estrategia capturar más oportunidades comerciales.
Los principales riesgos de esta estrategia se encuentran en los parámetros del período de N días y los múltiplos de desviación estándar que construyen las Bandas de Bollinger. Si los parámetros no se establecen adecuadamente, dará lugar a Bandas de Bollinger que son demasiado anchas o demasiado estrechas, perdiendo así oportunidades comerciales o generando señales falsas. Además, no se establece ningún stop loss para el comercio bidireccional, lo que puede conducir a pérdidas ampliadas.
Las soluciones son optimizar los parámetros y evaluar la forma de las bandas de Bollinger en tiempo real; también, establecer estrategias de stop loss basadas en datos históricos para controlar pérdidas individuales.
Los principales aspectos a optimizar para esta estrategia:
Optimizar los parámetros de las bandas de Bollinger, ajustar el período de N días y los múltiplos de la desviación estándar para adaptarse mejor a las diferentes características del mercado.
Aumentar los mecanismos de renovación de pedidos para realizar pedidos adicionales después de que se obtenga algún beneficio de los pedidos originales, con el fin de ampliar el espacio de beneficios.
Establezca estrategias de stop loss para salir de las posiciones cuando los precios rompan los rieles superiores o inferiores de las bandas de Bollinger en direcciones desfavorables, controlando las pérdidas.
Incorporar otros indicadores para detectar señales y evitar señales falsas en mercados volátiles.
La estrategia de seguimiento de volatilidad de la banda de Bollinger doble captura la volatilidad de precios en tiempo real mediante la construcción de bandas de Bollinger de doble cara, pudiendo aprovechar más oportunidades comerciales a corto plazo. Las ventajas de esta estrategia son la sensibilidad a los cambios del mercado y la generación rápida de señales. Los principales riesgos provienen de configuraciones de parámetros inapropiadas y la falta de stop loss. Podemos hacer que la estrategia sea más estable y eficiente a través de la optimización multidimensional.
/*backtest start: 2022-12-18 00:00:00 end: 2023-12-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("BB_BB", overlay=true,default_qty_type=strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) length = input(20, minval=1) src = input(close, title="Source") mult = input(2.0, minval=0.001, maxval=50) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2017, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // create function "within window of time" basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev plot(basis, color=red) p1 = plot(upper, color=blue) p2 = plot(lower, color=blue) fill(p1, p2) buy = crossover(sma(close,1), upper) or crossover(sma(close,1), lower) sell = crossunder(sma(close,1), upper) or crossunder(sma(close,1), lower) if(buy) strategy.entry("BUY", strategy.long, when = window()) if(sell) strategy.entry("SELL", strategy.short, when = window())