Esta estrategia se basa en el indicador de Bollinger Bands. Ingresa en una posición larga cuando el precio de cierre se rompe por encima de la banda superior y entra en una posición corta cuando el precio de cierre se rompe por debajo de la banda inferior. La condición de salida para la posición larga es cuando el precio cae por debajo de la banda media, y la condición de salida para la posición corta es cuando el precio se rompe por encima de la banda media. La estrategia utiliza la posición del precio en relación con las bandas superior e inferior de las bandas de Bollinger para determinar la tendencia y la dirección y el momento de las entradas y salidas.
Esta estrategia es una estrategia clásica de seguimiento de tendencias que captura los mercados de tendencia utilizando bandas de Bollinger. La lógica de la estrategia es clara y las ventajas son obvias, pero también tiene ciertos riesgos. Al optimizar el stop-loss, la toma de ganancias, la gestión de posiciones y los filtros de entrada, se puede mejorar el rendimiento de la estrategia y mejorar la adaptabilidad. Sin embargo, cada estrategia tiene sus limitaciones y debe aplicarse de manera flexible junto con las condiciones reales del mercado.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0 // This displays the traditional Bollinger Bands, the difference is // that the 1st and 2nd StdDev are outlined with two colors and two // different levels, one for each Standard Deviation strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true) src = input(close) length = input.int(20, minval=1, title = "Length") mult = input.float(2.0, minval=0.001, maxval=50, title = "Multiplier") basis = ta.sma(src, length) dev = ta.stdev(src, length) dev2 = mult * dev upper1 = basis + dev lower1 = basis - dev upper2 = basis + dev2 lower2 = basis - dev2 // Strategy long_condition = ta.crossover(close, upper1) short_condition = ta.crossunder(close, lower1) if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short) // Exit conditions exit_long_condition = ta.crossunder(close, basis) exit_short_condition = ta.crossover(close, basis) if (exit_long_condition) strategy.close("Long") if (exit_short_condition) strategy.close("Short") colorBasis = src >= basis ? color.blue : color.orange pBasis = plot(basis, linewidth=2, color=colorBasis) pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles) pUpper2 = plot(upper2, color=color.new(color.blue, 0)) pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles) pLower2 = plot(lower2, color=color.new(color.orange, 0)) fill(pBasis, pUpper2, color=color.new(color.blue, 80)) fill(pUpper1, pUpper2, color=color.new(color.blue, 80)) fill(pBasis, pLower2, color=color.new(color.orange, 80)) fill(pLower1, pLower2, color=color.new(color.orange, 80))