Ausfallstrategie für doppelte Bollinger-Bänder

Schriftsteller:ChaoZhang, Datum: 2023-12-25 13:20:31
Tags:

img

Übersicht

Die Double Bollinger Bands Breakout-Strategie ist eine Trendfolgestrategie. Sie verwendet die oberen und unteren Banden der Bollinger Bands, um Preistrends zu beurteilen und Long-Positionen zu etablieren, wenn die Preise die inneren Bollinger Bands durchbrechen und Positionen schließen, wenn die Preise unter die äußeren Bollinger Bands fallen.

Strategie Logik

Die Strategie berechnet zunächst den gleitenden Durchschnitt und die Standardabweichung über einen bestimmten Zeitraum und konstruiert anschließend die doppelten Bollinger Bands unter Verwendung des gleitenden Durchschnitts ± 1 Standardabweichung für die inneren Bands und des gleitenden Durchschnitts ± 1,5 Standardabweichungen für die äußeren Bands.

Wenn die Preise über das obere Innenband brechen, zeigt dies an, dass der Markt einen Bullenlauf beginnt, also geht er lang.

Der Gewinn beim Ausstieg für Long-Positionen erfolgt, wenn die Preise unter das untere äußere Band fallen.

Die Strategie legt auch Stop-Loss, Take-Profit und Trailing-Stop-Loss-Ausgänge fest.

Analyse der Vorteile

Die Double Bollinger Bands Breakout-Strategie hat folgende Vorteile:

  1. Die Verwendung doppelter Bollinger-Bänder zur Beurteilung von Kursbewegungen ermöglicht eine effektive Trendverfolgung;
  2. Die Einführung von Breakouts im Innenband verhindert unnötige Umschaltungen der Mittelwerte;
  3. Gewinnübernahme, Stop-Loss und Trailing-Stop-Loss sollen das Risiko wirksam kontrollieren.
  4. Optimierbare Parameter ermöglichen die Abstimmung für verschiedene Produkte.

Risikoanalyse

Die Double Bollinger Bands Breakout-Strategie birgt ebenfalls einige Risiken:

  1. Häufige Eintritte und Stop-Losses können während der Ranging-Märkte auftreten;
  2. Eine unsachgemäße Einstellung der Parameter könnte zu zu einfachen Eingängen oder schwierigen Ausgängen führen.
  3. Ausbrüche geben manchmal falsche Signale, was zu fehlgeschlagenen Ausbrüchen führt.

Um diesen Risiken entgegenzuwirken, könnten Parameter angepasst, zusätzliche Filter hinzugefügt oder Ausbrüche manuell überwacht werden, um das Risiko zu reduzieren.

Optimierungsrichtlinien

Die Strategie des Breakouts mit doppelten Bollinger-Bändern kann auf verschiedene Weise optimiert werden:

  1. Optimierung der gleitenden Durchschnitts- und Standardabweichungsparameter für verschiedene Produkte;
  2. Zusatz von Volumen, MACD oder anderen Filtern, um falsche Ausbrüche zu vermeiden;
  3. Verwendung von Methoden des maschinellen Lernens zur dynamischen Optimierung von Parametern;
  4. Kopieren Sie die Strategie über mehrere Hochfrequenzintervalle hinweg, um das Gewinnpotenzial zu erweitern.

Schlussfolgerung

Die Double Bollinger Bands Breakout-Strategie beurteilt insgesamt die Preisänderungen im Verhältnis zu Bollinger Bands zu Zeiteinträgen in einem typischen Trend-nachfolgenden Ansatz. Die Strategie setzt Gewinnziele mit den doppelten Bands und wissenschaftlichen Ausstiegsmechanismen zur Risikokontrolle. Mit optimierten Parametern und Risikokontrollen kann sie gute Ergebnisse erzielen.


/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-24 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("BB Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)
l=input(title="length",defval=100)
pbin=input(type=float,step=.1,defval=.25)
pbout=input(type=float,step=.1,defval=1.5)
ma=sma(close,l)
sin=stdev(ma,l)*pbin
sout=stdev(ma,l)*pbout
inu=sin+ma
inb=-sin+ma
outu=sout+ma
outb=-sout+ma
plot(inu,color=lime)
plot(inb,color=lime)
plot(outu,color=red)
plot(outb,color=yellow)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na


longCondition = close>inu and rising(outu,1) 
exitlong = (open[1]>outu and close<outu) or crossunder(close,ma)

shortCondition = close<inb and falling(outb,1)
exitshort = (open[1]<outb and close>outb) or crossover(close,ma)

strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)

Mehr