Estrategia de ruptura de bandas de Bollinger

El autor:¿ Qué pasa?, Fecha: 2023-09-19 16:06:56
Las etiquetas:

Resumen general

Esta estrategia se basa en el indicador de bandas de Bollinger. Va largo cuando el precio se rompe por encima de la banda inferior y cierra la posición cuando el precio toca la banda superior. La estrategia utiliza el principio de contención de bandas de Bollinger para rastrear las rupturas anormales de precios para comprar bajo y vender alto.

Principio de la estrategia

  1. Calcular la banda media SMA como la media móvil simple de los precios de cierre recientes.

  2. Calcular la desviación estándar StdDev para reflejar el intervalo de fluctuación de los precios.

  3. Añadir el desplazamiento superior de la desviación estándar a la banda media SMA para obtener la banda superior.

  4. Sustraer el desplazamiento inferior de la desviación estándar de la banda media SMA para obtener la banda inferior.

  5. Ir largo cuando el precio de cierre rompe por encima de la banda inferior de abajo hacia arriba.

  6. Cierre la posición cuando el precio toque la banda superior, ya que el precio se considera anormal.

Análisis de ventajas

La mayor ventaja de esta estrategia es utilizar las propiedades estadísticas de las bandas de Bollinger para rastrear de manera efectiva las fluctuaciones anormales del mercado y capturar tendencias.

  1. Las bandas superiores e inferiores pueden adaptarse automáticamente a la volatilidad del mercado.

  2. Las señales de fuga son más fiables para entrar.

  3. La reversión al medio es razonable para obtener ganancias.

  4. Gran espacio para ajustar los parámetros a diferentes mercados.

  5. Puede capturar las tendencias a medio y largo plazo y también puede utilizarse a corto plazo.

Análisis de riesgos

Los riesgos potenciales de esta estrategia son principalmente:

  1. Mal desempeño de las bandas de Bollinger en los mercados de rango, evitar entradas erróneas.

  2. Las señales de fuga pueden ser falsas, necesitan juicios prudentes.

  3. La posición de ganancia es demasiado idealizada, puede ser optimizada para la acción real del precio.

  4. La configuración incorrecta de los parámetros puede conducir a un exceso de negociación o a un exceso de conservadurismo.

  5. El período de prueba posterior debe ser lo suficientemente largo como para evitar el ajuste de la curva.

Medidas de gestión de riesgos correspondientes:

  1. Añadir indicadores de volumen de operaciones a las señales de filtro.

  2. Optimizar los parámetros y los datos de ensayo de diferentes mercados.

  3. Agregue los niveles de stop-loss y de ganancias.

  4. Evaluar las divergencias de señal, evitar perseguir los máximos y vender los mínimos.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Pruebe diferentes combinaciones de parámetros de Bollinger Bands para encontrar el óptimo.

  2. Agregue MA, MACD, etc. para filtrar las señales de ruptura.

  3. Aplicar algoritmos de aprendizaje automático para optimizar los parámetros de Bollinger.

  4. Evaluar la fuerza de las rupturas y ajustar el tamaño de la posición.

  5. Prueba posterior de períodos más largos para probar la estabilidad.

  6. Añadir mecanismos de stop loss para controlar el riesgo.

Resumen de las actividades

En resumen, la estrategia de Bollinger Bands es una estrategia de seguimiento de tendencias confiable en general. Puede capturar eficazmente las fluctuaciones anormales de precios. Pero también debemos notar su desviación del precio real y optimizar constantemente los parámetros. Si se usa para el comercio en vivo, la gestión estricta del riesgo es una necesidad para controlar la pérdida por operación.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 04:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title="BB training No Repainting (OTS Mode)", overlay=true)


// Strategy Rules:
// 1. Enter trade when price crosses above the lower band
// 2. Exit trade when price touches the upper band
// 

// Chart Properties
testStartYear = input(2010, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? #6c6f6c : na
bgcolor(testPeriodBackgroundColor, transp=97)

// User provided values
smaLength = input(title="SMA Length", type=input.integer, defval=20) // Middle band period length (moving average)
stdLength = input(title="StdDev Length", type=input.integer, defval=20) // Range to apply bands to
ubOffset = input(title="Upper Band Offset", type=input.float, defval=2.0, step=0.5) // Number of standard deviations above MA
lbOffset = input(title="Lower Band Offset", type=input.float, defval=2.0, step=0.5) // Number of standard deviation below MA

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

smaValue = sma(close, smaLength) // Middle band
stdDev = stdev(close, stdLength)
upperBand = smaValue + stdDev * ubOffset // Top band
lowerBand = smaValue - stdDev * lbOffset // Bottom band

// Plot bands to chart
plot(series=smaValue, title="SMA", color=color.green)
plot(series=upperBand, title="UB", color=color.blue, linewidth=2)
plot(series=lowerBand, title="LB", color=color.blue, linewidth=2)

longCondition = (crossover(close, lowerBand))
closeLongCondition = (close >= upperBand)

if (longCondition and testPeriod())
    strategy.entry(id="CALL", long=true)

strategy.close(id="CALL", when=closeLongCondition)


Más.