Die Ressourcen sind geladen. Beförderung...

Dynamische Gewinnstrategie für Bollinger Bands

Schriftsteller:ChaoZhang, Datum: 2024-05-24 17: 54:47
Tags:SMA

img

Übersicht

Diese Strategie nutzt den Bollinger Bands Indikator, um kurz zu gehen, wenn der Preis das obere Band berührt, und lang zu gehen, wenn er das untere Band berührt. Es setzt ein dynamisches Take-Profit-Niveau und schließt die Position, wenn es 1% Gewinn erreicht. Die Kernidee ist, dass der Preis immer innerhalb der Bollinger Bands schwankt und eine mittlere Umkehrcharakteristik hat, so dass wir umgekehrte Positionen einnehmen können, wenn der Preis zu weit vom gleitenden Durchschnitt abweicht, um die Preisdifferenz zu erfassen.

Strategieprinzipien

  1. Berechnung des gleitenden Durchschnitts und der Standardabweichung: Verwenden Sie den einfachen gleitenden Durchschnitt (SMA), um den gleitenden Durchschnitt des Schlusskurses (Basis) zu berechnen, und berechnen Sie anschließend die Standardabweichung (dev) des Schlusskurses im Verhältnis zum gleitenden Durchschnitt.
  2. Berechnen Sie die oberen und unteren Bands: Das obere Band ist Basis + Dev * Multiplikator und das untere Band ist Basis - Dev * Multiplikator, wobei Multiplikator ein Vielfaches der Volatilitätsamplitude ist.
  3. Erstellen von Handelssignalen: Wenn der Schlusskurs über den unteren Band überschreitet und der aktuelle Schlusskurs kleiner als der offene ist, wird ein langes Signal erzeugt; wenn der Schlusskurs unter den oberen Band überschreitet und der aktuelle Schlusskurs größer als der offene ist, wird ein kurzes Signal erzeugt.
  4. Dynamische Gewinnentnahme: Berechnen Sie nach Eröffnung einer Position den Gewinnentnahmepreis anhand des Einstiegspreises und des Gewinnentnahmeprozentsatzes.
  5. Visualisierung: Zeichnen Sie die Bollinger Bands, gleitenden Durchschnitt und Handelssignale auf dem Diagramm.

Strategische Vorteile

  1. Einfache und effektive Strategie: Die Strategie ist klar und verwendet nur einen technischen Indikator, so dass sie leicht zu verstehen und umzusetzen ist.
  2. Breite Anwendbarkeit: Bollinger-Bänder sind universell anwendbar und können für verschiedene Handelsinstrumente und Märkte verwendet werden.
  3. Dynamischer Gewinn: Im Vergleich zum festen Gewinn kann dynamischer Gewinn den Gewinn durch Gewinntrades maximieren und gleichzeitig das Risiko kontrollieren.
  4. Effektives Erfassen von Trends: In Trending-Märkten, nachdem der Preis das obere oder untere Band berührt hat, bewegt er sich in der Regel einige Zeit in der ursprünglichen Richtung weiter.

Strategische Risiken

  1. Schlechte Performance in den Märkten: Wenn der Markt in großen Schwankungen ist und die Preise wiederholt durch die Bollinger-Bänder durchbrechen, kann die Strategie häufige Handelssignale erzeugen, was zu einem übermäßigen Handel und erhöhten Transaktionskosten führt.
  2. Tiefe Rückschritte in Trendmärkten: Wenn ein Trend lange andauert und die Preise sich über einen längeren Zeitraum vom gleitenden Durchschnitt abwenden, geht die Strategie dem Trend entgegen und führt möglicherweise zu tiefen Rückschritten.
  3. Schwierigkeiten bei der Parameterwahl: Die Parameter der Bollinger Bands (wie Länge und Multiplikator) haben einen erheblichen Einfluss auf die Strategieleistung, aber es gibt keine allgemein optimalen Parameter.

Strategieoptimierungsrichtlinien

  1. Einbeziehung von Trendanalyse: Hinzufügen von Trendindikatoren (wie gleitenden Durchschnitten) in die Strategie.
  2. Optimieren von Take-Profit und Stop-Loss: Dynamische Anpassung von Take-Profit und Stop-Loss basierend auf Volatilitätsindikatoren wie ATR, um ein besseres Risiko-Rendite-Verhältnis zu erzielen.
  3. Multi-Faktor-Kombination: Erwägen Sie, Bollinger-Bänder mit anderen technischen Indikatoren (wie RSI, MACD usw.) zu kombinieren, um die Signalgenauigkeit zu verbessern und falsche Signale zu reduzieren.
  4. Grundlegende Filterung: Nach der Erstellung von Handelssignalen werden grundlegende Daten (wie Finanzberichte, Branchendaten usw.) zur sekundären Bestätigung verwendet, um die Robustheit der Strategie zu erhöhen.

Zusammenfassung

Diese Strategie konstruiert ein einfaches und effektives Handelssystem mit Bollinger Bands, wobei der Preis, der die oberen und unteren Bands berührt, als Signale verwendet wird, und die dynamische Gewinnentnahme zur Risikokontrolle übernommen wird.


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

//@version=5
strategy("Future Price Prediction", overlay=true)

// Ayarlar
length = input.int(14, "Length")
mult = input.float(2.0, "Multiplier")
showBands = input.bool(true, "Show Bands")
takeProfitPercentage = 1.0

// Ortalama ve Standart Sapma Hesaplamaları
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)

// Üst ve Alt Bantlar
upper = basis + dev
lower = basis - dev

// Grafikte Gösterim
plot(basis, color=color.blue, linewidth=2, title="Basis")
plot(showBands ? upper : na, color=color.red, linewidth=1, title="Upper Band")
plot(showBands ? lower : na, color=color.green, linewidth=1, title="Lower Band")

// Al-Sat Sinyalleri
longCondition = ta.crossover(close[1], lower[1]) and close[1] < open[1]
shortCondition = ta.crossunder(close[1], upper[1]) and close[1] > open[1]

// Kar al seviyeleri
float longTakeProfit = na
float shortTakeProfit = na

if longCondition
    longTakeProfit := close * (1 + takeProfitPercentage / 100)
if shortCondition
    shortTakeProfit := close * (1 - takeProfitPercentage / 100)

// Strateji Giriş ve Çıkış
if longCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit", from_entry="Buy", limit=longTakeProfit)

if shortCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit", from_entry="Sell", limit=shortTakeProfit)

// Al-Sat Sinyalleri Grafikte Gösterim
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Bilgi Tablosu
var table data = table.new(position.bottom_right, 2, 2, frame_color=color.black, frame_width=1)
if barstate.islast
    table.cell(data, 0, 0, "Current Price", text_color=color.white)
    table.cell(data, 1, 0, str.tostring(close))
    table.cell(data, 0, 1, "Predicted Basis", text_color=color.white)
    table.cell(data, 1, 1, str.tostring(basis))


Verwandt

Mehr