Es handelt sich um eine Trendfolgestrategie, die auf der Bestätigung von Exponential Moving Average (EMA) Crossovers und Relative Strength Index (RSI) basiert. Die Strategie kombiniert Signale von kurz- und langfristigen EMA Crossovers mit der Bestätigung von RSI-Impuls, während sie einen prozentualen Stop-Loss-Mechanismus enthält. Ziel ist es, signifikante Markttrendumkehrungen zu erfassen und gleichzeitig die Risikokontrolle durch die synergistische Wirkung technischer Indikatoren aufrechtzuerhalten.
Die Strategie verwendet einen doppelten technischen Indikator-Filtermechanismus: Erstens identifiziert sie potenzielle Trendumkehrpunkte durch die Überschneidung von kurzfristigen EMA (9 Perioden) und langfristigen EMA (21 Perioden). Kaufsignale werden erzeugt, wenn die kurzfristige EMA über die langfristige EMA überschreitet und der RSI-Wert über dem angegebenen Niveau liegt. Verkaufssignale treten auf, wenn die kurzfristige EMA unter die langfristige EMA überschreitet und der RSI-Wert unter dem angegebenen Niveau liegt. Darüber hinaus beinhaltet die Strategie einen prozentualen Stop-Loss-Mechanismus, der dynamische Stop-Loss-Level für jeden Handel festlegt, um das Abwärtsrisiko effektiv zu kontrollieren.
Diese Strategie baut durch die Kombination von gleitenden Durchschnitten und Momentum-Indikatoren ein komplettes Trend-Folge-Handelssystem auf. Seine Hauptvorteile liegen in seinem zuverlässigen Signalbestätigungsmechanismus und umfassendem Risikokontrollsystem. Obwohl es einige inhärente Einschränkungen gibt, kann die Gesamtleistung der Strategie durch die vorgeschlagenen Optimierungsrichtungen weiter verbessert werden. Dies ist ein robuster Strategie-Rahmen, der für mittel- bis langfristige Trendhändler geeignet ist.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Simple Trend Following Strategy", overlay=true) // Inputs shortEMA = input.int(9, title="Short EMA Length", minval=1) longEMA = input.int(21, title="Long EMA Length", minval=1) confirmationRSI = input.int(50, title="RSI Confirmation Level", minval=1, maxval=100) stopLossPercent = input.float(2, title="Stop Loss Percentage", minval=0.1) // Stop Loss percentage // Calculations emaShort = ta.ema(close, shortEMA) emaLong = ta.ema(close, longEMA) rsiValue = ta.rsi(close, 14) // Buy and Sell Conditions buySignal = ta.crossover(emaShort, emaLong) and rsiValue > confirmationRSI sellSignal = ta.crossunder(emaShort, emaLong) and rsiValue < confirmationRSI // Plotting Signals plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Plotting EMAs plot(emaShort, title="Short EMA", color=color.yellow) plot(emaLong, title="Long EMA", color=color.purple) // Strategy logic strategy.entry("Buy", strategy.long, when=buySignal) strategy.entry("Sell", strategy.short, when=sellSignal) // Calculate stop loss price based on stopLossPercent longStopLossPrice = strategy.position_avg_price * (1 - stopLossPercent / 100) shortStopLossPrice = strategy.position_avg_price * (1 + stopLossPercent / 100) // Draw stop loss line for long positions if (strategy.position_size > 0) // For long positions line.new(x1=bar_index, y1=longStopLossPrice, x2=bar_index + 1, y2=longStopLossPrice, color=color.red, width=2, style=line.style_dashed) // Draw stop loss line for short positions if (strategy.position_size < 0) // For short positions line.new(x1=bar_index, y1=shortStopLossPrice, x2=bar_index + 1, y2=shortStopLossPrice, color=color.green, width=2, style=line.style_dashed)