Esta estrategia se basa en el indicador de bandas de Bollinger y genera señales comerciales cuando el precio rompe las bandas superiores o inferiores. Se hace largo cuando el precio se rompe por encima de la banda superior y se hace corto cuando el precio se rompe por debajo de la banda inferior. Además, si se mantiene una posición larga, se cierra la posición cuando el precio cae por debajo de la banda inferior; si se mantiene una posición corta, se cierra la posición cuando el precio se rompe por encima de la banda superior. La estrategia tiene como objetivo capturar la volatilidad del mercado, entrando en operaciones cuando las fluctuaciones de precios se intensifican y saliendo de manera oportuna cuando los precios se invierten.
La estrategia BB Breakout es una estrategia de trading basada en el indicador de Bollinger Bands, que busca oportunidades de trading cuando los precios rompen las bandas superiores o inferiores. Las ventajas de la estrategia son señales claras y una fácil implementación, con ciertas medidas de control de riesgos. Sin embargo, la estrategia también tiene algunas limitaciones, como una frecuencia de trading potencialmente alta y un retraso en la señal.
/*backtest start: 2023-06-08 00:00:00 end: 2024-06-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("BB Strategy", overlay=true) // Input parameters length = input.int(20, minval=1, title="Length") maType = input.string("SMA", "Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") offset = input.int(0, "Offset", minval=-500, maxval=500, title="Offset") // Moving average function ma(source, length, _type) => switch _type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) // Calculate Bollinger Bands basis = ma(src, length, maType) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plot Bollinger Bands plot(basis, "Basis", color=color.blue, offset=offset) p1 = plot(upper, "Upper", color=color.red, offset=offset) p2 = plot(lower, "Lower", color=color.green, offset=offset) fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95)) // Strategy logic longCondition = ta.crossover(close, upper) shortCondition = ta.crossunder(close, lower) // Strategy entries and exits if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (shortCondition and strategy.position_size > 0) strategy.close("Long") if (longCondition and strategy.position_size < 0) strategy.close("Short")