
La stratégie est basée sur l’indicateur de la ligne de Brin, qui permet de capturer les tendances du marché en effectuant un short lorsque le prix touche la ligne de Brin et un short lorsque le prix touche la ligne de Brin. En outre, la stratégie introduit le concept de prise de position pyramidale, qui continue de prendre des positions dans la direction initiale lorsque le nombre de positions détenues n’a pas atteint la valeur maximale définie.
La courbe de Brin est composée de trois lignes, la courbe centrale étant une moyenne mobile simple du prix de clôture, la courbe supérieure et la courbe inférieure étant respectivement plus et moins une différence standard sur la base de la courbe moyenne. Comme les prix fluctuent toujours près de la moyenne, la courbe supérieure et inférieure de la courbe de Brin peut être considérée comme une zone de pression du prix.
La stratégie utilise les caractéristiques de la tendance de la ligne de Brin pour entrer en jeu lorsque le prix touche le haut ou le bas, tout en amplifiant la capture de tendance de la manière d’une pyramide de mise. L’idée globale est simple et efficace. Cependant, il existe également un certain retard et une sensibilité aux paramètres.
/*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)