Bollinger Band Breakout Trendfolgestrategie


Erstellungsdatum: 2023-09-22 14:31:17 zuletzt geändert: 2023-09-22 14:31:17
Kopie: 1 Klicks: 678
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Strategie ist eine Trend-Tracking-Strategie, die auf einem Bollinger Band-Indikator basiert. Sie nutzt einen Bollinger Band-Abbruch, um die Richtung des Trends zu bestimmen, und eröffnet eine Position in der entsprechenden Richtung. Wenn der Preis zurückgeht, wird ein Tracking-Stop mit dynamischen Abständen verwendet, um aus der Position auszusteigen und zu profitieren.

Strategieprinzip

Die Strategie nutzt Brin-Band-Indikatoren, um die Richtung des Trends zu bestimmen. Der Brin-Band baut einen Auf- und Abwärtstrend auf, indem er die Standarddifferenz des Preises berechnet. Wenn der Preis einen Aufwärtstrend durchbricht, wird angenommen, dass der Trend nach oben beginnt; wenn der Preis einen Abwärtstrend durchbricht, wird angenommen, dass der Trend nach unten beginnt.

Die Transaktionslogik lautet wie folgt:

  1. Berechnung der mittleren, oberen und unteren Gleise des Brin-Bandes.

  2. Wenn der Preis über die Bahn geht, eröffnen Sie einen Zuschlag; wenn der Preis über die Bahn geht, eröffnen Sie einen Leerverkauf.

  3. Verwenden Sie Stop-Loss-Tracking, um das Risiko zu kontrollieren, und gehen Sie aus, wenn der Preis zurückgeht.

  4. Die neue Brin-Band-Umlaufbahn ist ein weiterer Trend.

Die Verwendung von Brin-Bändern, um die Richtung des Trends zu bestimmen, und die Kombination mit dynamischen Tracking-Stopps, können das Risiko effektiv kontrollieren.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Der Brin-Band-Indikator ist einfach und effektiv.

  2. Eine Kombination aus Break-Entry und einem dynamischen Trailing-Stop-Loss, wobei Trendfang und Risikokontrolle berücksichtigt werden.

  3. Die Code-Struktur ist klar und prägnant, leicht zu verstehen und zu ändern.

  4. Weniger Parameter zur Optimierung.

  5. Es ist für verschiedene Sorten geeignet und sehr flexibel.

  6. Die Rückmeldung war gut und es gab viel Spielraum.

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

  1. Der Brin-Band basiert nur auf statistischen Eigenschaften, die ein Risiko für die Kurvenübereinstimmung darstellen.

  2. Es ist unmöglich, zwischen der Ausweitung und den tatsächlichen Trends zu unterscheiden, was zu Fehlinterpretationen führen kann.

  3. Der Stop-Loss-Punkt ist zu dicht und kann durch normale Preisschwankungen beeinträchtigt werden.

  4. Die Auswirkungen der Transaktionskosten werden nicht berücksichtigt.

  5. Die Rückmeldungszeit ist begrenzt und kann überschritten werden.

Die entsprechende Lösung:

  1. Optimierung der Parameter oder Einführung anderer Indikatoren, die die Validierung signalisieren.

  2. Erhöhung der Erkennung von Erschütterungen und Kanälen.

  3. Der Stop-Loss wird dynamisch anhand von Indikatoren wie ATR angepasst.

  4. Hinzufügen von Gebühren, Berechnung von Gleitpunkten.

  5. Erhöhung der Rücklaufzeiten und Mehrfach-Markt-Verifizierung

Optimierungsrichtung

Die Strategie kann optimiert werden durch:

  1. Die Kombination verschiedener Indikatoren wird getestet.

  2. Das ist eine sehr wichtige Rolle, die die Entwicklung der globalen Wirtschaft spielt.

  3. Einführung von Parametern zur dynamischen Optimierung von Methoden des maschinellen Lernens.

  4. Optimierung der Stop-Loss-Strategie nach Rückmeldung.

  5. Bewertung und Einbeziehung von Transaktionskosten.

  6. Optimieren Sie die Parameterräume, um optimale Parameter zu finden.

  7. Erhöhung des Geldmanagements, um die Risiken der Positionen zu kontrollieren.

Zusammenfassen

Die Strategie beurteilt die Richtung der Trends anhand der Brin-Band-Indikatoren und steuert die Risiken mit Stop-Loss-Tracking. Die gesamte Trading-Logik ist einfach und klar. Die Strategie hat eine gute Trendfangwirkung, kann jedoch verbessert werden, um die Strategie durch die Einführung von mehr technischen Indikatoren, Optimierungsparametern und die Aufnahme von Kostenberechnungen zu verbessern.

Strategiequellcode
/*backtest
start: 2022-09-15 00:00:00
end: 2023-09-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Bollinger Band Breakout", shorttitle = "BB Strategy",initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, commission_type = strategy.commission.percent, commission_value = 0.3, max_bars_back = 1000, overlay=true)

// Inputs //

sma = input(20,  minval=1)
mult   = input(1.2, minval=0.001, maxval=50)
src = input(close)

// alert msg  //

message_long_entry  = input("long entry")
message_short_entry = input("short entry")

// Calculations //

basis = sma(close, sma)
dev   = mult * stdev(close, sma)

upper = basis + dev
lower = basis - dev

// Backtest //
fromyear = input(2019, defval = 2019, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(1, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

leverage = input(1, "Leverage")

term = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))

// PLOT //

plot(basis, color = color.gray,  linewidth = 2)
lu = plot(upper, color = color.green, linewidth = 2)
ll = plot(lower, color = color.red,   linewidth = 2)

fill(lu, ll, color = color.gray)

// Signals //

long  = crossover(close, upper)
short = crossunder(close, lower)

// Strategy entry //
strategy.initial_capital = 50000
if (long and term)
    strategy.entry("long",  strategy.long, qty=strategy.initial_capital/close*leverage, when = long and barstate.isconfirmed, alert_message = message_long_entry)
    
if (short and term)
    strategy.entry("short",  strategy.short, qty=strategy.initial_capital/close*leverage, when = short and barstate.isconfirmed, alert_message = message_short_entry)

// strategy exit //

strategy.exit("long tsl", "long", loss = close*0.075 / syminfo.mintick, trail_points = close*0.05 / syminfo.mintick, trail_offset = close*0.005 / syminfo.mintick)
strategy.exit("short tsl", "short", loss = close*0.075 / syminfo.mintick, trail_points = close*0.05 / syminfo.mintick, trail_offset = close*0.005 / syminfo.mintick)