
RSI crossover strategi adalah strategi perdagangan kuantitatif yang menggabungkan indikator yang agak kuat (RSI) dan purata bergerak. Strategi ini menggunakan RSI untuk menilai harga sekuriti yang lebih baik dan lebih baik, dan menggabungkan RSI dengan tanda-tanda rantai emas dan rantai mati rata-rata untuk menentukan kedudukan bullish atau bearish.
Pengiraan nilai RSI. Indeks RSI berdasarkan kenaikan dan penurunan dalam jangka masa tertentu, dengan membandingkan kenaikan dan penurunan penutupan purata, untuk menentukan sama ada sekuriti itu terlalu beli atau terlalu dijual.
Mengira purata bergerak MA dalam RSI. Menggunakan purata bergerak indeks EMA atau purata bergerak sederhana SMA.
Apabila penunjuk RSI di atas melintasi purata bergeraknya, ia menghasilkan isyarat silang emas, melakukan over; apabila penunjuk RSI di bawah melintasi purata bergeraknya, ia menghasilkan isyarat garpu mati, melakukan over.
Apabila RSI lebih tinggi daripada garisan beli, menganggap sekuriti itu terlalu beli, melakukan shorting; apabila RSI lebih rendah daripada garisan jual beli, menganggap sekuriti itu terlalu jual, melakukan lebih banyak.
Gabungan penunjuk dengan isyarat silang rata-rata, mengelakkan bergantung kepada satu penunjuk sahaja, meningkatkan ketepatan keputusan.
Menggunakan RSI untuk menentukan masa untuk membeli dan menjual, menetapkan garis membeli dan menjual, menentukan masa untuk meletakkan dan menghentikan kerugian.
Penggunaan penunjuk bersalin dengan purata untuk melakukan lebih banyak shorting, dapat menangkap titik perubahan pasaran tepat pada masanya.
Indeks RSI mudah menyebabkan isyarat salah dalam keadaan goyah.
RSI overbought dan oversold berdasarkan penilaian boleh disesuaikan, dan seting yang tidak betul boleh menyebabkan terlalu longgar atau ketat.
Sistem garis rata terlalu sensitif terhadap perubahan jangka pendek yang tidak normal, dan mungkin terhalang.
Sesuaikan parameter RSI untuk mencari parameter panjang yang optimum.
Mengoptimumkan parameter purata bergerak untuk mencari tempoh purata terbaik.
Uji pelbagai parameter overbought dan oversold untuk mengoptimumkan peluang untuk membina kedudukan.
Dalam kombinasi dengan indikator lain, isyarat penapisan mengelakkan perdagangan yang salah.
RSI digunakan untuk menilai overbought dan oversold dengan menggunakan RSI untuk menilai overbought dan oversold dengan menggunakan RSI untuk menilai overbought dan oversold dengan menggunakan RSI untuk menilai overbought dan oversold.
/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//dfurrer45
strategy(title="Relative Strength Index", shorttitle="RSI", overlay=true)
src = close, len = input(13, minval=1, title="Length"), maLen = input(9, minval=1, title="MA Lenght"), exponential = input(false, title="Exponential")
// === BACKTEST RANGE ===
FromMonth = input(defval = 10, title = "From Month", minval = 1)
FromDay = input(defval = 3, title = "From Day", minval = 1)
FromYear = input(defval = 2017, title = "From Year", minval = 2014)
ToMonth = input(defval = 1, title = "To Month", minval = 1)
ToDay = input(defval = 1, title = "To Day", minval = 1)
ToYear = input(defval = 9999, title = "To Year", minval = 2014)
// === BACKTEST END ===
backtestdaterange = (time > timestamp(FromYear, FromMonth, FromDay, 00, 00))
rsioverbought = input(90, minval=1, title="RSI % start overbought")
rsioversold = input(10, minval=1, title="RSI % start oversold")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
ma = exponential ? ema(rsi, maLen) : sma(rsi, maLen)
rsimacrossup = cross(rsi,ma) and rsi > ma
rsimacrossdown = cross(rsi,ma) and rsi < ma
plotchar(rsimacrossup, char='⇧', location = location.belowbar, color = green, text = "", textcolor = green, size=size.small)
plotchar(rsimacrossdown, char='⇩', location = location.abovebar, color = red, text = "", textcolor = red, size=size.small)
plotchar(rsi > rsioverbought, char='x', location = location.belowbar, color = aqua, text = "", textcolor = red, size=size.small)
plotchar(rsi < rsioversold, char='x', location = location.belowbar, color = aqua, text = "", textcolor = red, size=size.small)
closetrade = rsimacrossup or rsimacrossdown
strategy.close_all(closetrade)
strategy.close_all((rsi > rsioverbought) or (rsi < rsioversold))
strategy.entry("Short Overbought",strategy.short, when=(rsi > rsioverbought) and backtestdaterange)
strategy.entry("Buy Overbought",strategy.long, when=(rsi < rsioversold) and backtestdaterange)
strategy.entry("Long Cross", strategy.long, when=rsimacrossup and backtestdaterange)
strategy.entry("Short Cross", strategy.short, when=rsimacrossdown and backtestdaterange)