Bollinger Band Awesome Oszillator Breakout Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-12 17:12:35
Tags:

img

Übersicht

Diese Strategie kombiniert den Bollinger Bands Indikator und den Awesome Oscillator (AO) Indikator, um ein Breakout-Handelsmodell zu implementieren.

Strategie Logik

  1. Verwenden Sie die mittleren, oberen und unteren Bande der Bollinger-Bänder, um den Preiskanal zu bestimmen.
  2. Beurteilen Sie einen Kanalbruch, wenn die schnelle EMA das mittlere Band überschreitet.
  3. Der AO-Indikator bestimmt die Richtung des Aufwärtstrends oder des Abwärtstrends.
  4. Wenn der schnelle EMA durch das mittlere Band nach oben bricht und der AO positiv ist, wird ein Kaufsignal generiert.
  5. Wenn der schnelle EMA durch das mittlere Band nach unten bricht und der AO negativ ist, wird ein Verkaufssignal generiert.

Analyse der Vorteile

  1. Der BB-Kanal vermeidet falsche Signale.
  2. Der AO-Indikator verbessert die Genauigkeit der Signale.
  3. Erhält am Anfang eines Trends einen größeren Gewinn.

Risikoanalyse

  1. Fehlende BB-Parameter können zu breiten oder zu engen Kanälen verursachen.
  2. AO-Parameter beeinflussen die Genauigkeit.
  3. Das Ausbruchsignal könnte ein falscher Ausbruch sein.

Lösungen

  1. Optimieren Sie die Parameter von BB und AO, um die beste Kombination zu finden.
  2. Fügen Sie die Stärkekondition hinzu, um einen falschen Ausbruch zu vermeiden.
  3. Kombination mit anderen Indikatoren zur Gewährleistung der Zuverlässigkeit.

Optimierungsrichtlinien

  1. Optimieren Sie die BB-Parameter, um eine geeignete Kanalreichweite zu finden.
  2. Optimierung der langfristigen und kurzfristigen Zeitspannen der AO zur Verbesserung der Genauigkeit.
  3. Zusatz von Lautstärke oder anderen Filtern, um die Zuverlässigkeit des Ausbruchs sicherzustellen.
  4. Optimieren Sie die Stärke, um die False Breakout Rate zu senken.

Schlussfolgerung

Diese Strategie berücksichtigt umfassend den Preiskanal, die Trendrichtung und das Breakout-Modell. Sie kann durch Parameteroptimierung und Indikatorenkombinationen robuster und profitabler sein.


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

//@version=3

strategy(shorttitle="BB+AO STRAT", title="BB+AO STRAT", overlay=true)


// === BACKTEST RANGE ===
FromMonth = input(defval = 6, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

// Bollinger Bands Inputs
bb_use_ema = input(false, title="Use EMA for Bollinger Band")
bb_length = input(5, minval=1, title="Bollinger Length")
bb_source = input(close, title="Bollinger Source")
bb_mult = input(2.0, title="Base Multiplier", minval=0.5, maxval=10)
// EMA inputs
fast_ma_len = input(2, title="Fast EMA length", minval=2)
// Awesome Inputs
nLengthSlow = input(34, minval=1, title="Awesome Length Slow")
nLengthFast = input(5, minval=1, title="Awesome Length Fast")




// Breakout Indicator Inputs
bb_basis = bb_use_ema ? ema(bb_source, bb_length) : sma(bb_source, bb_length)
fast_ma  = ema(bb_source, fast_ma_len)

// Deviation

dev = stdev(bb_source, bb_length)
bb_dev_inner = bb_mult * dev

// Upper bands
inner_high = bb_basis + bb_dev_inner
// Lower Bands
inner_low = bb_basis - bb_dev_inner

// Calculate Awesome Oscillator
xSMA1_hl2 = sma(hl2, nLengthFast)
xSMA2_hl2 = sma(hl2, nLengthSlow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
// Calculate direction of AO
AO = xSMA1_SMA2>=0? xSMA1_SMA2 > xSMA1_SMA2[1] ? 1 : 2 : xSMA1_SMA2 > xSMA1_SMA2[1] ? -1 : -2



// === PLOTTING ===

// plot BB basis
plot(bb_basis, title="Basis Line", color=red, transp=10, linewidth=2)
// plot BB upper and lower bands
ubi = plot(inner_high, title="Upper Band Inner", color=blue, transp=10, linewidth=1)
lbi = plot(inner_low, title="Lower Band Inner", color=blue, transp=10, linewidth=1)
// center BB channel fill
fill(ubi, lbi, title="Center Channel Fill", color=silver, transp=90)

// plot fast ma
plot(fast_ma, title="Fast EMA", color=black, transp=10, linewidth=2)

// Calc breakouts
break_down =   crossunder(fast_ma, bb_basis) and close < bb_basis and abs(AO)==2
break_up   =  crossover(fast_ma, bb_basis) and close > bb_basis and abs(AO)==1

// Show Break Alerts
plotshape(break_down, title="Breakout Down", style=shape.arrowdown, location=location.abovebar, size=size.auto, text="Sell", color=red, transp=0)
plotshape(break_up, title="Breakout Up", style=shape.arrowup, location=location.belowbar, size=size.auto, text="Buy", color=green, transp=0)
// === ALERTS ===



strategy.entry("L", strategy.long, when=(break_up and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))


strategy.close("L", when=(break_down and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))

// === /PLOTTING ===
barcolor(AO == 2 ? red: AO == 1 ? green : blue )



// eof

Mehr