La estrategia BB%B es una estrategia de negociación cuantitativa que utiliza el valor porcentual B de las bandas de Bollinger para tomar decisiones de inversión. Puede generar señales de compra y venta cuando el precio se acerca al tren superior o inferior de las bandas de Bollinger, y pertenece a las estrategias de seguimiento de tendencias.
El indicador BB%B representa la posición del precio actual dentro de las Bandas de Bollinger, calculada por la fórmula (Precio actual - Lower Rail) / (Upper Rail - Lower Rail). Cuando BB%B cae por debajo del umbral de sobreventa, se genera una señal de compra. Cuando BB%B se eleva por encima del umbral de sobreventa, se genera una señal de venta. Después de que se activa la señal de negociación, si BB%B retrocede al umbral opuesto, la posición se cerrará.
Específicamente, la estrategia primero calcula la SMA de 21 días y la desviación estándar de 2x para obtener los rieles superior e inferior de las bandas de Bollinger. Luego calcula el valor de BB%B del precio de cierre actual. Si BB%B está por debajo de -0.2 (configurable) y no hay posición actual, vaya largo. Si BB%B está por encima de 1.2 (configurable) y no hay posición actual, vaya corto. Las señales de salida se activan cuando existe la posición larga y BB%B cruza por encima de 1.0 (configurable), o cuando existe la posición corta y BB%B cruza por debajo de 0.2 (configurable).
La estrategia se basa en el indicador BB%B para determinar si el precio actual está sobreextenso hacia arriba o hacia abajo, y también utiliza el SMA para juzgar la dirección de la tendencia actual.
Los rieles superiores e inferiores de las bandas de Bollinger representan un cierto rango de desviación estándar del precio actual. Los precios que se acercan o tocan las condiciones de sobrecompra de la señal superior del tren, mientras se acercan o tocan las condiciones de sobreventa de la señal inferior del tren. La estrategia BB%B utiliza plenamente esta característica para determinar los puntos de entrada y salida apropiados.
Los umbrales BB%B, los períodos SMA, los umbrales de retroceso son todos configurables, lo que proporciona comodidad para ajustar la frecuencia de negociación.
Además de la determinación de sobrecompra/sobreventa con bandas de Bollinger, también combina SMA para juzgar la tendencia general, evitando el comercio contra la tendencia.
Cuando el precio toca por primera vez los carriles de las bandas de Bollinger, la probabilidad de sobrecompra/sobreventa es alta, pero también podría ser una falsa ruptura a corto plazo.
La estrategia se basa únicamente en el indicador Bollinger Bands para determinar posibles reversiones, ignorando la tendencia general, que puede conducir a la negociación contra la tendencia y pérdidas.
Si el umbral de retroceso se establece demasiado alto, la inversión de tendencia puede no desencadenar un cambio de posición a tiempo, perdiendo oportunidades.
Cuando la volatilidad del mercado aumenta, la distancia entre los rieles superior e inferior también aumenta, lo que conduce a un mayor margen de precios para la entrada y salida, por lo tanto, un mayor riesgo por operación.
En comparación con las estrategias a largo plazo, esta estrategia tiene una mayor frecuencia de negociación, incurriendo en más costos de negociación y deslizamiento.
Agregue indicadores de tendencia como MACD, KDJ para activar solo las operaciones a lo largo de la dirección de la tendencia, evitando las operaciones contrarias a la tendencia.
Establecer un importe fijo o un porcentaje de stop loss para controlar el riesgo por operación y evitar la expansión de las pérdidas.
Ajustar los períodos de SMA, los umbrales BB%B, los umbrales de retroceso, etc. para encontrar la combinación óptima de parámetros, filtrando más ruido y mejorando la estabilidad.
Para diferentes productos, ajustar los parámetros a una menor frecuencia de negociación en función de su perfil de costes de negociación para reducir el impacto.
La estrategia BB%B es una estrategia comercial cuantitativa simple y práctica. Utiliza bandas de Bollinger para identificar puntos de precio de reversión potenciales, se combina con SMA para la dirección de la tendencia y se negocia alrededor de los niveles de sobrecompra / sobreventa. La estrategia es flexible para ajustar la frecuencia. Pero también tiene riesgos que necesitan mejoras adicionales, teniendo en cuenta factores como la tendencia general, el stop loss, los costos de negociación, para mejorar la estabilidad y la rentabilidad. Cuando se utiliza correctamente, la estrategia BB%B puede convertirse en un componente efectivo en los sistemas de negociación cuantitativa.
/*backtest start: 2023-08-25 00:00:00 end: 2023-09-24 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // strategy(title = "BB%B Strat", shorttitle = "BB%B Strat", format=format.price, precision=2, default_qty_type=strategy.percent_of_equity, default_qty_value=20) length = input.int(21, minval=1) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") ob = input.float(1.2, "Overbought Line", step=0.1) ob_close = input.float(1.0, "Overbought Close", step=0.1) os = input.float(-0.2, "Oversold Line", step=0.1) os_close = input.float(0.2, "Oversold Close", step=0.1) basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev bbr = (src - lower)/(upper - lower) p = plot(bbr, "Bollinger Bands %B", color=#26A69A) ob_hline = hline(ob, "Overbought", color=color.red, linestyle=hline.style_dashed) obc_hline = hline(ob_close, "Overbought Close", color=color.red, linestyle=hline.style_dashed) os_hline = hline(os, "Oversold", color=color.green, linestyle=hline.style_dashed) osc_hline = hline(os_close, "Oversold Close", color=color.green, linestyle=hline.style_dashed) fill(ob_hline, obc_hline, color=color.new(color.red, 80), title="Overbought") fill(os_hline, osc_hline, color=color.new(color.green, 80), title="Overbought") bgcolor(bbr > ob ? color.new(color.fuchsia, 80) : (bbr < os ? color.new(color.lime, 80) : na)) if bbr < os and strategy.position_size == 0 strategy.entry("L", strategy.long) if bbr >= os_close and strategy.position_size > 0 strategy.close_all() if bbr > ob and strategy.position_size == 0 strategy.entry("S", strategy.short) if bbr <= ob_close and strategy.position_size < 0 strategy.close_all()