
Strategi ini didasarkan pada indikator RSI dan sinyal silang dua garis EMA untuk menentukan titik jual. Ini menghasilkan sinyal beli ketika harga close out jatuh di bawah EMA100 dan EMA20 dan nilai RSI di bawah 30. Ini menghasilkan sinyal jual ketika harga close out menembus EMA100 dan EMA20 dan nilai RSI di atas 70.
Strategi kuantitatif RSI dengan sinyal silang ganda EMA adalah strategi perdagangan kuantitatif yang sederhana dan praktis, dengan menggabungkan indikator RSI dengan garis rata-rata EMA, dapat lebih baik menangkap titik tinggi dan rendah dalam situasi yang bergolak, untuk melakukan arbitrage perbedaan harga. Namun, strategi ini juga memiliki beberapa keterbatasan dan risiko, seperti kegagalan dalam situasi tren, kurangnya manajemen posisi dan langkah-langkah pengendalian risiko, dll. Oleh karena itu, dalam aplikasi nyata, ada juga kebutuhan untuk melakukan optimasi dan perbaikan yang sesuai sesuai dengan karakteristik pasar dan preferensi pribadi, untuk meningkatkan stabilitas dan profitabilitas strategi.
/*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)