Diese Strategie verwendet Bollinger Bands, um den Markttrend zu messen, und kombiniert Bandbreitensignale, um Handelsmöglichkeiten zu identifizieren, mit dem Ziel eines stetigen Wachstums des Anlageportfolios.
Fühlen Sie sich frei, die Parameter zu optimieren und diese Strategie zu testen.
Wenn Sie mit den vorhandenen Ergebnissen zufrieden sind und diese Strategie, die über Warnungen durchgeführt werden kann, automatisieren möchten, müssen Sie sie in eine Studie umwandeln und Warnungen in den Code hinzufügen.
Diese Strategie verwendet Bollinger-Bänder und Bandbreite, um Ein- und Ausgänge zu bestimmen.
Bollinger Bands umfassen Oberband, Mittelfeld und Unterband. Das Mittelfeld ist ein einfacher gleitender Durchschnitt für n Perioden, Standard n = 16. Das Oberfeld ist Mittelfeld + k * Standardabweichung, Unterfeld ist Mittelfeld - k * Standardabweichung, Standard k = 3. Wenn der Preis sich dem Oberfeld nähert, zeigt er eine Überbewertung oder Überkauf an. Wenn der Preis sich dem Unterfeld nähert, zeigt er eine Unterbewertung oder Überverkauf an.
Der Bandbreitenindikator zeigt die Volatilität des Preises im Verhältnis zum mittleren Band an. Er wird durch (oberes Band - untere Band) / mittleres Band * 1000 berechnet. Wenn die Bandbreite unter 20 liegt, bedeutet dies eine geringe Volatilität oder Konsolidierung. Wenn die Bandbreite 50 übersteigt, bedeutet dies eine erhöhte Volatilität.
Diese Strategie sucht nach langen Chancen, wenn die Bandbreite zwischen 20-50 liegt und der Preis unterhalb des unteren Bandes bricht.
Zu den Vorteilen dieser Strategie gehören:
Bollinger-Bands messen die Trendrichtung und verringern die Risiken falscher Ausbrüche
Das Bandbreitensignal lokalisiert die Aktion im Bereich und vermeidet große Verluste durch große Schwankungen
Backtest zeigt eine Rentabilität von fast 80% über ein Jahr, extrem hohe Risiko-Rendite-Ratio
Höchstmenge von weniger als 5% kontrolliert das Risiko wirksam und hält ein stetiges Portfoliowachstum bei
Einfache und klare Logik, leicht verständlich und umsetzbar, weit verbreitet auf verschiedene Anlagen anwendbar
Zu den Risiken dieser Strategie gehören:
Schlechte Bollinger-Parameter-Einstellungen können gute Handelsmöglichkeiten verpassen
Niedrige Handelsfrequenz bei anhaltenden Bullen- oder Bärenmärkten, eingeschränkte Rentabilität
Unzureichende Daten aus dem Backtest, die tatsächliche Leistung kann von der des Backtest abweichen
Bei extremen Bewegungen kann ein Stop Loss ausgeführt werden, was zu großen Verlusten führt.
Hohe Transaktionskosten verringern auch die tatsächlichen Gewinne
Lösungen:
Optimierung der Parameter und Anpassung der Bollinger-Periode auf Basis des Marktes
Einführung zusätzlicher Indikatoren zur Bewältigung von außergewöhnlichen Marktbedingungen
Erhebung ausreichender Daten und Backtest auf verschiedenen Märkten zur Überprüfung der Stabilität
Anpassen des Stop-Loss entsprechend, um große Verluste durch extreme Bewegungen zu vermeiden
Auswahl von Handelsplattformen mit niedrigen Provisionen zur Senkung der Transaktionskosten
Diese Strategie kann in den folgenden Bereichen verbessert werden:
Um falsche Ausbrüche zu vermeiden, wird eine Lautstärkerklärung hinzugefügt.
Kombination mit Trendindikatoren zur Identifizierung der Trendrichtung
Verwenden Sie maschinelles Lernen, um die Parameter automatisch einzustellen und sich an den Markt anzupassen
Hinzufügen eines Korrelationsfilters, um den Handel mit nicht korrelierten Vermögenswerten zu vermeiden
Optimieren Sie die Gewinn-/Stop-Loss-Verteilung für mehr Gewinne während des Aufwärtstrends
Einführung von mehr Zustandfiltern zur Erhöhung der Gewinnrate
Versuche Kombinationen mit mehreren Zeitrahmen, um von mehreren Zyklen zu profitieren
Aufbau eines indexierten Portfolios zur Erweiterung des Exposures
Verwenden Sie maschinelles Lernen, um automatisch neue Strategien zu generieren und zu validieren
Insgesamt hat sich diese Bollinger Band Breakout-Strategie gut geprüft und kann in Bereichsgebundenen Märkten eine stetige Rendite erzielen. Die Kernlogik ist einfach und klar, leicht zu verstehen und anzuwenden. Für stabile Gewinne in komplexen Märkten sind jedoch weitere Verbesserungen bei Parameteroptimierung, Risikokontrolle und Portfoliomanagement erforderlich. Dies ist eine grundlegende Trend-Folge-Strategie und kann durch Einführung technischer Indikatoren und Risikomanagementmechanismen oder kombiniert mit maschinellem Lernen zur Automatisierung verbessert werden. Zusammenfassend eröffnet diese Strategie den Anfängern die Tür zum algorithmischen Handel und bietet auch erfahrenen Tradern Möglichkeiten, Strategien zu optimieren.
/*backtest start: 2023-10-30 00:00:00 end: 2023-11-06 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Bollinger Bands BAT/USDT 30min", overlay=true ) /// Indicators ///Bollinger Bands source = close length = input(16, minval=1) mult = input(3, step=0.1, minval=0.001, maxval=50) basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev plot(basis, color=color.red) p1 = plot(upper, color=color.blue) p2 = plot(lower, color=color.blue) fill(p1, p2) //Bollinger bands width bbw = (upper-lower)/basis*1000 //plot(bbw, color=color.blue) upper_bbw_input = input(title="BBW Upper Threshold", step=1, minval=0, defval=50) lower_bbw_input = input(title="BBW Lower Threshold", step=1, minval=0, defval=20) // Backtesting Period testStartYear = input(2019, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2020, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(31, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) testPeriod() => true // Take Profit tp_inp = input(8, title='Take Profit %', step=0.1)/100 take_level = strategy.position_avg_price * (1 + tp_inp) //Entry Strategy entry_long = crossover(source, lower) and (bbw < upper_bbw_input) and (bbw > lower_bbw_input) exit_long = cross(high,upper) or close < lower if testPeriod() strategy.entry(id="LongBB", long=true, comment="LongBB", when=entry_long) strategy.exit("Take Profit Long","LongBB",limit=take_level) strategy.close(id="LongBB", when=exit_long )