Esta estrategia se basa en el indicador de Bollinger Bands, tomando posiciones largas o cortas cuando el precio rompe las líneas superiores o inferiores de Bollinger Bands.
Específicamente, primero calcula la SMA de la línea media de longitud, y las líneas superior/inferior de múltiples veces la desviación estándar. Cuando el cierre se rompe hacia arriba desde la línea inferior, vaya largo. Cuando el cierre se rompe desde la línea superior, vaya corto. También establece el tiempo de inicio y fin para limitar las horas de negociación. Salir antes de la apertura diaria.
La estrategia intenta capturar movimientos en expansión después de que el precio rompe las bandas.
Los riesgos pueden reducirse optimizando las reglas de entrada, agregando stop loss, introduciendo filtros de tendencia, etc.
Esta es una estrategia de ruptura basada en bandas de Bollinger. Se beneficia de los movimientos de ruptura. Los pros son una lógica simple y una implementación fácil; los contras son susceptibles a falsos breakouts. Los riesgos se pueden gestionar a través de la optimización de parámetros, stop loss, control de horas de negociación, etc. Permite a los operadores comprender los conceptos básicos del uso de indicadores y breakouts comerciales.
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy("Noro's Bollinger Strategy v1.0", shorttitle = "Bollinger str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") length = input(20, minval=1) mult = input(1.0, minval=0.001, maxval=50) fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") source = close basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev up = close < lower dn = close > upper exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) if up strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00))) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00))) if time > timestamp(toyear, tomonth, 31, 00, 00) or exit strategy.close_all()