Dies ist eine Trendfolgestrategie, die gleitende Durchschnitts-Crossovers mit dem Relative Strength Index (RSI) kombiniert. Die Strategie bestimmt die Markttrendrichtung durch kurzfristige und langfristige gleitende Durchschnitts-Crossovers, während RSI als Momentumfilter verwendet wird, um die Trendstärke zu bestätigen und damit die Zuverlässigkeit der Handelssignale zu verbessern. Die Strategie beinhaltet auch prozentual basierte Stop-Loss und Take-Profit für das Risikomanagement.
Die Strategie verwendet 9-Perioden- und 21-Perioden-Simple Moving Averages (SMA) als primäre Trendindikatoren. Lange Signale werden erzeugt, wenn der kurzfristige MA über den langfristigen MA überschreitet und der RSI über 50 liegt, während kurze Signale auftreten, wenn der kurzfristige MA unter den langfristigen MA überschreitet und der RSI unter 50 liegt. Dieses Design stellt sicher, dass die Handelsrichtung sowohl mit dem Markttrend als auch mit der Dynamik übereinstimmt. Das System steuert das Risiko-Rendite-Verhältnis durch 1% Stop-Loss- und 2% Take-Profit-Level.
Dies ist eine gut strukturierte Trendfolgestrategie mit klarer Logik. Sie bietet eine grundlegende Trendrichtung durch MA-Kreuzungen, Momentumbestätigung durch RSI, kombiniert mit Risikomanagementmechanismen, um ein komplettes Handelssystem zu bilden. Obwohl sie einige inhärente Einschränkungen hat, hat die Strategie durch kontinuierliche Optimierung und Anpassung das Potenzial, eine stabile Performance in verschiedenen Marktumgebungen zu erhalten. Der Schlüssel zum Erfolg liegt in der Optimierung von Parametern und der Durchführung der Risikokontrolle.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average Crossover + RSI Strategy", overlay=true, shorttitle="MA RSI Strategy") // --- Input Parameters --- shortMA = input.int(9, title="Short MA Period", minval=1) longMA = input.int(21, title="Long MA Period", minval=1) rsiLength = input.int(14, title="RSI Length", minval=1) rsiOverbought = input.int(70, title="RSI Overbought Level", minval=50, maxval=100) rsiOversold = input.int(30, title="RSI Oversold Level", minval=0, maxval=50) stopLossPercent = input.float(1, title="Stop Loss Percentage", minval=0.1, maxval=10.0) / 100 takeProfitPercent = input.float(2, title="Take Profit Percentage", minval=0.1, maxval=10.0) / 100 // --- Calculate Moving Averages --- shortMA_value = ta.sma(close, shortMA) longMA_value = ta.sma(close, longMA) // --- Calculate RSI --- rsi_value = ta.rsi(close, rsiLength) // --- Buy and Sell Conditions --- longCondition = ta.crossover(shortMA_value, longMA_value) and rsi_value > 50 shortCondition = ta.crossunder(shortMA_value, longMA_value) and rsi_value < 50 // --- Plot Moving Averages --- plot(shortMA_value, color=color.blue, linewidth=2, title="Short MA") plot(longMA_value, color=color.red, linewidth=2, title="Long MA") // --- Plot RSI (Optional) --- hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green) plot(rsi_value, color=color.purple, title="RSI") // --- Strategy Execution --- if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // --- Risk Management (Stop Loss and Take Profit) --- longStopLoss = close * (1 - stopLossPercent) longTakeProfit = close * (1 + takeProfitPercent) shortStopLoss = close * (1 + stopLossPercent) shortTakeProfit = close * (1 - takeProfitPercent) // Set the stop loss and take profit for long and short positions strategy.exit("Long Exit", from_entry="Long", stop=longStopLoss, limit=longTakeProfit) strategy.exit("Short Exit", from_entry="Short", stop=shortStopLoss, limit=shortTakeProfit)