Cette stratégie est une version améliorée de l'indicateur RSI développé par John Ehlers.
Calculer la moyenne de prix xValue en utilisant 6 barres.
Calculer la somme à la hausse CU23 et la somme à la baisse CD23 sur la base de xValue.
La valeur normalisée des RES nRes est calculée comme CU23/(CU23 + CD23).
Générer des signaux longs/courts en comparant les nRes aux seuils.
Option pour inverser les signaux.
Entrez long/short en fonction des signaux.
La stratégie aplanit efficacement la courbe RSI en améliorant son calcul, réduisant les faux signaux dans une certaine mesure. Un filtrage et une optimisation des paramètres supplémentaires peuvent améliorer les performances. Mais un certain retard persiste en tant que système de momentum. Dans l'ensemble, un système de rupture simple et fiable mérite d'être recherché et optimisé.
/*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")