La estrategia es una versión mejorada del indicador RSI desarrollado por John Ehlers. Su mayor ventaja es reducir la retraso y al mismo tiempo suavizar la curva RSI.
Calcula el promedio de los 6 precios xValue。
Según el cálculo de xValue, la suma de las subidas es CU23 y la suma de las bajadas es CD23.
Calcule el valor de RES normalizado nRes, es decir, CU23/(CU23 + CD23) 。
Comparando nRes con los valores de los umbrales superiores y inferiores, se genera una señal de pluralidad de huecos.
Opcional para el comercio inverso.
Las operaciones de vuelo se llevan a cabo según la señal.
La estrategia suaviza la curva de manera efectiva mediante la mejora de la forma en que se calcula el indicador RSI, reduciendo en cierta medida las señales de falsedad. La configuración de parámetros de optimización y la adición de otras condiciones de filtración pueden mejorar aún más el rendimiento de la estrategia.
/*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")