Bollinger Bands ATR Trendfolgestrategie

BB SMA ATR
Erstellungsdatum: 2024-05-15 10:50:14 zuletzt geändert: 2024-05-15 10:50:14
Kopie: 3 Klicks: 721
1
konzentrieren Sie sich auf
1617
Anhänger

Bollinger Bands ATR Trendfolgestrategie

Überblick

Die Strategie basiert auf den Brin- und ATR-Indikatoren und erfasst die Bandbreite der Preise über die Brin-Band, nutzt den Preisbruch der Brin-Band auf die Unterbahn als Positionssignal, nutzt den ATR als beweglichen Stopp und schließt mit dem Preisbruch des einfachen beweglichen Durchschnitts als Positionssignal. Die Strategie versucht, die Trendlage zu erfassen, Positionen in der Richtung des Trends zu erstellen und bei einer Trendumkehr die Position zu halten.

Strategieprinzip

  1. Berechnung der Brin-Band: Berechnung des Schlusskurses mit dem einfachen Moving Average (SMA) als Brin-Band-Mittelbahn und Berechnung des Auf- und Abstiegs nach der Schwankungsrate (Standarddifferenz).
  2. Berechnung des ATR: Die Berechnung des ATR erfolgt anhand des Moving Average der realen Bandbreite (TR) als Grundlage für den Moving Stop.
  3. Erzeugen Sie ein Handelssignal: Erzeugen Sie ein Mehr-Signal, wenn der Preis nach unten durch die Bollinger Bands nach unten geht, und ein Bremssignal, wenn der Preis nach oben durch die Bollinger Bands auf die Bahn geht; Erzeugen Sie ein Mehr-Signal, wenn der Preis nach oben durch den ATR-Moving Stop geht, und ein Bremssignal, wenn der Preis nach unten durch den ATR-Moving Stop geht.
  4. Plain Position: Bei einer Mehrpositionsposition ist der Kurs flach, wenn der Preis den einfachen gleitenden Durchschnitt nach oben überschreitet. Bei einer Leerposition ist der Kurs flach, wenn der Preis den einfachen gleitenden Durchschnitt nach unten überschreitet.

Strategische Vorteile

  1. Trend-Tracking: Trends werden über Brin-Bands und ATR-Mobilstopps erfasst und an unterschiedliche Marktumstände angepasst.
  2. Pünktliche Stop-Loss: Mit ATR als mobile Stop-Loss kann die Stop-Loss-Position dynamisch an die Marktschwankungen angepasst werden, um das Risiko zu kontrollieren.
  3. Einfach und benutzerfreundlich: klare Strategie-Logik, weniger Parameter, leicht zu verstehen und anzuwenden.

Strategisches Risiko

  1. Parameter-sensibel: Die Parameter-Auswahl von Brinband und ATR beeinflusst die Strategie-Performance und muss für verschiedene Märkte und Sorten optimiert werden.
  2. In einem unsicheren Marktumfeld können häufige Handelssignale zu hohen Transaktionszahlen und Kosten führen.
  3. Trendwechsel: Die Strategie kann zu einem größeren Rückzug führen, wenn der Trend sich umkehrt.

Richtung der Strategieoptimierung

  1. Parameteroptimierung: Optimierung der Parameter von Brinband und ATR, um die optimale Kombination von Parametern für verschiedene Märkte und Sorten zu finden.
  2. Filter: Hinzufügen von anderen technischen Indikatoren oder Preisverhaltensmustern als Filter, um Fehleinschätzungen zu reduzieren und die Signalqualität zu verbessern.
  3. Positionsverwaltung: Positionsverwaltung, bei der die Positionen dynamisch angepasst werden, um die Kapitalnutzungs-Effizienz und das Ertrags-Risiko-Verhältnis zu verbessern, je nach Marktvolatilität oder Konto-Risiko.

Zusammenfassen

Die Brin-Band-ATR-Trend-Tracking-Strategie erfasst die Trendentwicklung über die Brin-Band- und ATR-Indikatoren und bietet die Vorteile von Trendverfolgung, rechtzeitigen Stopps und einfacher Benutzung. Gleichzeitig bestehen jedoch Risiken wie Parameterempfindlichkeit, Marktschock und Trendumkehr. Die Strategie kann durch Parameteroptimierung, Hinzufügen von Filtern und Positionsmanagement weiter optimiert werden.

Strategiequellcode
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands and ATR Strategy", overlay=true)

// Veri Çekme
symbol = "AAPL"
timeframe = "D"
src = close

// Bollinger Bantları Hesaplama
len = 20
mult = 2
sum1 = 0.0, sum2 = 0.0
for i = 0 to len - 1
    sum1 += src[i]
basis = sum1 / len
for i = 0 to len - 1
    diff = src[i] - basis
    sum2 += diff * diff
dev = math.sqrt(sum2 / len)
upper_band = basis + dev * mult
lower_band = basis - dev * mult

// ATR Hesaplama
atr_period = input(10, title="ATR Period")
atr_value = 0.0
for i = 0 to atr_period - 1
    atr_value += math.abs(src[i] - src[i + 1])
atr_value /= atr_period
loss = input(1, title="Key Value (Sensitivity)")
atr_trailing_stop = src[1]
if src > atr_trailing_stop[1]
    atr_trailing_stop := math.max(atr_trailing_stop[1], src - loss * atr_value)
else if src < atr_trailing_stop[1]
    atr_trailing_stop := math.min(atr_trailing_stop[1], src + loss * atr_value)
else
    atr_trailing_stop := src - loss * atr_value

// Sinyal Üretme
long_condition  = src < lower_band and src[1] >= lower_band[1]
short_condition = src > upper_band and src[1] <= upper_band[1]
close_long  = src > basis
close_short = src < basis
buy_signal = src > atr_trailing_stop[1] and src[1] <= atr_trailing_stop[1]
sell_signal = src < atr_trailing_stop[1] and src[1] >= atr_trailing_stop[1]

if (long_condition)
    strategy.entry("Long", strategy.long, comment="Long Signal")
if (short_condition)
    strategy.entry("Short", strategy.short, comment="Short Signal")
if (close_long)
    strategy.close("Long", comment="Close Long")
if (close_short)
    strategy.close("Short", comment="Close Short")
if (buy_signal)
    strategy.entry("Long", strategy.long, comment="Buy Signal")
if (sell_signal)
    strategy.entry("Short", strategy.short, comment="Sell Signal")

// Çizim
plot(upper_band, color=#0000FF, linewidth=2, title="Upper Band")
plot(lower_band, color=#0000FF, linewidth=2, title="Lower Band")
plot(basis, color=#808080, linewidth=2, title="SMA")
plot(atr_trailing_stop, color=#FFA500, linewidth=2, title="ATR Trailing Stop")
plot(src, color=#FFA500, linewidth=2, title="Price")

// Sinyal İşaretleri
plotshape(long_condition, style=shape.arrowup, color=#00FF00, location=location.belowbar, size=size.small, title="Long Signal")
plotshape(short_condition, style=shape.arrowdown, color=#FF0000, location=location.abovebar, size=size.small, title="Short Signal")
plotshape(buy_signal, style=shape.diamond, color=#00FF00, location=location.belowbar, size=size.small, title="Buy Signal")
plotshape(sell_signal, style=shape.diamond, color=#FF0000, location=location.abovebar, size=size.small, title="Sell Signal")