Die Bollinger-Breakout-Aktienstrategie ist eine quantitative Handelsstrategie, die die Kursschwankungen der Aktien mit Bollinger-Bändern verfolgt, um zu erkennen, wann die Preise aus ihrem normalen Volatilitätsbereich ausbrechen und Handelssignale erzeugen.
Die Strategie berechnet das mittlere Band, das obere Band und das untere Band anhand von 20-tägigen Schlusskurs. Das mittlere Band ist ein 20-tägiger einfacher gleitender Durchschnitt, während das obere und untere Band in einem Abstand von 2 Standardabweichungen vom mittleren Band platziert werden.
Wenn die Kursschließung unterhalb des unteren Bandes eintritt, signalisiert dies, dass die Preise aus dem normalen Volatilitätsbereich ausgebrochen sind und einen neuen Aufwärtstrend beginnen. Die Strategie würde an dieser Stelle basierend auf dem Code lang gehen. Der Stop-Loss wird auf das niedrigste Tief der letzten 10 Bars gesetzt, während der Gewinnsatz auf das höchste Hoch der letzten 10 Bars gesetzt wird.
Wenn die Preise über den oberen Band brechen, signalisiert dies den Beginn eines neuen Abwärtstrends. Die Strategie würde hier kurz gehen. Stop-Loss ist die 10-bar höchste Ebene und Take-Profit ist die 10-bar niedrigste Ebene.
Die Strategie nutzt effektiv Bollinger-Bänder, um Trendänderungen und Volatilitätsbereich zu identifizieren und frühzeitig einzutreten, wenn sich die Preise wahrscheinlich umkehren werden.
Die wichtigsten Vorteile dieser Strategie sind:
Wirksam identifiziert Trendwechselpunkte mithilfe von Bollinger-Bändern und erfasst kurzfristige Trends effizient.
Die Risikopositionen sind in der Regel in der Kategorie "Verluste" zu berücksichtigen.
Der Gewinnsatz, der auf dem kürzlich höchsten Niveau gesetzt wurde, ermöglicht es, den Gewinn aus einseitigen Trendbewegungen zu maximieren.
Einfache und klare Logik, leicht zu verstehen und zu ändern, geeignet für Anfänger im Quant-Trading.
Es gibt auch einige Risiken, die zu berücksichtigen sind:
Bollinger Bands sind sehr empfindlich gegenüber Volatilitätsänderungen, unangemessene Parameter können zu falschen Signalen führen.
Hohe Kursschwankungen, zu früh eingeleitetes Stop Loss, nicht in der Lage, den Trend zu übernehmen.
Sie können auch andere Indikatoren hinzufügen, um frühere Einträge zu identifizieren.
Die Unberechenbarkeit des Marktes macht es schwierig, Gewinn zu erzielen oder einen Stop-Loss zu erzielen, und man muss manuell intervenieren, um die Parameter zu optimieren.
Einige Möglichkeiten, die Strategie weiter zu verbessern:
Hinzufügen anderer Indikatoren zur Bestätigung von Signalen, z. B. Volumenanstieg.
Dynamische Anpassung der Bollinger-Parameter an die sich ändernde Volatilität.
Verstärkung des Stop-Loss-/Take-Profits, z. B. Nachlauf-Stop-Loss, abgestufte Profitnahme.
Testparameter für verschiedene Bestände, um die beste Übereinstimmung zu finden.
Einführung von maschinellem Lernen zur automatischen Optimierung von Parametern.
Die Bollinger Breakout-Strategie hat eine klare Logik zur Identifizierung von Umkehrungen. Das begrenzte Drawdown-Risiko ermöglicht die Erfassung von kurzfristigen Trends. Aber auch Gewinnzielbeschränkungen und Signalverzögerungsprobleme. Kann durch Parameter-Tuning, besseren Stop-Loss/Take-Profit, Hinzufügen von Filtern usw. verbessert werden.
/*backtest start: 2023-11-14 00:00:00 end: 2023-12-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Initial settings strategy("Bulle de bollinger", overlay = true) // Parameter Settings mdl = sma(close, 20) dev = stdev(close, 20) upr = mdl + 2*dev lwr = mdl - 2*dev // Plot plot(mdl, color = color.green) // Plot moving average p1 = plot(upr, color = color.red) // Plot Upper_band p2 = plot(lwr, color = color.green) // Plot lower band fill(p1, p2, color = color.blue) // Fill transparant color between the 2 plots // Strategy entry & close if open[1] < lwr[1] and close[1] < lwr[1] // Previous price lower than lower band and current close is higher than lower band stop_level = lowest(10) profit_level = highest(10) strategy.entry(id = 'bb_buy', long = true) strategy.exit("TP/SL", "bb_buy", stop=stop_level, limit=profit_level) if open[1] > upr[1] and close[1] > upr // Previous price is higher than higher band & current close is lower the higher band stop_level = highest(10) profit_level = lowest(10) //strategy.entry(id = 'bb_sell', long = false) //strategy.exit("TP/SL", "bb_sell", stop=stop_level, limit=profit_level)