Cette stratégie est une version améliorée de l’indicateur RSI développé par John Ehlers. Son plus grand avantage est de réduire le retard et d’aplanir la courbe RSI.
La moyenne des 6 prix est calculée par xValue。
Le total des hausses est CU23 et le total des baisses est CD23 selon le calcul de xValue.
Calculer la valeur de résistance normalisée nRes, soit CU23/(CU23 + CD23)
La comparaison de la nRes avec les seuils supérieurs et inférieurs génère un signal de pluralité.
Option de retour en arrière.
Les échanges sont effectués en fonction des signaux.
La stratégie a effectivement aplatit la courbe en améliorant la façon dont le RSI est calculé, réduisant dans une certaine mesure les signaux de désinformation. La mise en place de paramètres d’optimisation et l’ajout d’autres conditions de filtrage peuvent améliorer encore la performance de la stratégie.
/*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")