Strategi ini adalah versi yang dipertingkatkan dari penunjuk RSI yang dibangunkan oleh John Ehlers.
Mengira purata harga xValue menggunakan 6 bar.
Mengira jumlah naik CU23 dan jumlah turun CD23 berdasarkan xValue.
Mengira nilai RES normal nRes sebagai CU23/(CU23 + CD23).
Menghasilkan isyarat panjang/pendek dengan membandingkan nRes dengan ambang.
Pilihan untuk membalikkan isyarat.
Masukkan panjang/pendek berdasarkan isyarat.
Strategi ini secara berkesan meluruskan lengkung RSI dengan meningkatkan penghitungannya, mengurangkan isyarat palsu ke tahap tertentu. penapisan lanjut dan pengoptimuman parameter boleh meningkatkan prestasi. Tetapi beberapa kelewatan berterusan sebagai sistem momentum. Secara keseluruhan, sistem pecah yang mudah dan boleh dipercayai bernilai penyelidikan dan pengoptimuman lanjut.
/*backtest start: 2023-09-13 00:00:00 end: 2023-09-19 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 20/11/2017 // This is new version of RSI oscillator indicator, developed by John Ehlers. // The main advantage of his way of enhancing the RSI indicator is smoothing // with minimum of lag penalty. // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Smoothed RSI Backtest ver.2") Length = input(10, minval=1) TopBand = input(0.8, step=0.01) LowBand = input(0.2, step=0.01) reverse = input(false, title="Trade reverse") hline(TopBand, color=red, linestyle=line) hline(LowBand, color=green, linestyle=line) xValue = (close + 2 * close[1] + 2 * close[2] + close[3] ) / 6 CU23 = sum(iff(xValue > xValue[1], xValue - xValue[1], 0), Length) CD23 = sum(iff(xValue < xValue[1], xValue[1] - xValue, 0), Length) nRes = iff(CU23 + CD23 != 0, CU23/(CU23 + CD23), 0) pos = iff(nRes > TopBand, 1, iff(nRes < LowBand, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(nRes, color=blue, title="Smoothed RSI")