Strategi ini menggunakan sinyal silang dari indikator RSI dan dua garis EMA untuk menentukan titik beli dan jual. Sinyal beli dihasilkan ketika harga penutupan jatuh di bawah EMA100 dan EMA20, dan nilai RSI di bawah 30. Sinyal jual dihasilkan ketika harga penutupan melanggar di atas EMA100 dan EMA20, dan nilai RSI di atas 70. Ide utama dari strategi ini adalah menggunakan indikator RSI untuk menilai kondisi overbought dan oversold, dikombinasikan dengan penilaian tren garis EMA, untuk menangkap titik rendah dan tinggi fluktuasi pasar dan melakukan operasi low-buy dan high-sell.
RSI dan Dual EMA Crossover Signal Quantitative Strategy adalah strategi perdagangan kuantitatif yang sederhana dan praktis. Dengan menggabungkan indikator RSI dengan rata-rata bergerak EMA, ia dapat lebih baik menangkap puncak dan terendah di pasar yang berfluktuasi dan melakukan arbitrage. Namun, strategi ini juga memiliki beberapa keterbatasan dan risiko, seperti kegagalan di pasar tren, kurangnya manajemen posisi dan langkah-langkah pengendalian risiko, dll. Oleh karena itu, dalam aplikasi praktis, perlu dioptimalkan dan ditingkatkan dengan tepat sesuai dengan karakteristik pasar dan preferensi pribadi untuk meningkatkan ketahanan dan profitabilitas strategi. Strategi ini dapat digunakan sebagai strategi tingkat awal untuk belajar dan menggunakan perdagangan kuantitatif, tetapi perlu diperlakukan dengan hati-hati dan risiko harus dikendalikan secara ketat.
/*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)