Momentum Bollinger Bands Breakout-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-04 15:52:31
Tags:

img

Übersicht

Die Momentum Bollinger Bands Breakout Strategie ist eine quantitative Handelsstrategie, die den Bollinger Bands Indikator und den Moving Average Indikator kombiniert, um Breakout-Operationen unter bestimmten Momentumbedingungen durchzuführen.

Strategieprinzip

Die Strategie basiert hauptsächlich auf dem Bollinger Bands-Indikator und dem MA- gleitenden Durchschnittsindikator. Bollinger Bands und gleitende Durchschnitte gehören zu trendfolgenden Indikatoren.

Die Kernlogik der Strategie lautet:

  1. Bollinger-Band-Parameter initialisieren und die mittlere Schiene, die obere Schiene und die untere Schiene berechnen.

  2. Initialisieren Sie die gleitenden Durchschnittsparameter.

  3. Kaufsignal: Wenn der Preis von unten nach oben durch die unteren Bollinger Bands durchbricht und der gleitende Durchschnitt unterhalb der unteren Schiene liegt, gehen Sie lang.

  4. Verkaufssignal: Wenn der Preis die obere Schiene der Bollinger-Bänder von oben nach unten durchbricht und der gleitende Durchschnitt über der oberen Schiene liegt, gehen Sie kurz.

  5. Ausgangssignal: Wenn der Kurs wieder in den Bollinger Bands-Bereich eintritt, schließen Sie die Position.

Die Strategie kombiniert die Verwendung von Bollinger Bands und gleitenden Durchschnittsindikatoren, um Handelssignale unter bestimmten Dynamikbedingungen zu erzeugen, was eine typische Trend-Folge-Strategie ist.

Vorteile

  1. Mit Hilfe von Bollinger-Bändern, um den Kursschwankungsbereich klar zu beurteilen, und des gleitenden Durchschnitts, um die Kursentwicklung zu bestimmen, haben die Handelssignale, die durch die Kombination der doppelten Indikatorfilterung gebildet werden, eine relativ hohe Zuverlässigkeit.

  2. Zusätzlich zum Durchbruch der Bollinger Bands erfordert es auch den Durchbruch des gleitenden Durchschnitts, der eine ausreichende Dynamikunterstützung gewährleistet, um falsche Ausbrüche zu vermeiden.

  3. Die Strategieparameter werden vernünftig und flexibel festgelegt, wodurch die Parameter von Bollinger-Bändern und gleitenden Durchschnittszyklen an verschiedene Sorten und Marktbedingungen angepasst werden können.

  4. Die Strategieidee ist klar und leicht verständlich, einfach umzusetzen und zu überprüfen.

Risiken

  1. Der Volatilitätsindikator Bollinger Bands selbst hat bei sich rasch verändernden Trends eine mögliche Verzögerung, die ungültige Handelssignale erzeugen kann.

  2. Wenn es als Filterindikator verwendet wird, beeinflusst die Einstellung seiner Parameter direkt die Häufigkeit der Strategie.

  3. Wenn man sich sowohl auf den Bollinger Bands-Indikator als auch auf den gleitenden Durchschnittsindikator stützt, um effektive Signale zu bilden, wird die gesamte Strategie beeinträchtigt, wenn einer von ihnen versagt.

  4. Breakout-Strategien sind aggressiver, wenn die Preise zurückziehen, um die Bollinger Bands Grenze zu testen, sind sie anfällig dafür, gefangen zu werden.

Optimierungsrichtlinien

  1. Optimierung der Bollinger-Band-Parameter, um sich an Varianten mit unterschiedlichen Zyklen und Volatilität anzupassen, z. B. Änderung der Periode und der Standard-Abweichungs-Multiplikatorparameter der Bollinger-Band-Parameter.

  2. Optimieren der gleitenden Durchschnittszyklusparameter, um Frequenz und Filterwirkung auszugleichen.

  3. Steigern Sie die Stop-Loss-Strategie, um den maximalen Verlust pro Handel zu kontrollieren.

  4. Kombination mit anderen Indikatoren wie RSI und MACD, um zusammengesetzte Indikatoren zu bilden und Handelssignale für die Strategie zu bereichern.

  5. Kombinieren Sie maschinelle Lernmodelle, um die Kursentwicklungsrichtung und die Erfolgsrate zu beurteilen.

Schlussfolgerung

Diese Strategie integriert den Bollinger Bands-Indikator mit dem gleitenden Durchschnittsindikator, um Ein- und Ausstiegssignale zu erzeugen, nachdem ein bestimmter Preis-Breakout-Schwung gewährleistet wurde. Die Strategieidee ist klar und einfach umzusetzen und kann Trending-Märkte effektiv verfolgen.


/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//
strategy("Advanced Bollinger Bands Strategy", overlay=true) 
//BB Values 
wall1= input(defval=true,title="===BB Values===",type=input.bool)
source = input(defval=close,title="BB Source",type=input.source)
length = input(20,title="BB Length", minval=1)
mult = input(2.0,title="BB Multiplier",minval=0.001, maxval=50)
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev 
offset = input(0, " BB Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=#872323, offset = offset)
p1 = plot(upper, "Upper", color=color.teal, offset = offset)
p2 = plot(lower, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=#198787, transp=95)
//Moving Average Values 
wall2= input(defval=true,title="===MA Values===",type=input.bool)
nfl= input(defval=14,title="Moving Average Period",type=input.integer,minval=1,maxval=100) 
source1= input(defval=close,title="Moving Average Source",type=input.source)
noisefilter= sma(source1,nfl)
plot(noisefilter,style=plot.style_line,linewidth=2,color=color.yellow,title=" Moving Average Filter")
bgcolor(noisefilter<lower?color.green:noisefilter>upper?color.red:na,title="Moving Average Filter")
//Strategy Conditions
wall3= input(defval=true,title="===Strategy Conditions===",type=input.bool)
bl= input(defval=false,title="Exit at Basis Line?",type=input.bool)
nflb= input(defval=false,title="Use Moving Average Filter?",type=input.bool)

//Strategy Condition
buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper) 

if (nflb?(crossover(source,lower) and noisefilter<lower): crossover(source, lower))
	strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands",  comment="BBandLE")
    
else
	strategy.cancel(id="BBandLE")
if (nflb?(crossunder(source,lower) and noisefilter>upper): crossunder(source, lower))
	strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands",  comment="BBandSE") 
else
	strategy.cancel(id="BBandSE")  
	
strategy.close_all(when=bl?crossover(source,basis) or crossunder(source,basis):crossover(source,upper) or crossunder(source,lower))


Mehr