Bollinger-Breakout-Stop-Loss-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-10-27 16:50:24
Tags:

img

Übersicht

Diese Strategie erzeugt Handelssignale auf Basis des Bollinger Bands-Indikators und verwaltet Positionen mit Stop-Loss/Take-Profit. Sie überwacht den Ausbruch der oberen und unteren Banden der Bollinger Bands, geht lang, wenn der Preis über das obere Band bricht, geht kurz, wenn der Preis das untere Band bricht, und geht aus, wenn der Preis die Bands umgekehrt mit Stop-Loss-Orders bricht.

Strategie Logik

Die Strategie verwendet die mittleren, oberen und unteren Bands des Bollinger Bands Indikators. Das mittlere Band ist der gleitende Durchschnitt, das obere Band ist das mittlere Band plus 2 Standardabweichungen und das untere Band ist das mittlere Band minus 2 Standardabweichungen.

Zuerst berechnet es die Bollinger Bands mittlere, obere und untere Bands. Dann überprüft es, ob der Preis über das obere Band oder unter das untere Band bricht. Wenn der Preis über das obere Band bricht, geht er lang. Wenn der Preis unter das untere Band bricht, geht er kurz. Auch wenn der Preis die Bands umgekehrt bricht, tritt er mit Stop-Loss-Orders aus.

Insbesondere ist die Strategielogik:

  1. Berechnung der Bollinger-Bänder mittlere, obere und untere Bands
  2. Wenn der Preis über den oberen Bereich bricht, gehen Sie lang
  3. Wenn der Preis unter den unteren Bereich fällt, gehen Sie kurz.
  4. Wenn bereits lang, schließen Sie lang, wenn der Preis unter den unteren Bereich fällt
  5. Falls bereits kurz, kurz schließen, wenn der Kurs über die obere Bandbreite bricht

Dies ermöglicht es, Trends zu erfassen, wenn der Preis große Bewegungen macht, während Verluste mit Stop-Loss begrenzt werden.

Vorteile

  • Die Verwendung von Bollinger Bands für Eingangssignale erfasst Trends nach Ausbrüchen
  • Klares Signal zwischen lang und kurz, einfache Regeln
  • Höchstverlustgrenzen für die Stop-Loss-Strategie pro Handel
  • Parameter-Tunable zur Optimierung der Strategie

Risiken

  • Häufige kleine Stop-Loss-Geschäfte können den Gesamtergebnis beeinträchtigen
  • Eine schlechte Einstellung der Parameter kann zu vielen Signalen oder verpassten Trades führen
  • Betrachtet nur den Preis, keine anderen Indikatoren zur Bestätigung
  • Die Risikopositionen werden in der Regel in den folgenden Kategorien aufgeführt:

Kann durch Kombination von Indikatoren, Anpassung von Stop-Loss-Einheiten usw. optimiert werden.

Möglichkeiten zur Verbesserung

  • Kombination anderer Indikatoren wie Volumen, gleitende Durchschnitte, um Signale zu bestätigen
  • Optimierung der Bollinger-Parameter für verschiedene Märkte
  • Einstellen Sie den Stop-Loss-Abstand in der Nähe des Ausbruchs, um eine Überempfindlichkeit zu vermeiden
  • Handel nur nach Trends entwickeln, wie Schildkröten-Handel Regeln
  • Automatische Optimierung von Parametern über Algorithmen für maschinelles Lernen

Schlussfolgerung

Dies ist ein relativ einfacher Trend, der der Strategie nach Bollinger Bands folgt. Er kann schnell Positionen einnehmen, wenn der Preis ausbricht und Stop-Loss verwendet, um das Risiko zu kontrollieren. Aber wenn man sich ausschließlich auf den Preis verlässt, kann dies zu Fehleinschätzungen führen, während ein sensibler Stop-Loss die Handelsfrequenz erhöhen kann. Wir können ihn durch Parameter-Tuning, Kombination von Indikatoren, Anpassung von Stops usw. weiter verbessern. Insgesamt bietet er einen einfachen und zuverlässigen Quant-Trading-Rahmen.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ROBO_Trading

//@version=5
strategy(title = "Bollinger Stop Strategy", shorttitle = "BBStop", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 10000, default_qty_value = 100, commission_value = 0.1)

//Settings
long = input(true)
short = input(true)
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
source = input(close)
showbb = input(true, title = "Show Bollinger Bands")
showof = input(true, title = "Show Offset")
startTime = input(defval = timestamp("01 Jan 2000 00:00 +0000"), title = "Start Time", inline = "time1")
finalTime = input(defval = timestamp("31 Dec 2099 23:59 +0000"), title = "Final Time", inline = "time1")

//Bollinger Bands
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev

//Show indicator
offset = showof ? 1 : 0
colorBasis = showbb ? color.gray : na
colorUpper = showbb ? color.blue : na
colorLower = showbb ? color.blue : na
colorBands = showbb ? color.blue : na
p0 = plot(basis, "Basis", color = colorBasis, offset = offset)
p1 = plot(upper, "Upper", color = colorUpper, offset = offset)
p2 = plot(lower, "Lower", color = colorLower, offset = offset)
fill(p1, p2, title = "Background", color = colorBands, transp = 90)

//Trading
truetime = true
if basis > 0 and truetime
    if long
        strategy.entry("Long", strategy.long, stop = upper, when = truetime)
    if short
        strategy.entry("Short", strategy.short, stop = lower, when = truetime)
    if long == false
        strategy.exit("Exit", "Short", stop = upper)
    if short == false
        strategy.exit("Exit", "Long", stop = lower)
if time > finalTime
    strategy.close_all()

Mehr