Strategi ini adalah versi yang ditingkatkan dari indikator RSI yang dikembangkan oleh John Ehlers. Keuntungannya utama adalah meratakan kurva RSI sambil meminimalkan lag.
Hitung harga rata-rata xValue menggunakan 6 bar.
Menghitung jumlah naik CU23 dan jumlah turun CD23 berdasarkan xValue.
Menghitung nilai RES normalisasi nRes sebagai CU23/(CU23 + CD23).
Membuat sinyal panjang/pendek dengan membandingkan nRes dengan ambang batas.
Pilihan untuk membalikkan sinyal.
Masukkan panjang / pendek berdasarkan sinyal.
Strategi ini secara efektif meratakan kurva RSI dengan meningkatkan perhitungannya, mengurangi sinyal palsu sampai batas tertentu. penyaringan lebih lanjut dan pengoptimalan parameter dapat meningkatkan kinerja. tetapi beberapa lag bertahan sebagai sistem momentum. secara keseluruhan, sistem breakout yang sederhana dan andal layak penelitian lebih lanjut dan pengoptimalan.
/*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")