
Die Strategie basiert auf dem Bolling-Line-Indikator, um Markttrends zu erfassen, indem sie bei der Berührung der Bolling-Line auf die Oberbahn leer und bei der Berührung der Unterbahn mehr macht. Gleichzeitig führt die Strategie das Konzept der Pyramidenpositionierung ein, bei der Positionen in der ursprünglichen Richtung aufgenommen werden, wenn die Anzahl der Positionen die festgelegte Höchstzahl nicht erreicht hat.
Die Brin-Linie besteht aus drei Linien, wobei der Mittelstrahl der einfache Moving Average des Schlusskurses ist, wobei die oberen und unteren Schienen jeweils auf der Basis des Mittelstrahls eine bestimmte Standardabweichung addieren und reduzieren. Da die Preise immer in der Nähe des Durchschnitts schwanken, kann die oberen und unteren Schiene der Brin-Linie als Druckbereich für die Preise angesehen werden.
Die Strategie nutzt die Trend-Eigenschaften der Brinline, indem sie die Trendfangkraft erhöht, wenn der Preis die Auf- und Abwärtsbahn berührt, während die Pyramide die Position erhöht. Die Gesamtkonzeption ist schlicht und effektiv.
/*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)