Trendbreakout-Strategie auf Basis von Bollinger-Bändern

Schriftsteller:ChaoZhang, Datum: 2023-11-16 16:24:12
Tags:

img

Übersicht

Dies ist eine Trend-Folge-Strategie, die auf Bollinger-Bändern basiert. Sie verwendet Bollinger-Bänder, um Preiskanäle zu berechnen und kombiniert Kerzenmuster, um die Trendrichtung zu bestimmen.

Strategie Logik

Diese Strategie verwendet das obere Band, das mittlere Band und das untere Band der Bollinger-Bänder, um Preisbereiche zu bestimmen. Das obere und untere Band umschließt die Preisbewegungen, während das mittlere Band der gleitende Durchschnitt ist. Die Bandbreite ändert sich basierend auf der Preisvolatilität. Wenn der Preis über das obere Band bricht, signalisiert er einen Aufbruch und einen langen Eintrag. Wenn der Preis unter das untere Band bricht, signalisiert er einen Abbruch und einen kurzen Eintrag.

Nach der Bestimmung der Trendrichtung mit Bollinger Bands Breakout bestätigt die Strategie sie auch mit Kerzenmustern. Wenn der Kerzenkörper mit dem Trend übereinstimmt, wie zum Beispiel eine bullische Kerze in einem Aufwärtstrend, wird eine Position geöffnet. Wenn der Kerzenkörper ein umgekehrtes Muster zeigt, wie eine bärische Kerze in einem Aufwärtstrend, wird das Signal ignoriert. Dieses Design zielt darauf ab, falsche Breakout-Risiken zu vermeiden.

Die detaillierten Regeln für den Handel mit Signalen sind:

  1. Berechnung des oberen, mittleren und unteren Bandes der Bollinger-Bänder zur Bestimmung der Preisspanne

  2. Wenn der Preis über den oberen Bereich bricht, signalisiert dies einen Aufwärtstrend

  3. Wenn die Kerze bullisch ist, bestätigen Sie den Trend und gehen Sie lang

  4. Wenn der Preis unter den unteren Bereich bricht, signalisiert dies einen Abwärtstrend/Kurztrend

  5. Wenn der Kerzenstern bärisch ist, bestätigen Sie den Trend und gehen Sie kurz

  6. Stop-Loss und Take-Profit auf Basis von Prozentsätzen festlegen

Durch den Eintritt auf Bollinger Bands Breakouts und die Bestätigung mit Kerzen kann diese Strategie effektiv die Trendrichtung identifizieren und gute Einträge während der frühen Trendphasen erzielen.

Analyse der Vorteile

Dies ist ein typischer Trend nach einer Strategie mit folgenden Stärken:

  1. Bollinger-Bänder sind anpassungsfähig und können die Bereiche für Aktien mit unterschiedlicher Volatilität anpassen

  2. Die Bestätigung der Kerze filtert falsche Ausbrüche aus.

  3. Mittelfristige Beteiligung senkt die Handelshäufigkeit und die Kosten/Slip

  4. Die Erfassung mittelfristiger Trends vermeidet kurzfristige Geräusche und bietet ein gutes Risiko-Rendite-Verhältnis

  5. Die Ergebnisse der Backtests sind stark und der reale Handel ist aufgrund der Systemisierung stabil

  6. Strategie-Logik ist klar und leicht verständlich, mit Raum für Verbesserungen

Durch die Ermittlung des Trends mit Bollinger Bands und die Einführung einer Kerzenbestätigung erfasst diese Strategie effektiv eine mittelfristige Dynamik, die vom Volumen getrieben wird.

Risikoanalyse

Für diese Strategie sind auch einige Risiken zu beachten:

  1. Das Risiko eines fehlgeschlagenen Ausbruchs.

  2. Umkehrrisiko: Auch mittelfristige Trends können umgekehrt werden, es sollten angemessene Stopps festgelegt werden

  3. Bollinger Bands Parameter und Stops müssen für verschiedene Aktien abgestimmt werden

  4. Übermäßige Optimierung der Parameter führt zu Kurvenanpassung

  5. Das Risiko der Ausführung: Unterschiede zwischen Backtest und realen Handelsgeschäften

Um diesen Risiken entgegenzuwirken, können folgende Verbesserungen vorgenommen werden:

  1. Optimierung der Bollinger-Band-Parameter und -breite für eine bessere Passform

  2. Fügen Sie weitere Faktoren wie Volumen hinzu, um den Trend zu bestätigen

  3. Verwenden Sie dynamische Stopps, um große Verluste bei Umkehrungen zu vermeiden

  4. Anwendung der Vorwärtslaufanalyse, um Überanpassung zu vermeiden

  5. Verbesserung der Auftragsausführung für eine höhere Effizienz des realen Handels

Optimierungsrichtlinien

Diese Strategie kann in folgenden Bereichen weiter ausgebaut werden:

  1. Hinzufügen mehr Indikatoren wie KDJ, MACD, um Signale zu bestätigen und die Genauigkeit zu verbessern

  2. Maschinelles Lernen zur dynamischen Optimierung von Parametern anstelle von festen Werten

  3. Festlegen Sie Preisschwellen um Breakout-Punkte, um genauere Signale zu generieren

  4. Optimieren von Exits mit Trailing Stops oder Teilgewinnentnahme

  5. Einführung einer Positionsgröße für ein besseres Risikomanagement

  6. Verwenden Sie erweiterte Bestelltypen zur Verbesserung der Ausführungsergebnisse

  7. Hinzufügen von Marktregimefiltern, um die Strategie in bestimmten Umgebungen abzuschalten

Durch die Einführung weiterer Techniken und Optimierungen können die Stabilität und Rentabilität dieser Strategie weiter verbessert werden, um noch bessere Backtest- und reale Handelsergebnisse zu erzielen.

Schlussfolgerung

Dies ist eine typische Trend-Folge-Strategie, die Bollinger-Bänder als dynamische Bereiche verwendet, um die Trendrichtung zu bestimmen.

Die Vorteile dieser Strategie umfassen die Verwendung von Bollinger Bands für den Trend, Kerzen für die Eintrittsbestätigung, geringe Handelsfrequenz und einfache Systemisierung.

Insgesamt hat es als typische Trend-Folge-Strategie eine klare Logik und ist leicht umsetzbar mit starker Lebensfähigkeit.


/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Scalper Strategy v1.2", shorttitle = "Scalper str 1.2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needct = input(false, defval = false, title = "Counter-trend entry")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd1 = center + distsma / 2
ld1 = center - distsma / 2

//Trend
trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Body
body = abs(close - open)
smabody = sma(body, 100)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and close < open)) ? 1 : 0
dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and close > open)) ? 1 : 0

if up7 == 1 or up8 == 1 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)

Mehr