Momentum-Indikator RSI Umkehrhandelsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-03 12:09:48
Tags:

img

Übersicht

Diese Strategie berechnet zuerst ADX und SMA in höheren Zeitrahmen, um die Trendrichtung und Veränderungen zu identifizieren. Dann wird der RSI in niedrigeren Zeitrahmen berechnet, um Überkauf- und Überverkaufszustände zu identifizieren, um Handelssignale zu generieren.

Strategie Logik

  1. ADX auf höheren Zeitrahmen beurteilt die Stärke des Trends.

  2. Bei höheren Zeitrahmen beurteilt der SMA die Richtung des Trends.

  3. Der RSI in niedrigeren Zeitrahmen beurteilt Überkauf- und Überverkaufszustände.

  4. Wenn der ADX steigt, der SMA steigt und der RSI in einem niedrigeren Zeitrahmen überkauft ist, gilt der Aufwärtstrend als stärker.

  5. Wenn der ADX steigt, der SMA fällt und der RSI in einem niedrigeren Zeitrahmen überverkauft ist, wird der Abwärtstrend als stärker angesehen.

Analyse der Vorteile

  1. Kombiniert Trendbeurteilung und Umkehrhandel, kann Umkehrchancen in wichtigen Trends erfassen.

  2. Nutzt Indikatoren über Zeitrahmen hinweg, verbessert die Zuverlässigkeit der Signale.

  3. Die RSI-Strategie ist einfach zu verstehen und umzusetzen.

Risikoanalyse

  1. Das Potenzial für falsche RSI-Signale, was zu Verlustgeschäften führt.

  2. Ein wichtiges Zyklus-Trend-Urteil kann falsch sein und die Strategie nicht für die Marktbedingungen geeignet machen.

  3. Potenziell hohe Handelsfrequenz, die sich aufgrund von Transaktionskosten auf die Rentabilität auswirkt.

Optimierungsrichtlinien

  1. Testen Sie mehr Parameterkombinationen, um eine optimale Übereinstimmung zwischen RSI- und ADX- und SMA-Parametern zu finden.

  2. Hinzufügen eines Stop-Loss-Mechanismus zur Kontrolle von Einzelverlusten.

  3. Es ist zu berücksichtigen, dass der Volatilitätsindikator zur Verringerung der Positionsgröße verwendet wird, wenn die Volatilität gering ist.

  4. Optimieren Sie spezifische Einstiegs- und Ausstiegspreise, z. B. kurz gehen, wenn Sie die vorherigen Höhen durchbrechen.

Schlussfolgerung

Diese Strategie kombiniert Trendbeurteilung und Umkehrsignale, um lokale Umkehrungen innerhalb großer Trends zu finden. Verglichen mit der ausschließlichen Verwendung des RSI ist sie zuverlässiger und vermeidet, gefangen zu werden. Insgesamt ist es eine relativ konservative Strategie, die für Anleger geeignet ist, die falsche Signale reduzieren möchten. Weitere Parameterprüfung und Mechanismusoptimierung können die Strategieleistung verbessern.


/*backtest
start: 2022-12-27 00:00:00
end: 2024-01-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("RSI scalping", overlay=true)

CustSession 	= input(defval=true,title= "Custom Resolution / TF ? ",type=bool)
SessionTF0	= input(title="Custom Resolution / TF", defval="180")
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
length = input(7, title= "RSI length")
overSold = input( 28, title= "RSI oversold" )
overBought = input( 68, title= "RSI overbought" )

RSI = rsi(close, 7)

res		=	CustSession ? SessionTF0 : period

o = request.security(syminfo.tickerid, res, open)
c = request.security(syminfo.tickerid, res, close)
l = request.security(syminfo.tickerid, res, low)
h = request.security(syminfo.tickerid, res, high)

 // ADX higher time frame
dirmov(len) =>
	up = change(h)
	down = -change(l)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    truer = request.security(syminfo.tickerid, res, tr)
	truerange = rma(truer, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)

sig = adx(dilen, adxlen)

// SMA higher time frame
len = input(20, minval=1, title="SMA HTF Length")
smma = 0.0
smma := na(smma[1]) ? sma(c, len) : (smma[1] * (len - 1) + c) / len

ADXrising = (sig > sig[1]) and (sig[1] > sig[2]) and (sig[2]  > sig[3]) and (sig > 15)
SMAdrop= (smma < smma[1]) and (smma[1] < smma[2]) and (smma[2] < smma[3])
SMArising = (smma > smma[1]) and (smma[1] > smma[2]) and (smma[2] > smma[3])
longCondition = crossover(RSI, overBought) and ADXrising and SMArising
shortCondition = crossunder(RSI, overSold) and SMAdrop and ADXrising 

if (longCondition)
    strategy.entry("Long entry", strategy.long)

if (shortCondition)
    strategy.entry("Short Entry", strategy.short)

Mehr