Diese Strategie identifiziert Preiskanäle mithilfe von Bollinger Bands und bestimmt Unterstützungs-/Widerstandsniveaus basierend auf Fibonacci-Retracement-Verhältnissen für den algorithmischen Handel.
Berechnung der mittleren, oberen und unteren Bands von Bollinger Bands
Mittelband ist SMA, obere/untere Bands sind SMA +/- Vielfache von ATR
Bollinger-Bänder erweitern und schrumpfen aufgrund der Marktvolatilität
Berechnung von Fibonacci-Retracement-Levels auf der Grundlage von Verhältnissen
Retracing-Verhältnisse sind Vielfache von ATR * Fibonacci-Verhältnissen
Mehrfache Fib-Werte werden auf der Grundlage des mittleren Bandes berechnet
Überwachung des Ausbruchs von Bollinger Bands
Überlegen Sie, ob Sie Long gehen, wenn der Preis über den oberen Bereich bricht
Überlegen Sie, ob Sie kurz gehen, wenn der Preis unter den unteren Bereich fällt.
Eintritt in Geschäfte und Einstellung von SL/TP um Fib-Retracement-Zonen
Traden Sie Trades ein, wenn der Preis in die Fib-Zone zurückzieht
Setzen Sie Stop-Loss und nehmen Sie Profit auf der anderen Seite der Zone
Die Bollinger-Bänder identifizieren eindeutig den Marktvolatilitätsbereich und -trends
Fibonacci-Verhältnisse erfassen die wichtigsten Unterstützungs- und Widerstandsniveaus
Die Kombination von Indikatoren ermöglicht den algorithmischen Handel
Pullback-Einträge erhöhen die Erfolgswahrscheinlichkeit und vermeiden Verfolgung
Einstellbare Parameter an unterschiedliche Zeiträume und Produkte angepasst
Bollinger-Band-Breakouts können falsche Signale sein
Es ist schwierig, genau vorherzusagen, wann der Preis auf das Niveau von Fib zurückgehen wird.
Eine unsachgemäße Stop-Loss-Platzierung könnte die Verluste erhöhen
Unzureichende oder übermäßige Rücknahmewirkung auf die Strategie
Unwirksame Parameter oder anhaltende Markttrends könnten die Strategie zunichte machen
Verbesserung der Bollinger-Band-Logik unter Berücksichtigung des Volumens, der dynamischen Zonenanpassung usw.
Optimierung der Bollinger-Band-Parameter für bessere Trend- und S/R-Bewertung
Hinzufügen von Lautstärkenindikatoren zur Validierung von Ausbruchssignalen
Verwenden Sie maschinelles Lernen für Pullback-Wahrscheinlichkeitsvorhersage
Mehr technische Indikatoren für die Signalvalidierung einbeziehen
Auswahl angemessener Parameter auf der Grundlage von Produktmerkmalen und Handelssitzungen
Zeitgemäße Anpassung der Rückzugszone an die sich ändernden Volatilitäten
Diese Strategie kombiniert die Stärken von Bollinger Bands und Fibonacci-Retracements, um Trends zu identifizieren und bei hoher Wahrscheinlichkeit Pullback-Levels zu betreten. Die Risiken können durch Parameteroptimierung, zusätzliche Signalvalidierung, dynamische Zonenanpassung usw. reduziert und die Ergebnisse verbessert werden. Es gibt Raum für Erweiterung durch Einbeziehung von Volumen, maschinellen Lernmodellen usw. Die Strategie kann durch kontinuierliche Optimierung weiter verfeinert werden.
/*backtest start: 2023-08-27 00:00:00 end: 2023-09-26 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle="BBands Fibo", title="Bollinger Bands Fibonacci Ratios", overlay=true) length = input(20, minval=1, type=input.integer, title="Length") src = input(close, title="Source") offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500) fibo1 = input(defval=1.618, title="Fibonacci Ratio 1") fibo2 = input(defval=2.618, title="Fibonacci Ratio 2") fibo3 = input(defval=4.236, title="Fibonacci Ratio 3") fiboBuyReverse = input(false, title = "Use Reverse Buy?") fiboBuy = input(options = ["Fibo 1", "Fibo 2", "Fibo 3"],defval = "Fibo 1", title="Fibonacci Buy") fiboSellReverse = input(false, title = "Use Reverse Sell?") fiboSell = input(options = ["Fibo 1", "Fibo 2", "Fibo 3"],defval = "Fibo 1", title="Fibonacci Sell") sma = sma(src, length) atr = atr(length) ratio1 = atr * fibo1 ratio2 = atr * fibo2 ratio3 = atr * fibo3 upper3 = sma + ratio3 upper2 = sma + ratio2 upper1 = sma + ratio1 lower1 = sma - ratio1 lower2 = sma - ratio2 lower3 = sma - ratio3 plot(sma, style=0, title="Basis", color=color.orange, linewidth=2, offset = offset) upp3 = plot(upper3, transp=90, title="Upper 3", color=color.teal, offset = offset) upp2 = plot(upper2, transp=60, title="Upper 2", color=color.teal, offset = offset) upp1 = plot(upper1, transp=30, title="Upper 1", color=color.teal, offset = offset) low1 = plot(lower1, transp=30, title="Lower 1", color=color.teal, offset = offset) low2 = plot(lower2, transp=60, title="Lower 2", color=color.teal, offset = offset) low3 = plot(lower3, transp=90, title="Lower 3", color=color.teal, offset = offset) fill(upp3, low3, title = "Background", color=color.new(color.teal, 95)) targetBuy = fiboBuy == "Fibo 1" ? upper1 : fiboBuy == "Fibo 2" ? upper2 : upper3 targetBuy := fiboBuyReverse == false ? targetBuy : fiboBuy == "Fibo 1" ? lower1 : fiboBuy == "Fibo 2" ? lower2 : lower3 buy = low < targetBuy and high > targetBuy targetSell = fiboSell == "Fibo 1" ? lower1 : fiboSell == "Fibo 2" ? lower2 : lower3 targetSell := fiboSellReverse == false ? targetSell : fiboSell == "Fibo 1" ? upper1 : fiboSell == "Fibo 2" ? upper2 : upper3 sell = low < targetSell and high > targetSell strategy.entry("Buy", true, when = buy) strategy.entry("Sell", false, when = sell)