Strategi pembalikan RSI menghitung indikator RSI dan rata-rata bergerak halus untuk menentukan apakah saham terlalu banyak dibeli atau terlalu banyak dijual, sehingga menghasilkan sinyal beli dan jual.
Strategi ini pertama-tama menghitung RSI 14 periode dan menormalkannya menjadi 0-100. Kemudian menghitung rata-rata bergerak tertimbang 5 periode RSI, dan memetakan ke -1 ke 1 menggunakan fungsi tangen. Ketika RSI yang dipetakan melintasi di atas -0.8, sinyal beli dihasilkan. Ketika melintasi di bawah 1, sinyal jual dihasilkan. Metode pemetaan dan penilaian ambang digunakan di sini untuk mendeteksi sinyal pembalikan indikator RSI.
Strategi juga menetapkan rentang bulan dan tanggal berjalan sehingga hanya berjalan selama bulan dan tanggal tertentu.
Strategi pembalikan RSI secara efektif menangkap peluang pembalikan harga dengan membangun aturan perdagangan pembalikan sederhana berdasarkan indikator RSI. Strategi ini mudah dilaksanakan, tetapi dapat ditingkatkan melalui optimasi parameter, mekanisme pengendalian risiko dll, menjadikannya strategi perdagangan kuantitatif yang menguntungkan yang stabil.
/*backtest start: 2023-01-12 00:00:00 end: 2024-01-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="RSI Reverse", shorttitle="RSI Reverse") RSI_main = input(14, title="RSI Main Period") RSI_smooth = input(5, title="RSI Smooth Period") //Functions RVS(input) => (exp(2*input)-1) / (exp(2*input)+1) //RSI Calculation raw_RSI=0.1*(rsi(close,RSI_main)-50) wma_RSI=wma(raw_RSI,RSI_smooth) RVS_RSI = RVS(wma_RSI) threshold1 = RVS_RSI < 0.8? 1 : 0 threshold2 = -0.8 plot(RVS_RSI,color=red) plot(threshold1,color=blue) plot(threshold2,color=blue) buycon = crossover(RVS_RSI,threshold2) sellcon = crossunder(RVS_RSI , threshold1) monthfrom =input(6) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( buycon ) strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY") else strategy.cancel(id="BUY") if ( sellcon) strategy.close("BUY")