Die Ressourcen sind geladen. Beförderung...

Dynamische Stop-Loss- und Take-Profit-Strategie mit Bollinger Bands

Schriftsteller:ChaoZhang
Tags:SMA

img

Übersicht

Strategieprinzip

  1. Wenn Sie kaufen, setzen Sie den Stop-Loss-Level auf den niedrigsten Preis in einem vergangenen Zeitraum und setzen Sie den Take-Profit-Level noch nicht ein.

Strategische Vorteile

  1. Bollinger-Bänder sind ein ausgereifter und weit verbreiteter technischer Indikator, der die Marktvolatilität effektiv erfassen kann.
  2. Die Strategielogik ist klar und leicht verständlich und umsetzbar.

Strategische Risiken

  1. In einem seitlichen Markt können häufige Kauf- und Verkaufssignale zu einem übermäßigen Handel und zu erhöhten Handelskosten führen.

Strategieoptimierungsrichtlinien

  1. Optimierung der Methode zur Festlegung von Stop-Loss- und Gewinnniveaus, z. B. Verwendung von Volatilitätsindikatoren wie ATR, um sie dynamischer und anpassungsfähiger an Marktveränderungen zu machen.
  2. Zusätzliche Filterbedingungen wie Handelsvolumen und Volatilität werden den Kauf- und Verkaufssignalen hinzugefügt, um die Zuverlässigkeit der Signale zu verbessern.
  3. Optimieren von Parametern, wie z. B. der Länge- und Standardabweichungsmultiplikator der Bollinger-Bänder, um die beste Parameterkombination zu finden.

Zusammenfassung


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

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

// Bollinger Bands settings
length = 20
src = close
mult = 2.0

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

// Plot Bollinger Bands
plot(basis, color=color.blue, title="Middle Band")
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")

// Trade logic
// Buy when the price crosses below the lower Bollinger Band
buySignal = ta.crossover(lower, src)
// Sell when the price crosses above the upper Bollinger Band
sellSignal = ta.crossover(src, upper)

// Define stop loss and take profit levels
var float stopLoss = na
var float takeProfit = na

// Calculate stop loss and take profit levels
if (buySignal)
    stopLoss := ta.lowest(low, length)
    takeProfit := na
if (sellSignal)
    stopLoss := ta.highest(high, length)
    takeProfit := na

// Update take profit on new signals
if (buySignal)
    takeProfit := na
if (sellSignal)
    takeProfit := na

// Execute trades
if (buySignal)
    strategy.entry("Buy", strategy.long, stop=stopLoss, limit=takeProfit)

if (sellSignal)
    strategy.entry("Sell", strategy.short, stop=stopLoss, limit=takeProfit)

// Plot signals on chart
plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy", title="Buy Signal")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", title="Sell Signal")

// Alert conditions
alertcondition(buySignal, title="Buy Alert", message="Buy Signal detected")
alertcondition(sellSignal, title="Sell Alert", message="Sell Signal detected")

Verwandt

Mehr