Cette stratégie est basée sur l'indicateur des bandes de Bollinger. Elle entre dans une position longue lorsque le prix de clôture dépasse la bande supérieure et entre dans une position courte lorsque le prix de clôture dépasse la bande inférieure. La condition de sortie de la position longue est lorsque le prix tombe en dessous de la bande du milieu, et la condition de sortie de la position courte est lorsque le prix dépasse la bande du milieu. La stratégie utilise la position du prix par rapport aux bandes supérieure et inférieure des bandes de Bollinger pour déterminer la direction de la tendance et le moment des entrées et sorties.
Cette stratégie est une stratégie classique de suivi des tendances qui capture les marchés en tendance en utilisant des bandes de Bollinger. La logique de la stratégie est claire et les avantages sont évidents, mais elle comporte également certains risques. En optimisant le stop-loss, la prise de profit, la gestion de position et les filtres d'entrée, la performance de la stratégie peut être améliorée et l'adaptabilité peut être améliorée. Cependant, chaque stratégie a ses limites et doit être appliquée de manière flexible en conjonction avec les conditions réelles du marché.
/*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))