Diese Strategie ist ein dynamisches Range-Reversal-Trading-System, das auf dem RSI-Indikator basiert und Marktwendepunkte durch verstellbare Überkauf-/Überverkaufszonen in Kombination mit Konvergenz-/Divergenzempfindlichkeitsparametern erfasst. Die Strategie verwendet eine feste Anzahl von Verträgen für den Handel und funktioniert innerhalb eines spezifischen Backtesting-Zeitrahmens. Der Kern dieses Modells besteht darin, über dynamische RSI-Veränderungen Marktüberkauf- und Überverkaufszustände zu identifizieren und Umkehrgeschäfte zu geeigneten Zeiten auszuführen.
Die Strategie verwendet einen 14-Perioden-RSI als Kernindikator und setzt 80 und 30 als Überkauf- und Überverkaufs-Benchmark-Level fest. Durch die Einführung eines Konvergenz-/Divergenz-Sensitivitätsparameters (setzt auf 3,0) fügt sie der traditionellen RSI-Strategie eine dynamische Anpassungsfähigkeit hinzu.
Dies ist eine auf dem RSI-Indikator basierende dynamische Range-Umkehrstrategie, die durch flexible Parameter-Einstellungen und klare Handelsregeln ein relativ vollständiges Handelssystem erreicht. Die Hauptvorteile der Strategie liegen in ihrer dynamischen Anpassungsfähigkeit und klaren Risikokontrolle, während auf potenzielle Risiken in unruhigen und trendenden Märkten geachtet werden muss. Durch Optimierungsmaßnahmen wie Volatilitätsanpassung und Trendfilterung hat die Strategie Raum für weitere Verbesserungen. Insgesamt handelt es sich um einen praktischen quantitativen Handelsstrategie-Rahmen, der für eine eingehende Forschung und praktische Verifizierung geeignet ist.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-11 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI Options Strategy", overlay=true) // RSI settings rsiLength = input(14, title="RSI Length") rsiOverbought = input(80, title="Overbought Level") rsiOversold = input(30, title="Oversold Level") rsiSource = input(close, title="RSI Source") rsi = ta.rsi(rsiSource, rsiLength) // Convergence/Divergence Input convergenceLevel = input(3.0, title="Convergence/Divergence Sensitivity") // Order size (5 contracts) contracts = 10 // Date Range for Backtesting startDate = timestamp("2024-09-10 00:00") endDate = timestamp("2024-11-09 23:59") // Limit trades to the backtesting period inDateRange = true // RSI buy/sell conditions with convergence/divergence sensitivity buySignalOverbought = ta.crossover(rsi, rsiOverbought - convergenceLevel) sellSignalOversold = ta.crossunder(rsi, rsiOversold + convergenceLevel) buySignalOversold = ta.crossunder(rsi, rsiOversold - convergenceLevel) sellSignalOverbought = ta.crossover(rsi, rsiOverbought + convergenceLevel) // Execute trades only within the specified date range if (inDateRange) // Buy when RSI crosses above 80 (overbought) if (buySignalOverbought) strategy.entry("Buy Overbought", strategy.long, qty=contracts) // Sell when RSI crosses below 30 (oversold) if (sellSignalOversold) strategy.close("Buy Overbought") // Buy when RSI crosses below 30 (oversold) if (buySignalOversold) strategy.entry("Buy Oversold", strategy.long, qty=contracts) // Sell when RSI crosses above 80 (overbought) if (sellSignalOverbought) strategy.close("Buy Oversold") // Plot the RSI for visualization plot(rsi, color=color.blue, title="RSI") hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green)