Diese Strategie ist ein Trend-folgende System, das auf Exponential Moving Average (EMA) Crossovers basiert und dynamische Positionsgrößen und Risikomanagement beinhaltet. Es verwendet schnelle und langsame EMA-Crossover-Signale, um Markttrends zu identifizieren und gleichzeitig die Handelsgrößen durch Prozentsatzrisikoberechnungen dynamisch anzupassen.
Die Kernlogik beruht auf zwei EMAs mit unterschiedlichen Perioden (Standard 9 und 21). Ein Long-Entry-Signal wird generiert, wenn die schnelle EMA über die langsame EMA überschreitet, während Positionen geschlossen werden, wenn die schnelle EMA unter die langsame EMA überschreitet. Jede Handelsgröße wird dynamisch auf der Grundlage eines festen Prozentsatzrisikos (Standard 1%) des gesamten Kontokapitals berechnet, wobei die Gewinnsätze nach Risiko-Rendite-Verhältnissen und prozentsatzbasierten Trailing-Stops festgelegt werden.
Dies ist ein vollständiges Handelssystem, das klassische technische Analysemethoden mit modernen Risikomanagementkonzepten kombiniert. Die Strategie steuert das Risiko durch dynamische Positionsgrößen und Trailing-Stops und erfasst Trendchancen mithilfe von EMA-Crossovers. Obwohl es einige inhärente Einschränkungen gibt, können die vorgeschlagenen Optimierungsrichtungen die Robustheit und Anpassungsfähigkeit der Strategie weiter verbessern. Die Strategie eignet sich besonders für den langfristigen Trendhandel mit kontrolliertem Risiko.
/*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)