Strategi ini adalah versi RSI yang lebih baik yang dibangunkan oleh John Ehlers. Kelebihan utamanya adalah mengurangkan ketinggalan dan meratakan keluk RSI.
Mengira purata harga 6 baris xValue。
Menurut pengiraan xValue, jumlah kenaikan adalah CU23 dan jumlah penurunan adalah CD23.
Hitung nilai RES Normalized nRes, iaitu CU23 / ((CU23 + CD23) }}.
Bandingkan nRes dengan nilai had atas dan bawah, menghasilkan isyarat kosong.
Pilihan untuk bertukar balik.
Berdagang di atas angin mengikut isyarat.
Strategi ini berkesan meluruskan kurva dengan memperbaiki cara pengiraan indikator RSI, dan mengurangkan isyarat palsu ke tahap tertentu. Tetapan parameter pengoptimuman dan menambahkan syarat penapisan lain dapat meningkatkan prestasi strategi lebih jauh. Tetapi sebagai sistem yang cenderung, tidak dapat sepenuhnya mengelakkan masalah ketinggalan. Secara keseluruhan, strategi ini adalah sistem penembusan yang mudah dan boleh dipercayai yang layak untuk dikaji dan dioptimumkan.
/*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")