Cette stratégie combine l'indicateur Supertrend et l'indicateur Bollinger Bands pour capturer les opportunités de tendance sur le marché. L'indicateur Supertrend est utilisé pour déterminer la direction de la tendance actuelle du marché, tandis que l'indicateur Bollinger Bands est utilisé pour mesurer la volatilité du marché. Un signal long est généré lorsque le prix de clôture dépasse la ligne Supertrend et est en dessous de la bande inférieure de Bollinger, et un signal court est généré lorsque le prix de clôture dépasse la ligne Supertrend et est au-dessus de la bande supérieure de Bollinger.
La stratégie de combinaison Supertrend Bollinger Band est une stratégie de suivi de tendance qui peut capturer efficacement les opportunités de tendance en combinant deux facteurs de marché: la tendance et la volatilité. Cependant, cette stratégie présente également certaines limitations, telles que la sensibilité aux paramètres et l'augmentation du risque dans des environnements à forte volatilité. Par conséquent, dans l'application réelle, il est nécessaire d'optimiser et d'améliorer la stratégie en fonction des caractéristiques du marché et des préférences de risque de chacun.
/*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)