Bollinger Band Breakout-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-07 15:08:36
Tags:

img

Übersicht

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.

Strategie Logik

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.

Analyse der Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. Bollinger-Bands messen die Trendrichtung und verringern die Risiken falscher Ausbrüche

  2. Das Bandbreitensignal lokalisiert die Aktion im Bereich und vermeidet große Verluste durch große Schwankungen

  3. Backtest zeigt eine Rentabilität von fast 80% über ein Jahr, extrem hohe Risiko-Rendite-Ratio

  4. Höchstmenge von weniger als 5% kontrolliert das Risiko wirksam und hält ein stetiges Portfoliowachstum bei

  5. Einfache und klare Logik, leicht verständlich und umsetzbar, weit verbreitet auf verschiedene Anlagen anwendbar

Risikoanalyse

Zu den Risiken dieser Strategie gehören:

  1. Schlechte Bollinger-Parameter-Einstellungen können gute Handelsmöglichkeiten verpassen

  2. Niedrige Handelsfrequenz bei anhaltenden Bullen- oder Bärenmärkten, eingeschränkte Rentabilität

  3. Unzureichende Daten aus dem Backtest, die tatsächliche Leistung kann von der des Backtest abweichen

  4. Bei extremen Bewegungen kann ein Stop Loss ausgeführt werden, was zu großen Verlusten führt.

  5. Hohe Transaktionskosten verringern auch die tatsächlichen Gewinne

Lösungen:

  1. Optimierung der Parameter und Anpassung der Bollinger-Periode auf Basis des Marktes

  2. Einführung zusätzlicher Indikatoren zur Bewältigung von außergewöhnlichen Marktbedingungen

  3. Erhebung ausreichender Daten und Backtest auf verschiedenen Märkten zur Überprüfung der Stabilität

  4. Anpassen des Stop-Loss entsprechend, um große Verluste durch extreme Bewegungen zu vermeiden

  5. Auswahl von Handelsplattformen mit niedrigen Provisionen zur Senkung der Transaktionskosten

Optimierungsrichtlinien

Diese Strategie kann in den folgenden Bereichen verbessert werden:

  1. Um falsche Ausbrüche zu vermeiden, wird eine Lautstärkerklärung hinzugefügt.

  2. Kombination mit Trendindikatoren zur Identifizierung der Trendrichtung

  3. Verwenden Sie maschinelles Lernen, um die Parameter automatisch einzustellen und sich an den Markt anzupassen

  4. Hinzufügen eines Korrelationsfilters, um den Handel mit nicht korrelierten Vermögenswerten zu vermeiden

  5. Optimieren Sie die Gewinn-/Stop-Loss-Verteilung für mehr Gewinne während des Aufwärtstrends

  6. Einführung von mehr Zustandfiltern zur Erhöhung der Gewinnrate

  7. Versuche Kombinationen mit mehreren Zeitrahmen, um von mehreren Zyklen zu profitieren

  8. Aufbau eines indexierten Portfolios zur Erweiterung des Exposures

  9. Verwenden Sie maschinelles Lernen, um automatisch neue Strategien zu generieren und zu validieren

Schlussfolgerung

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 )



Mehr