La estrategia de filtrado de brechas y fluctuaciones de la banda de Bollinger es una estrategia de negociación basada en indicadores de la banda de Bollinger. Utiliza las bandas de Bollinger para determinar la posición y la volatilidad de los precios con respecto a las medias móviles, lo que determina la apertura y la cancelación de las posiciones.
El núcleo de esta estrategia es calcular el indicador de la banda de Bollinger. La banda de Bollinger se compone de tres líneas: la mediana es un promedio móvil simple, y las medias superiores y inferiores se suman y disminuyen una cierta diferencia estándar sobre la base de la mediana. El tamaño de la diferencia estándar está controlado por el parámetro mult.
Las condiciones de apertura de la estrategia se basan en la posición del precio de cierre con respecto a la banda de Bollinger. Si la dirección de la operación está configurada para hacer más ((tradeDirection> = 0), y el precio de cierre cae hacia abajo por una cierta proporción ((lower_breakout_pct), se abre una posición más; Si la dirección de la operación está configurada para hacer menos ((tradeDirection< = 0), y el precio de cierre se rompe hacia arriba por una cierta proporción ((upper_breakout_pct), se abre una posición vacía. El parámetro de proporción de ruptura aquí permite que el precio rompa ligeramente la banda de Bollinger para confirmar la tendencia.
Por otro lado, si las caídas y bajadas de dos líneas K consecutivas superan el umbral de volatilidad previsto (Volatility), la estrategia no abrirá una nueva posición si se considera que el mercado actual es más volátil. Este filtro de volatilidad puede evitar, hasta cierto punto, un entorno de mercado muy volátil.
En cuanto a la posición horizontal, si el precio de cierre de la posición de varios titulares toca el área superior de la línea de la línea de la línea superior, entonces el valor de la posición de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea*long_win_pct), o el precio de cierre de la posición en blanco tocó la zona inferior*short_win_pct), la estrategia liquida la posición correspondiente para obtener ganancias. Además, si la pérdida flotante de la posición supera el porcentaje máximo de retirada predeterminado ((max_drawdown_percent), la estrategia también liquida la posición.
Las bandas de Bollinger son un indicador tecnológico bien desarrollado y ampliamente utilizado, que combina información sobre las medias móviles y la volatilidad de los precios. Las bandas de Bollinger se utilizan para desarrollar estrategias de negociación que permiten capturar cambios en las tendencias y las fluctuaciones.
La estrategia contiene la lógica de abrir y cerrar al mismo tiempo, lo que permite aprovechar las oportunidades de manera flexible en los mercados de doble sentido. La configuración de los puntos de ruptura de la banda de Bollinger hace que los puntos de entrada de la estrategia sean más confirmativos.
El filtro de volatilidad evita la apertura de posiciones en mercados con gran volatilidad, reduciendo en cierta medida el riesgo de operaciones frecuentes y de apalancamiento.
La estrategia utiliza un mecanismo de stop-loss y stop-loss, que permite controlar activamente las posiciones, cerrando las posiciones cuando el precio retrocede a una posición clave. Esto es útil para proteger las ganancias y controlar la retirada.
La banda de Bollinger es esencialmente un indicador de retraso, con un cierto atraso en la respuesta del mercado. En momentos cruciales de cambio de tendencia o cambio de trayectoria, la estrategia puede perder el mejor momento de entrada.
La configuración de los parámetros de la estrategia no siempre se aplica a las diferentes condiciones del mercado. Por ejemplo, la configuración del umbral del filtro de fluctuación puede requerir una diferencia entre situaciones de tendencia y de convulsión. Los parámetros fijos pueden causar que la estrategia no pueda abrir posiciones en ciertas situaciones o que las posiciones se abran con demasiada frecuencia.
A pesar de las medidas de deterioro, cuando el mercado se abre una brecha de salto, la estrategia puede no funcionar a los precios predeterminados, lo que genera mayores pérdidas.
La estrategia no establece un stop-loss móvil o un stop-loss de seguimiento después de la apertura de la posición, lo que puede provocar un retorno parcial de las ganancias.
Se puede considerar la introducción de más indicadores técnicos o de estado del mercado, como ATR, indicadores de tendencia, indicadores de volatilidad, etc., como condiciones de filtración de la estrategia, para mejorar la calidad y el tiempo de apertura de posiciones.
Para los filtros de fluctuación, se puede intentar utilizar un umbral dinámico, que se ajuste de acuerdo con diferentes variedades o diferentes períodos de tiempo, para mejorar la eficacia del filtro.
En el caso de los stop-loss, se puede introducir un mecanismo de stop-loss móvil o de seguimiento de los stop-loss, lo que permite a la estrategia mantener la posición cuando la tendencia continúa, en lugar de cerrar la posición prematuramente. También se puede considerar la configuración de diferentes proporciones de stop-loss para optimizar el riesgo-beneficio.
Se puede optimizar aún más la gestión de posiciones, ajustando la proporción de apertura de posiciones y controlando las retiradas de acuerdo con la dinámica de indicadores como la intensidad de la tendencia, la volatilidad y el grado de riesgo. Además, se puede utilizar mejor el capital mediante operaciones de aumento o disminución de posiciones.
La estrategia de filtración de la brecha y la volatilidad de la banda de Bollinger utiliza el dibujo de la banda de Bollinger sobre la posición y la volatilidad de los precios para construir una estrategia de negociación bidireccional. Lo único que hace que esta estrategia sea única es que el filtro de volatilidad evita las operaciones en un mercado de gran volatilidad, al tiempo que establece condiciones de parada y pérdida más simples. En general, la estrategia incluye la lógica de apertura de posición y el control del riesgo de manera más completa, pero también hay espacio para una mayor optimización en respuesta a los cambios en el mercado, la aplicabilidad de los parámetros y el efecto de la parada.
/*backtest
start: 2024-02-29 00:00:00
end: 2024-03-07 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("[Oppen Chow] Super BBS 1.0", default_qty_type = strategy.percent_of_equity, default_qty_value =100, initial_capital=500, commission_type=strategy.commission.percent, commission_value=0.08, pyramiding=2 )
// Input parameters
length = 20
mult = 2
max_drawdown_percent = input(5.5, "Maximum Acceptable Drawdown") / 100
upper_breakout_pct = input(50, "Short Entry Breakout Percentage") / 100
lower_breakout_pct = input(25, "Long Entry Breakout Percentage") / 100
tradeDirection = input(1, title="Trade Direction")
Volatility = input(0.5, title="Volatility") / 100
long_win_pct = input(-0.15, title = "Long Settlement Rate Near Boll Upper Limit")
short_win_pct = input(0.4, title = "Short Settlement Rate Near Boll Lower Limit")
// Bollinger Bands calculation
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev
area = upper - lower
// Calculate the rate of change for two consecutive candlesticks
var float change1 = na
var float change2 = na
change1 := change2
change2 := ((close - open) / open)
// Check for two or more consecutive candlesticks with a change rate greater than 0.5%
var bool highVolatility = false
highVolatility := change2 > Volatility
// Trading logic
var float highestPriceSinceOpen = na
var float lowestPriceSinceOpen = na
var int profitableDrawbackCount = 1
// Entry logic - In the absence of high volatility
if not highVolatility and strategy.position_size == 0
if (tradeDirection >= 0) and (close < lower - area * lower_breakout_pct)
strategy.entry("Long", strategy.long)
highestPriceSinceOpen := close
profitableDrawbackCount := 0
if (tradeDirection <= 0) and (close > upper + area * upper_breakout_pct)
strategy.entry("Short", strategy.short)
lowestPriceSinceOpen := close
profitableDrawbackCount := 0
if strategy.position_size > 0 and close > upper - area * long_win_pct
strategy.close("Long", comment = "Take Profit")
if strategy.position_size < 0 and close < lower + area * short_win_pct
strategy.close("Short", comment = "Take Profit")
// Stop loss logic - Based on drawdown percentage
if strategy.position_size > 0
if (strategy.position_avg_price - close)/strategy.position_avg_price >= max_drawdown_percent
strategy.close("Long", comment = "Drawdown Stop Loss")
else if strategy.position_size < 0
if (close - strategy.position_avg_price)/strategy.position_avg_price >= max_drawdown_percent
strategy.close("Short", comment = "Drawdown Stop Loss")