Bollinger-Bänder Fibonacci-Retracement-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-09-27 16:52:05
Tags:

Übersicht

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.

Strategie Logik

  1. 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

  2. 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

  3. Ü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.

  4. 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

Analyse der Vorteile

  • 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

Risikoanalyse

  • 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.

Optimierungsrichtlinien

  • 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

Schlussfolgerung

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)


Mehr