Diese Strategie verwendet die Crossover-Signale des RSI-Indikators und zwei EMA-Linien, um Kauf- und Verkaufspunkte zu bestimmen. Ein Kaufsignal wird erzeugt, wenn der Schlusskurs sowohl unter EMA100 als auch unter EMA20 fällt und der RSI-Wert unter 30 liegt. Ein Verkaufssignal wird erzeugt, wenn der Schlusskurs sowohl über EMA100 als auch über EMA20 fällt und der RSI-Wert über 70 liegt. Die Hauptidee dieser Strategie besteht darin, den RSI-Indikator zu verwenden, um überkaufte und überverkaufte Bedingungen zu beurteilen, kombiniert mit dem Trendbeurteil der EMA-Linien, um die niedrigen und hohen Punkte der Marktschwankungen zu erfassen und Low-Buy- und High-Sell-Operationen durchzuführen.
Die RSI- und Dual-EMA-Crossover-Signal-Quantitative-Strategie ist eine einfache und praktische quantitative Handelsstrategie. Durch die Kombination des RSI-Indikators mit EMA- gleitenden Durchschnitten kann er die Höhen und Tiefen in einem schwankenden Markt besser erfassen und Arbitrage durchführen. Diese Strategie hat jedoch auch einige Einschränkungen und Risiken, wie zum Beispiel Versagen in Trendmärkten, Mangel an Positionsmanagement und Risikokontrollmaßnahmen usw. Daher muss sie in der Praxis entsprechend den Merkmalen des Marktes und den persönlichen Vorlieben optimiert und verbessert werden, um die Robustheit und Rentabilität der Strategie zu verbessern. Diese Strategie kann als Einstiegsstrategie für den quantitativen Handel verwendet werden, aber sie muss mit Vorsicht behandelt werden und das Risiko muss streng kontrolliert werden.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI-EMA100&20 Buy/Sell Signal", overlay=true) // Input parameters rsiLength = input.int(14, "RSI Length") emaCloseLength = input.int(100, "EMA Length (Closing Price)") emaLowLength = input.int(20, "EMA Length (Low Price)") oversoldLevel = input.int(30, "Oversold Level") overboughtLevel = input.int(70, "Overbought Level") // Calculate RSI rsi = ta.rsi(close, rsiLength) // Calculate EMA of closing price emaClose = ta.ema(close, emaCloseLength) // Calculate EMA of low price emaLow = ta.ema(low, emaLowLength) // Determine overbought and oversold conditions isOversold = rsi <= oversoldLevel isOverbought = rsi >= overboughtLevel // Plot RSI and its EMAs plot(rsi, color=color.blue, title="RSI") plot(emaClose, color=color.green, title="EMA 100 (Closing Price)") plot(emaLow, color=color.orange, title="EMA 20 (Low Price)") // Strategy entry condition: Closing price is below both EMAs and RSI is less than or equal to oversold level buySignal = close < emaClose and close < emaLow and isOversold // Plot buy signals plotshape(series=buySignal, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small) // Strategy entry if (buySignal) strategy.entry("Buy", strategy.long) // Strategy exit condition: Price crosses above both EMAs and RSI is greater than or equal to overbought level sellSignal = close > emaClose and close > emaLow and isOverbought // Plot sell signals plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy exit if (sellSignal) strategy.entry("Sell", strategy.short) // Plot sell signals plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy exit if (sellSignal) strategy.entry("Sell", strategy.short)