Diese Strategie ist eine verbesserte Version des von John Ehlers entwickelten RSI-Indikators.
Berechnen Sie den Preisdurchschnitt xValue mit 6 Balken.
Berechnen Sie auf der Grundlage von xValue die Summe CU23 nach oben und die Summe CD23 nach unten.
Der normalisierte RES-Wert nRes wird als CU23/(CU23 + CD23 berechnet.
Lange/kurze Signale erzeugen, indem nRes mit Schwellenwerten verglichen werden.
Option zur Umkehrung der Signale.
Eingabe von Long/Short basierend auf Signalen.
Die Strategie gleicht die RSI-Kurve effektiv aus, indem sie ihre Berechnung verbessert und falsche Signale bis zu einem gewissen Grad reduziert. Weitere Filterung und Parameteroptimierung können die Leistung verbessern.
/*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")