La stratégie est basée sur l'indicateur Bollinger Bands. Elle capte les tendances du marché en allant court lorsque le prix touche la bande supérieure et en allant long lorsqu'il touche la bande inférieure.
Les bandes de Bollinger se composent de trois lignes. La bande du milieu est la moyenne mobile simple du prix de clôture. Les bandes supérieures et inférieures sont un certain nombre d'écart standard au-dessus et en dessous de la bande du milieu. Puisque les prix fluctuent toujours autour de la moyenne, les bandes supérieures et inférieures des bandes de Bollinger peuvent être considérées comme une plage de pression pour les prix. Lorsque le prix franchit la bande supérieure, cela indique une forte tendance à la hausse et une position longue peut être prise; une rupture au-dessous de la bande inférieure indique une forte tendance à la baisse et une position courte peut être prise.
La stratégie utilise les caractéristiques de tendance des bandes de Bollinger. En entrant dans des positions lorsque le prix touche les bandes supérieures et inférieures, et en amplifiant l'intensité de la capture de tendance par pyramide, l'idée globale est simple et efficace. Cependant, elle a également un certain décalage et une certaine sensibilité aux paramètres. Dans les applications pratiques, l'attention doit être accordée à l'optimisation des paramètres et à la gestion des positions.
/*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 strategy("Bollinger Bands Breakout Strategy", overlay=true) // Définition des paramètres length = input(20, title="Bollinger Bands Length") multiplier = input(2.0, title="Multiplier") pyramiding = input(5, title="Pyramiding") // Calcul des bandes de Bollinger basis = ta.sma(close, length) dev = multiplier * ta.stdev(close, length) upper_band = basis + dev lower_band = basis - dev // Règles d'entrée buy_signal = close <= lower_band sell_signal = close >= upper_band // Gestion des positions if (buy_signal) strategy.entry("Buy", strategy.long) if (sell_signal) strategy.entry("Sell", strategy.short) // Pyramiding if (strategy.opentrades < pyramiding) strategy.entry("Buy", strategy.long) else if (strategy.opentrades > pyramiding) strategy.entry("Sell", strategy.short) // Tracé des bandes de Bollinger plot(basis, color=color.blue) plot(upper_band, color=color.red) plot(lower_band, color=color.green)