Die Ressourcen sind geladen. Beförderung...

Strategie zur Kombination von Bollinger-Bändern und gleitenden Durchschnitten

Schriftsteller:ChaoZhang, Datum: 2024-02-02 17:47:12
Tags:

img

Übersicht

Diese Strategie kombiniert Bollinger-Bänder und gleitende Durchschnitte, wobei Bollinger-Bänder Oberband und Unterband verwendet werden, um Preisdurchbrüche zu bestimmen, und das schnelle gleitende Durchschnittsgoldene Kreuz und das Todeskreuz mit dem langsamen gleitenden Durchschnitt verwendet werden, um Trends zu bestimmen. Es geht lang, wenn der Preis oberhalb des Bollinger-Oberbandes bricht und der schnelle gleitende Durchschnitt oberhalb des langsamen gleitenden Durchschnitts kreucht. Es geht kurz, wenn der Preis unterhalb des Bollinger-Unterbandes bricht und der schnelle gleitende Durchschnitt unterhalb des langsamen gleitenden Durchschnitts kreucht. Die Verwendung einer solchen Doppelbestätigung kann falsche Breakouts effektiv filtern.

Strategieprinzip

Diese Strategie verwendet hauptsächlich zwei technische Indikatoren, Bollinger-Bänder zur Bestimmung von Preisniveaus und gleitende Durchschnitte zur Bestimmung von Trends.

Das Bollinger-Mitteband ist der einfache gleitende Durchschnitt des Preises, das obere Band ist das mittlere Band + 2 Standardabweichung, das untere Band ist das mittlere Band - 2 Standardabweichung. Wenn der Preis sich dem oberen Band nähert, zeigt er eine Überkaufung an. Wenn der Preis sich dem unteren Band nähert, zeigt er eine Überverkaufung an.

Der schnelle gleitende Durchschnitt ist ein 50-Perioden-einfacher gleitender Durchschnitt des Preises und der langsame gleitende Durchschnitt ist ein 200-Perioden-einfacher gleitender Durchschnitt. Wenn ein schneller MA über einen langsamen MA geht, signalisiert er einen Aufwärtstrend oder ein goldenes Kreuz. Wenn ein schneller MA unter einen langsamen MA geht, signalisiert er einen Abwärtstrend oder ein Todeskreuz.

Die Eintrittssignale erfordern die gleichzeitige Erfüllung beider Bedingungen: Preisbruch über Bollinger-Oberband zeigt einen Durchbruch eines Widerstandsniveaus UND schnelles MA-Kreuz über langsames MA zeigt einen Aufwärtstrend; Preisbruch unter Bollinger-Oberband zeigt einen Durchbruch eines Unterstützungsniveaus UND schnelles MA-Kreuz unter langsames MA zeigt einen Abwärtstrend. Diese doppelte Bestätigung kann den Einfluss falscher Breakouts effektiv filtern.

Vorteile

  1. Die Verwendung der Doppelbestätigung kann falsche Ausbrüche effektiv filtern und Einträge genauer machen.

  2. Bollinger Bands bestimmen visuell Unterstützungs- und Widerstandsniveaus, gleitende Durchschnitte bestimmen zuverlässig Trends, Kombinationen ergänzen sich gegenseitig.

  3. Hohe Optimierungsflexibilität bei Parametern wie Bollinger-Periode, Standarddeviationsmultiplikator, MA-Perioden usw. Passt zu mehr Marktumgebungen.

  4. Einfach umzusetzen, leicht zu verstehen, weniger Code, kann direkt im Live-Handel verwendet werden.

Risiken

  1. Sowohl Bollinger-Bänder als auch MAs können in bestimmten Fällen fehlschlagen, Doppelbestätigung kann auch zusammen fehlschlagen, was zu falschen Einträgen führt.

  2. MAs haben eine verzögerte Ausgabe, können zu ungenauen Eintrittszeiten oder fehlenden Gelegenheiten führen.

  3. Unzureichende Parameter-Einstellungen wie zu kurze BB-Perioden, unvereinbare MA-Perioden usw. können die Strategieleistung beeinträchtigen.

  4. Breakout-Strategien sind anfällig für falsche Breakout-Effekte, selbst bei doppelter Bestätigung.

Methoden wie dynamische Anpassung der Parameter, strenger Stop-Loss, in Kombination mit anderen Indikatoren können dazu beitragen, Risiken zu reduzieren.

Optimierungsrichtlinien

  1. Einführung anderer Indikatoren für die Zustandskontrolle, z. B. Volumenverstärkung bei BB-Ausbrüchen, MACD für die Trendbestimmung, Bildung mehrerer Bestätigungen.

  2. Einbeziehen von Kerzenmustern zur Unterstützung der Eintrittszeit, z.B. Hammer, der auf der oberen Berührung von BB gebildet wurde.

  3. Annahme dynamischer und nicht statischer MA zur weiteren Verbesserung der Trendbestimmung.

  4. Setzen Sie die Parameter-Auto-Optimierung, um durch historische Backtests optimale Parameter-Sätze zu finden.

  5. Anpassen der Positionsgröße und Stop-Loss-Niveaus, festlegen Sie einen strikten Stop-Loss, um den Verlust zu kontrollieren.

Schlussfolgerung

Diese Strategie kombiniert Bollinger Bands und gleitende Durchschnitte basierend auf technischen Indikatoren, tritt nur dann in Positionen ein, wenn sowohl der Preisbruch des oberen oder unteren Bands als auch das goldene/Todeskreuz der MAs erreicht sind. Dies nutzt Bollinger Bands intuitive Unterstützung/Widerstandsidentifikation und gleitende Durchschnitte zuverlässige Trendbestimmung, um einander zu ergänzen und falsche Breakouts effektiv zu filtern. Im Allgemeinen ist dies eine praktische Strategie, einfach umzusetzen und lohnt sich, im Live-Handel anzuwenden und zu optimieren.


/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 2m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Bollinger Bands and Moving Averages Strategy", overlay=true)

// Bollinger Bands
length = input(20, minval=1, title="BB Length")
mult = input(2.0, minval=0.1, maxval=5, title="BB Standard Deviation")
src = close
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev

// Moving Averages
ma1_length = input(50, minval=1, title="MA1 Length")
ma2_length = input(200, minval=1, title="MA2 Length")
ma1 = sma(src, ma1_length)
ma2 = sma(src, ma2_length)

// Strategy Conditions
longCondition = crossover(src, upper) and crossover(ma1, ma2)
shortCondition = crossunder(src, lower) and crossunder(ma1, ma2)

// Strategy Execution
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Long", when=shortCondition)
strategy.close("Short", when=longCondition)

// Plotting
plot(basis, color=color.blue, title="Basis")
plot(upper, color=color.red, title="Upper")
plot(lower, color=color.green, title="Lower")
plot(ma1, color=color.orange, title="MA1")
plot(ma2, color=color.purple, title="MA2")


Mehr