Esta estrategia combina el indicador de Supertrend y el indicador de Bollinger Bands para capturar oportunidades de tendencia en el mercado. El indicador de Supertrend se utiliza para determinar la dirección de la tendencia actual del mercado, mientras que el indicador de Bollinger Bands se utiliza para medir la volatilidad del mercado. Se genera una señal larga cuando el precio de cierre se rompe por encima de la línea de Supertrend y está por debajo de la banda inferior de Bollinger, y se genera una señal corta cuando el precio de cierre se rompe por debajo de la línea de Supertrend y está por encima de la banda superior de Bollinger.
La estrategia de combinación de Supertrend Bollinger Band es una estrategia de seguimiento de tendencias que puede capturar de manera efectiva las oportunidades de tendencia al combinar dos factores del mercado: tendencia y volatilidad. Sin embargo, esta estrategia también tiene ciertas limitaciones, como ser sensible a los parámetros y aumentar el riesgo en entornos de alta volatilidad. Por lo tanto, en la aplicación real, es necesario optimizar y mejorar adecuadamente la estrategia de acuerdo con las características del mercado y las propias preferencias de riesgo.
/*backtest start: 2024-03-21 00:00:00 end: 2024-03-28 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © sabhiv27 //@version=4 strategy("Supertrend & Bollinger Bands Strategy", shorttitle="ST_BB_Strategy", overlay=true) // Input options factor = input(3, title="Supertrend Factor") length = input(10, title="ATR Length") bollinger_length = input(20, title="Bollinger Bands Length") bollinger_deviation = input(2, title="Bollinger Bands Deviation") // Calculate True Range for Supertrend truerange = rma(tr, length) // Calculate Supertrend var float up_trend = na var float dn_trend = na var float trend = na up_signal = hl2 - (factor * truerange) dn_signal = hl2 + (factor * truerange) up_trend := close[1] > up_trend[1] ? max(up_signal, up_trend[1]) : up_signal dn_trend := close[1] < dn_trend[1] ? min(dn_signal, dn_trend[1]) : dn_signal trend := close > dn_trend ? 1 : close < up_trend ? -1 : nz(trend[1], 1) // Calculate Bollinger Bands basis = sma(close, bollinger_length) dev = stdev(close, bollinger_length) upper_band = basis + bollinger_deviation * dev lower_band = basis - bollinger_deviation * dev // Entry conditions long_condition = crossover(close, up_trend) and close < lower_band short_condition = crossunder(close, dn_trend) and close > upper_band // Exit conditions exit_long_condition = crossover(close, dn_trend) exit_short_condition = crossunder(close, up_trend) // Plot Supertrend plot(trend == 1 ? up_trend : dn_trend, color=trend == 1 ? color.green : color.red, linewidth=2) // Plot Bollinger Bands plot(upper_band, color=color.blue) plot(lower_band, color=color.blue) // Generate buy and sell signals strategy.entry("Long", strategy.long, when=long_condition) strategy.entry("Short", strategy.short, when=short_condition) strategy.close("Long", when=exit_long_condition) strategy.close("Short", when=exit_short_condition)