Esta estrategia genera señales comerciales basadas en el indicador de Bollinger Bands y gestiona posiciones utilizando stop-loss/take-profit. Supervisa la ruptura de las bandas superior e inferior de Bollinger Bands, va largo cuando el precio se rompe por encima de la banda superior, va corto cuando el precio rompe la banda inferior y sale cuando el precio rompe las bandas en sentido inverso utilizando órdenes de stop-loss.
La estrategia utiliza las bandas media, superior e inferior del indicador Bollinger Bands. La banda media es el promedio móvil, la banda superior es la banda media más 2 desviaciones estándar, y la banda inferior es la banda media menos 2 desviaciones estándar.
Primero calcula las bandas medias, superiores e inferiores de las bandas de Bollinger. Luego comprueba si el precio se rompe por encima de la banda superior o por debajo de la banda inferior. Si el precio se rompe por encima de la banda superior, va largo. Si el precio se rompe por debajo de la banda inferior, va corto. También si el precio rompe las bandas al revés, sale de las posiciones utilizando órdenes de stop-loss.
Específicamente, la lógica de la estrategia es:
Esto permite capturar tendencias cuando el precio hace grandes movimientos, al tiempo que limita las pérdidas utilizando stop-loss.
Puede optimizar mediante la combinación de indicadores, el ajuste de unidades de stop-loss, etc.
Esta es una tendencia relativamente simple siguiendo una estrategia basada en bandas de Bollinger. Puede tomar posiciones rápidamente cuando el precio se rompe y utiliza stop-loss para controlar el riesgo. Pero confiar únicamente en el precio puede causar juicios erróneos, mientras que el stop-loss sensible puede aumentar la frecuencia de las operaciones. Podemos mejorar aún más mediante el ajuste de parámetros, la combinación de indicadores, el ajuste de paradas, etc. En general, proporciona un marco de negociación cuantitativa simple y confiable.
/*backtest start: 2023-09-26 00:00:00 end: 2023-10-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ROBO_Trading //@version=5 strategy(title = "Bollinger Stop Strategy", shorttitle = "BBStop", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 10000, default_qty_value = 100, commission_value = 0.1) //Settings long = input(true) short = input(true) length = input.int(20, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) source = input(close) showbb = input(true, title = "Show Bollinger Bands") showof = input(true, title = "Show Offset") startTime = input(defval = timestamp("01 Jan 2000 00:00 +0000"), title = "Start Time", inline = "time1") finalTime = input(defval = timestamp("31 Dec 2099 23:59 +0000"), title = "Final Time", inline = "time1") //Bollinger Bands basis = ta.sma(source, length) dev = mult * ta.stdev(source, length) upper = basis + dev lower = basis - dev //Show indicator offset = showof ? 1 : 0 colorBasis = showbb ? color.gray : na colorUpper = showbb ? color.blue : na colorLower = showbb ? color.blue : na colorBands = showbb ? color.blue : na p0 = plot(basis, "Basis", color = colorBasis, offset = offset) p1 = plot(upper, "Upper", color = colorUpper, offset = offset) p2 = plot(lower, "Lower", color = colorLower, offset = offset) fill(p1, p2, title = "Background", color = colorBands, transp = 90) //Trading truetime = true if basis > 0 and truetime if long strategy.entry("Long", strategy.long, stop = upper, when = truetime) if short strategy.entry("Short", strategy.short, stop = lower, when = truetime) if long == false strategy.exit("Exit", "Short", stop = upper) if short == false strategy.exit("Exit", "Long", stop = lower) if time > finalTime strategy.close_all()