Indeks Kekuatan Relatif dan Strategi Crossover Rata-rata Bergerak

Penulis:ChaoZhang, Tanggal: 2023-12-21 11:30:27
Tag:

img

Gambaran umum

Strategi RSI dan Moving Average Crossover menggabungkan indikator RSI dan moving average untuk membuat keputusan perdagangan kuantitatif. Ini memanfaatkan tingkat overbought dan oversold yang ditunjukkan oleh RSI untuk menentukan entri dan keluar, bersama dengan sinyal golden cross dan death cross yang dihasilkan ketika RSI melintasi garis moving average.

Logika Strategi

  1. RSI mengukur besarnya perubahan harga baru-baru ini untuk mengevaluasi apakah aset terlalu banyak dibeli atau terlalu banyak dijual.

  2. Menghitung garis rata-rata bergerak (MA) dari RSI, menggunakan rata-rata bergerak eksponensial (EMA) atau rata-rata bergerak sederhana (SMA).

  3. Ketika RSI melintasi di atas garis MA, sinyal beli silang emas dihasilkan.

  4. Ketika RSI naik di atas ambang overbought, aset dianggap overbought dan posisi pendek dapat dimulai.

Analisis Keuntungan

  1. Kombinasi sinyal crossover indikator dengan tingkat overbought/oversold RSI meningkatkan akurasi keputusan perdagangan.

  2. RSI overbought dan oversold threshold menentukan entri dan keluar optimal.

  3. Menangkap pembalikan tren dengan bertindak pada sinyal silang indikator.

Analisis Risiko

  1. RSI dapat menghasilkan sinyal yang salah selama pasar bergolak atau sisi.

  2. Pengaturan ambang overbought atau oversold yang tidak benar dapat menyebabkan sinyal yang terlalu longgar atau terlalu ketat.

  3. Rata-rata bergerak sensitif terhadap anomali jangka pendek dan lonjakan volatilitas, meningkatkan kemungkinan dihentikan lebih awal.

Arahan Optimasi

  1. Mengoptimalkan parameter RSI dengan menguji periode panjang yang berbeda.

  2. Tentukan periode rata-rata bergerak optimal dengan menilai panjang MA yang berbeda.

  3. Uji berbagai tingkat ambang overbought dan oversold untuk memperbaiki sinyal masuk.

  4. Masukkan filter tambahan untuk memvalidasi sinyal dan menghindari perdagangan palsu.

Kesimpulan

Strategi RSI dan Moving Average Crossover menggabungkan tingkat overbought/oversold RSI dengan sinyal crossover MA untuk mengidentifikasi titik balik pasar dan menangkap pembalikan. Kinerja dan manajemen risiko dapat ditingkatkan melalui optimasi parameter dan penyaringan sinyal. Strategi perdagangan jangka menengah ini menawarkan potensi generasi alfa yang kuat bagi investor berpengalaman.


/*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)


Lebih banyak