Estrategia de negociación de ruptura del canal Bollinger Band

El autor:¿ Qué pasa?, Fecha: 2023-09-12 17:05:56
Las etiquetas:

Esta estrategia opera la ruptura del precio de las bandas de Bollinger. Las bandas definen efectivamente el rango de oscilación del precio, con las rupturas que señalan posibles cambios de tendencia.

Estrategia lógica:

  1. Calcule la línea media, las bandas superior e inferior de BB. La línea media es la SMA de n períodos, el ancho de banda es el múltiplo de la desviación estándar de n períodos.

  2. Ir largo en la banda inferior y corto en la banda superior.

  3. Establezca el stop loss en la banda opuesta para controlar el riesgo.

  4. Detenerse para obtener más ganancias, o detenerse de forma fija.

  5. Aplicar órdenes mutuamente excluyentes para evitar el uso simultáneo de órdenes long/short.

Ventajas:

  1. La ruptura de BB identifica con precisión los cambios de tendencia.

  2. Las paradas en bandas permiten una salida oportuna de la tendencia.

  3. La exclusión mutua evita la cobertura en la misma dirección.

Riesgos:

  1. La media BB y el retraso de desviación, faltan las mejores entradas.

  2. Las aserraduras son comunes en los mercados.

  3. Parámetros estáticos Incapaz de adaptarse a la volatilidad cambiante.

En resumen, esta estrategia trata las rupturas de BB como un sistema de canal típico.


/*backtest
start: 2022-09-05 00:00:00
end: 2023-09-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Kozlod - BB Strategy - 1 minute", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// 
// author: Kozlod
// date: 2019-05-27
// RSI - BTCUSDT - 1m
// https://www.tradingview.com/u/Kozlod/
// https://t.me/quantnomad
//

source = close
length = input(45, minval=1)
mult = input(2.5, minval=0.001, maxval=50)

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

plot(upper)
plot(lower)

buyEntry  = crossover(source, lower)
sellEntry = crossunder(source, upper)

if (crossover(source, lower))
    strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

if (crossunder(source, upper))
    strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands",  comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

Más.