Diese Strategie erzeugt Handelssignale auf der Grundlage des Bollinger Bands %B-Indikators. Sie geht lang, wenn der %B-Wert unter einen vorgegebenen Schwellenwert fällt und einen dynamischen Positionsdurchschnittsansatz annimmt, um dem Trend zu folgen, bis ein Take Profit oder Stop Loss ausgelöst wird. Die Strategie eignet sich zur Identifizierung von Rückzugsmöglichkeiten, nachdem die Unterstützung des unteren Bollinger Bands gebrochen wurde.
Die Vorteile dieser Strategie sind:
Diese Strategie birgt auch einige Risiken:
Lösungen:
Die Strategie kann in folgenden Bereichen weiter optimiert werden:
Insgesamt ist dies eine relativ robuste langfristige Handelsstrategie. Es gibt Raum für Verbesserungen sowohl bei der Signalgenauigkeit als auch bei der Parameter-Ausrichtung. In Kombination mit zusätzlicher Signalfilterung und umsichtiger Positionsgröße kann diese Strategie anständige Ergebnisse in Trendmärkten erzielen.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands %B Long Strategy", shorttitle="BB %B Long Strategy", overlay=true) // Girdiler length = input.int(20, title="BB Length") src = input(close, title="Source") dev = input.float(2.0, title="Deviation") kar_hedefi = input(5, title="Take Profit") zarar_durumu = input(100, title="Stop Loss") start_date = input(timestamp("01 Jan 2023 00:00 +0000"), "Start Date") end_date = input(timestamp("01 Jan 2024 00:00 +0000"), "End Date") altinda_kalirsa_long = input.float(0, title="hangi degerin altinda long alsin") // Bollinger Bantları %B göstergesi basis = ta.sma(src, length) stdDev = ta.stdev(src, length) upperBand = basis + dev * stdDev lowerBand = basis - dev * stdDev percentB = (src - lowerBand) / (upperBand - lowerBand) // Alım-Satım Sinyalleri longCondition = percentB < altinda_kalirsa_long // Kar/Zarar Hesaplama takeProfit = strategy.position_avg_price * (1 + kar_hedefi / 100) stopLoss = strategy.position_avg_price * (1 - zarar_durumu / 100) // Long (Alım) İşlemi if (longCondition ) strategy.entry("Long", strategy.long) strategy.exit("Take Profit/Stop Loss", "Long", limit=takeProfit, stop=stopLoss) // Take Profit Seviyesi Çizgisi plot(takeProfit, title="Take Profit", color=color.green, linewidth=1, style=plot.style_linebr)