
Die Strategie ist ein auf dem Brin-Band-Breakout basierendes Advanced-Trend-Tracking-System, das mehrere technische Indikatoren wie RSI und ADX als Filterbedingungen kombiniert und einen ATR-basierten dynamischen Stop-Loss- und Tracking-Stopp-Mechanismus verwendet. Die Strategie verwendet eine strenge Risikomanagement-Methode, um die Genauigkeit und Stabilität des Handels durch die kombinierte Verwendung mehrerer Indikatoren zu verbessern.
Die Kernlogik der Strategie basiert auf den folgenden Schlüsselelementen:
Es handelt sich um eine gut strukturierte Trend-Tracking-Strategie, die die Stabilität des Handels durch die Synergie von mehreren technischen Indikatoren erhöht. Das Risikomanagementsystem der Strategie ist perfekt und kann das Abwärtsrisiko effektiv kontrollieren. Obwohl es einige Optimierungsmöglichkeiten gibt, entspricht die Gesamtkonzeption den Anforderungen des modernen quantitativen Handels.
/*backtest
start: 2025-02-01 00:00:00
end: 2025-02-19 00:00:00
period: 1h
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Optimized Bollinger Bands Breakout Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=1)
// 🎯 Bollinger Bands Settings
length = input(20, title="Bollinger Length")
mult = input(2.0, title="Bollinger Multiplier")
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upperBand = basis + dev
lowerBand = basis - dev
// 📌 ADX Calculation (Manually Calculated)
adxLength = input(14, title="ADX Length")
dmiLength = input(14, title="DMI Length")
upMove = high - ta.highest(high[1], 1)
downMove = ta.lowest(low[1], 1) - low
plusDM = upMove > downMove and upMove > 0 ? upMove : 0
minusDM = downMove > upMove and downMove > 0 ? downMove : 0
plusDI = ta.sma(plusDM, dmiLength) / ta.atr(dmiLength) * 100
minusDI = ta.sma(minusDM, dmiLength) / ta.atr(dmiLength) * 100
dx = math.abs(plusDI - minusDI) / (plusDI + minusDI) * 100
adx = ta.sma(dx, adxLength)
// 📌 Additional Filters
rsi = ta.rsi(close, 14)
// ✅ Entry Conditions
longCondition = ta.crossover(close, upperBand) and rsi > 40 and rsi < 60 and adx > 25
shortCondition = ta.crossunder(close, lowerBand) and rsi > 40 and rsi < 60 and adx > 25
// 📌 ATR-based Stop Loss
stopLossMultiplier = input(1.5, title="Stop Loss (ATR Multiplier)")
atrValue = ta.atr(14)
longSL = close - (atrValue * stopLossMultiplier)
shortSL = close + (atrValue * stopLossMultiplier)
// ✅ Trailing Stop
trailMultiplier = input(1, title="Trailing Stop Multiplier")
longTrailStop = close - (atrValue * trailMultiplier)
shortTrailStop = close + (atrValue * trailMultiplier)
// 🚀 Executing Trades
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", from_entry="Long", stop=longSL, trail_price=longTrailStop, trail_offset=atrValue * 0.5)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", from_entry="Short", stop=shortSL, trail_price=shortTrailStop, trail_offset=atrValue * 0.5)
// 📊 Plot Bollinger Bands
plot(upperBand, title="Upper Band", color=color.blue)
plot(lowerBand, title="Lower Band", color=color.red)
plot(basis, title="Middle Band", color=color.gray)