Strategi pembalikan RSI mengira penunjuk RSI dan purata bergerak yang halus untuk menentukan sama ada saham terlalu banyak dibeli atau terlalu banyak dijual, dengan itu menjana isyarat beli dan jual.
Strategi ini mula-mula mengira RSI 14 tempoh dan menormalkannya kepada 0-100. Kemudian ia mengira purata bergerak bertimbang 5 tempoh RSI, dan memetakan kepada -1 hingga 1 menggunakan fungsi tangen. Apabila RSI yang dipetakan melintasi di atas -0.8, isyarat beli dihasilkan. Apabila melintasi di bawah 1, isyarat jual dihasilkan. Pemetaan dan kaedah penghakiman ambang digunakan di sini untuk mengesan isyarat pembalikan penunjuk RSI.
Strategi ini juga menetapkan julat bulan dan tarikh berjalan supaya ia hanya berjalan dalam bulan dan tarikh tertentu.
Strategi pembalikan RSI berkesan menangkap peluang pembalikan harga dengan membina peraturan perdagangan pembalikan mudah berdasarkan penunjuk RSI. Strategi ini mudah dilaksanakan, tetapi boleh ditingkatkan melalui pengoptimuman parameter, mekanisme kawalan risiko dll, menjadikannya strategi perdagangan kuantitatif yang stabil dan menguntungkan.
/*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")