
Die Strategie ist ein Trend-Tracking-System, basierend auf Index-Moving Average (EMA) -Kreuzungen, kombiniert mit dynamischem Positionsmanagement und Risikokontrolle. Die Strategie verwendet die Kreuzung von Signalen von schnellen und langsamen EMAs, um Markttrends zu erkennen, während die Handelsspanne dynamisch durch die Berechnung von Prozentsatzrisiken angepasst wird, und die Nutzung von Moving Stop-Losses wird verwendet, um die Gewinne zu schützen.
Die Kernlogik der Strategie basiert auf dem Index-Moving-Average für zwei verschiedene Perioden (default 9 und 21). Wenn ein schneller EMA einen schnellen EMA überschreitet, wird ein Mehrsignal erzeugt. Wenn ein schneller EMA einen schnellen EMA überschreitet, wird ein Blackout erzeugt.
Es ist ein vollständiges Handelssystem, das klassische Methoden der technischen Analyse mit modernen Risikomanagement-Konzepten kombiniert. Die Strategie steuert das Risiko durch dynamische Positionsmanagement und mobile Stop-Losses, während sie Trendchancen mit EMA-Kreuzungen erfasst. Obwohl es einige inhärente Einschränkungen gibt, kann die Stabilität und Anpassungsfähigkeit der Strategie durch die empfohlene Optimierungsrichtung weiter verbessert werden.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bitcoin Exponential Profit Strategy", overlay=true)
// User settings
fastLength = input.int(9, title="Fast EMA Length", minval=1)
slowLength = input.int(21, title="Slow EMA Length", minval=1)
riskPercent = input.float(1, title="Risk % Per Trade", step=0.1) / 100
rewardMultiplier = input.float(2, title="Reward Multiplier (R:R)", step=0.1)
trailOffsetPercent = input.float(0.5, title="Trailing Stop Offset %", step=0.1) / 100
// Calculate EMAs
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
// Plot EMAs
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")
// Account balance and dynamic position sizing
capital = strategy.equity
riskAmount = capital * riskPercent
// Define Stop Loss and Take Profit Levels
stopLossLevel = close * (1 - riskPercent)
takeProfitLevel = close * (1 + rewardMultiplier * riskPercent)
// Trailing stop offset
trailOffset = close * trailOffsetPercent
// Entry Condition: Bullish Crossover
if ta.crossover(fastEMA, slowEMA)
positionSize = riskAmount / math.max(close - stopLossLevel, 0.01) // Prevent division by zero
strategy.entry("Long", strategy.long, qty=positionSize)
strategy.exit("TakeProfit", from_entry="Long", stop=stopLossLevel, limit=takeProfitLevel, trail_offset=trailOffset)
// Exit Condition: Bearish Crossunder
if ta.crossunder(fastEMA, slowEMA)
strategy.close("Long")
// Labels for Signals
if ta.crossover(fastEMA, slowEMA)
label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, style=label.style_label_up)
if ta.crossunder(fastEMA, slowEMA)
label.new(bar_index, high, "SELL", color=color.red, textcolor=color.white, style=label.style_label_down)