
Die Strategie nutzt die Kreuzung des RSI-Indikators mit seiner Durchschnittslinie als Handelssignal und gehört zu den üblichen Dynamik-Indikator-Strategien. Ihr Kernprinzip besteht darin, die Differenz zwischen dem RSI-Indikator und dem einfachen Moving Average SMA_RSI des RSI zu verfolgen und dann den einfachen Moving Average SMA_RSI2 für diese Differenz zu berechnen.
Die Strategie verwendet 3 Parameter, um den RSI-Indikator mit seinen zwei verschiedenen Perioden zu berechnen. Zuerst wird der reguläre RSI-Indikator mit der Periode length berechnet. Dann wird der RSI mit dem SMA_RSI für die Periode length2 berechnet.
Auf diese Weise entsteht ein Handelsstrategie-Signal, das auf der Durchschnittslinie des RSI basiert. Da SMA_RSI2 die Durchschnittslinie der Differenzdelta ist, kann es die Dynamik und die Veränderungstrends des RSI-Indikators widerspiegeln und die Essenz des RSI-Indikators selbst erfassen.
Die Strategie kombiniert die Vorteile des RSI-Indikators mit seiner Gleichung und ist in der Lage, dem Preistrend zu folgen und sich nicht vom Lärm abzulenken. Die Verwendung eines differenzierten Delta-Gleichungsmodells macht die Handelssignale klarer. Insgesamt ist die Strategie weniger rückläufig und erzielt stabile Gewinne.
Die Vorteile sind:
Die Strategie birgt auch einige Risiken, die sich in folgenden Punkten widerspiegeln:
Es gibt einige Punkte, die verbessert werden können:
Diese Strategie ist insgesamt relativ einfach und allgemein und erhöht die Praktikabilität des RSI-Indikators selbst durch die Differenzberechnung, nutzt die Gleichgewichtskreuzung für die Beurteilung und ist eine sehr praktische Dynamikindikatorstrategie.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy ("RSI&SMA", overlay=false )
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end = timestamp((9999), (1), (1), 0, 0)
_testPeriod() => true
length = input(3, minval=1, title = "RSI period")
length2 = input(21, minval=1, title = "RSI SMA-1")
length3 = input(13, minval=1, title = "RSI SMA-2")
threshold = input(0,step=0.5, title="Threshold")
filter = input(false, title="Use filter?")
up = rma (max (change (close), 0), length)
down = rma (-min (change (close), 0), length)
RSI = down == 0? 100: up == 0? 0: 100-100 / (1 + up / down)
SMA_RSI = sma(RSI, length2)
delta = RSI-SMA_RSI
SMA_RSI2 = sma(delta, length3)
Long = crossover(SMA_RSI2, threshold)
Short = crossunder(SMA_RSI2, threshold)
plot(threshold, color=color.silver)
plot(SMA_RSI2, color= SMA_RSI2 > 0 ? color.blue : color.purple)
//plot(SMA_RSI, color=color.green)
//plot(delta, color=color.red)
long_condition = Long and (filter ? close > ema(close, 200) : true) and _testPeriod()
strategy.entry('BUY', strategy.long, when=long_condition)
short_condition = Short
strategy.close('BUY', when=short_condition)