Diese Strategie kombiniert die Bollinger Bands und Fibonacci Retracement Indikatoren für einen Multi-Indikator-Ansatz. Sie gehört zum typischen kombinierten Indikator-Strategietypen. Die Bollinger Bands bestimmen die Trendrichtung und die Fibonacci-Level identifizieren wichtige Unterstützungs- und Widerstandszonen für die Erzeugung von Handelssignalen.
Die Strategie basiert auf zwei Hauptindikatoren:
Bollinger-Bänder
Berechnet die oberen, mittleren und unteren Bands. Der Preisbruch über dem unteren Band ist ein langes Signal und der Bruch unter dem oberen Band ist ein kurzes Signal.
Fibonacci-Retracements
Berechnet die 0%- und 100%-Retracement-Niveaus basierend auf historischen Höchst- und Tiefstniveaus, die als wichtige Unterstützungs- und Widerstandsniveaus dienen.
Die spezifische Handelslogik lautet:
Langes Signal: Der Preis bricht über den oberen Band und liegt über der 0% Fibonacci-Unterstützung.
Kurzsignal: Der Preis bricht unter den unteren Band und liegt unter dem 100% Fibonacci-Widerstand.
Die Ausgänge liegen um das mittlere Band für Take Profit oder Stop Loss.
Die Risiken können verringert werden, indem
Die Strategie kann verbessert werden, indem
Optimierung der Bollinger-Band-Parameter
Finden eines optimalen Verhältnisses zwischen oberen und unteren Bands
Optimierung von Fibonacci-Retracement-Perioden
Verschiedene Lookback-Perioden für Retracings testen
Erleichterung der Einreisebedingungen
Beobachtung von Kerzenmustern bei Bandpausen
Verbesserung der Ausgänge
Überlegungen über die Mechanismen zur Verhinderung der Verzögerung
Produktspezifische Parameterprüfung
Parameter müssen für verschiedene Produkte abgestimmt werden
Diese Strategie kombiniert die Stärken von Bollinger Bands und Fibonacci Retracements für qualitativ hochwertigere Signale. Aber Herausforderungen wie schwierige Parameteroptimierung bestehen. Verbesserungen können durch Parameter-Tuning, Entspannung der Einstiegskriterien, Verbesserung der Ausgänge usw. vorgenommen werden, um die Strategie zu verfeinern und gleichzeitig ihren Vorteil zu erhalten.
/*backtest start: 2023-09-13 00:00:00 end: 2023-09-20 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands & Fibonacci Strategy", shorttitle="BB & Fib Strategy", overlay=true) // Initialize position variables var bool long_position = false var bool short_position = false // Bollinger Bands settings length = input.int(20, title="Bollinger Bands Length") src = input(close, title="Source") mult = input.float(2.0, title="Standard Deviation Multiplier") basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper_band = basis + dev lower_band = basis - dev // Fibonacci retracement levels fib_0 = input.float(0.0, title="Fibonacci 0% Level", minval=-100, maxval=100) / 100 fib_100 = input.float(1.0, title="Fibonacci 100% Level", minval=-100, maxval=100) / 100 // Plotting Bollinger Bands plot(upper_band, color=color.red, title="Upper Bollinger Band") plot(lower_band, color=color.green, title="Lower Bollinger Band") // Calculate Fibonacci levels fib_range = ta.highest(high, 50) - ta.lowest(low, 50) fib_high = ta.highest(high, 50) - fib_range * fib_0 fib_low = ta.lowest(low, 50) + fib_range * fib_100 // Plot Fibonacci retracement levels plot(fib_high, color=color.blue, title="Fibonacci High") plot(fib_low, color=color.orange, title="Fibonacci Low") // Entry conditions long_condition = ta.crossover(close, upper_band) and low > fib_low short_condition = ta.crossunder(close, lower_band) and high < fib_high // Plot arrows on the chart plotshape(series=long_condition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=short_condition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // Entry and exit logic if long_condition and not short_position strategy.entry("Long", strategy.long) long_position := true short_position := false if short_condition and not long_position strategy.entry("Short", strategy.short) short_position := true long_position := false // Exit conditions (you can customize these) long_exit_condition = ta.crossunder(close, basis) short_exit_condition = ta.crossover(close, basis) if long_exit_condition strategy.close("Long") long_position := false if short_exit_condition strategy.close("Short") short_position := false