
Die RSI-Random-RSI-Abweichung-Trading-Strategie ist eine High-Tech-Analysemethode, die speziell für die Identifizierung von wichtigen Wendepunkten in den Märkten entwickelt wurde. Die Strategie kombiniert die Stärke der relativ starken Indikatoren (RSI) und der zufällig starken Indikatoren (SRSI) und prognostiziert potenzielle Trendänderungen durch die Überwachung des Preisrückgangs zwischen diesen dynamischen Indikatoren.
Die Kernprinzipien der Strategie basieren auf dem Konzept der Abweichungen in der technischen Analyse. Abweichungen, die auftreten, wenn die Preisentwicklung nicht mit der Entwicklung der technischen Indikatoren übereinstimmt, deuten normalerweise darauf hin, dass die aktuelle Tendenz möglicherweise bald umgekehrt ist. Die Strategie konzentriert sich auf vier Arten von Abweichungen:
Die Strategie nutzt strenge Filterbedingungen, um die Qualität der abweichenden Signale zu gewährleisten:
Wenn eine Abweichung erkannt wird, zeichnet die Strategie Etiketten und Verbindungslinien auf die Diagramme, so dass der Händler diese wichtigen Signale intuitiv erkennen kann. Außerdem erzeugt die Strategie automatisch Eintrittssignale für Über- und Abweichungen auf der Grundlage von Abweichungen.
Um diese Risiken zu verringern, wird empfohlen:
Die RSI versus Random RSI Abweich-Trading-Strategie ist ein komplexes und leistungsfähiges technisches Analyse-Tool, das potenzielle Marktumkehr- und Trend-Fortsetzung-Signale durch die Identifizierung von Ungereimtheiten zwischen Preis- und Dynamik-Indikatoren erfasst. Die Strategie bietet eine umfassende Methode zur Identifizierung von hochprobablen Handelsmöglichkeiten durch die Integration von regulären und versteckten Abweich-Erkennungen und die Anwendung von sorgfältig entwickelten Filtern.
Wie bei allen Methoden der technischen Analyse hat diese Strategie jedoch auch ihre Grenzen und Risiken. Durch die Umsetzung von Empfehlungen zur Optimierung, wie zum Beispiel durch die Hinzufügung von Risikomanagementmechanismen, verbesserte Signalerkennung und integrierte Anpassung der dynamischen Parameter, kann die Stabilität und Leistung der Strategie erheblich verbessert werden.
Letztendlich eignet sich diese Strategie am besten als Teil eines breiteren Handelssystems in Kombination mit anderen Analysewerkzeugen und geeigneten Geldmanagementprinzipien. Für Händler, die technische Analyse und Marktstrukturen verstehen, kann diese Abweichung von der Strategie ein wertvolles Werkzeug sein, um hochwertige Handelssätze zu entdecken.
/*backtest
start: 2024-06-26 00:00:00
end: 2025-06-24 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("RSI Divergence Strategy", overlay=true)
//strategy("RSI & SRSI Divergence Strategy with EMA & Min Swing Filter + Price Chart Lines", overlay=true)
rsiLength = input.int(14, title="RSI Length")
srsiLength = input.int(14, title="Stochastic RSI Length")
kLength = input.int(3, title="%K Length")
dLength = input.int(3, title="%D Length")
emaLength = input.int(200, title="EMA Length")
lookback = input.int(40, title="Lookback Period for Divergence")
minSwingDistPercent = input.float(1.5, title="Minimum Swing Distance (%)")
minPriceMovePercent = input.float(0.5, title="Minimum Price Move from Last Swing (%)")
rsi = ta.rsi(close, rsiLength)
srsi = ta.stoch(rsi, rsi, rsi, srsiLength)
k = ta.sma(srsi, kLength)
d = ta.sma(k, dLength)
ema200 = ta.ema(close, emaLength)
// === Bullish Regular Divergence ===
var float lastLowPrice = na
var float lastLowRsi = na
var float lastLowSrsi = na
var int lastLowIndex = na
bullishDiv = false
if ta.lowestbars(low, lookback) == 0
if not na(lastLowPrice) and not na(lastLowRsi) and not na(lastLowSrsi)
swingDistLow = math.abs(low - lastLowPrice) / lastLowPrice * 100
priceMoveLow = math.abs(low - lastLowPrice) / lastLowPrice * 100
if swingDistLow >= minSwingDistPercent and priceMoveLow >= minPriceMovePercent
if (low < lastLowPrice and rsi > lastLowRsi) or (low < lastLowPrice and k > lastLowSrsi)
bullishDiv := true
lastLowPrice := low
lastLowRsi := rsi
lastLowSrsi := k
lastLowIndex := bar_index
else
lastLowPrice := low
lastLowRsi := rsi
lastLowSrsi := k
lastLowIndex := bar_index
// === Bearish Regular Divergence ===
var float lastHighPrice = na
var float lastHighRsi = na
var float lastHighSrsi = na
var int lastHighIndex = na
bearishDiv = false
if ta.highestbars(high, lookback) == 0
if not na(lastHighPrice) and not na(lastHighRsi) and not na(lastHighSrsi)
swingDistHigh = math.abs(high - lastHighPrice) / lastHighPrice * 100
priceMoveHigh = math.abs(high - lastHighPrice) / lastHighPrice * 100
if swingDistHigh >= minSwingDistPercent and priceMoveHigh >= minPriceMovePercent
if (high > lastHighPrice and rsi < lastHighRsi) or (high > lastHighPrice and k < lastHighSrsi)
bearishDiv := true
lastHighPrice := high
lastHighRsi := rsi
lastHighSrsi := k
lastHighIndex := bar_index
else
lastHighPrice := high
lastHighRsi := rsi
lastHighSrsi := k
lastHighIndex := bar_index
// === Bullish Hidden Divergence ===
bullishHiddenDiv = false
if ta.lowestbars(low, lookback) == 0
if not na(lastLowPrice) and not na(lastLowRsi) and not na(lastLowSrsi)
swingDistLowHidden = math.abs(low - lastLowPrice) / lastLowPrice * 100
priceMoveLowHidden = math.abs(low - lastLowPrice) / lastLowPrice * 100
if swingDistLowHidden >= minSwingDistPercent and priceMoveLowHidden >= minPriceMovePercent
if (low > lastLowPrice and rsi < lastLowRsi) or (low > lastLowPrice and k < lastLowSrsi)
bullishHiddenDiv := true
// === Bearish Hidden Divergence ===
bearishHiddenDiv = false
if ta.highestbars(high, lookback) == 0
if not na(lastHighPrice) and not na(lastHighRsi) and not na(lastHighSrsi)
swingDistHighHidden = math.abs(high - lastHighPrice) / lastHighPrice * 100
priceMoveHighHidden = math.abs(high - lastHighPrice) / lastHighPrice * 100
if swingDistHighHidden >= minSwingDistPercent and priceMoveHighHidden >= minPriceMovePercent
if (high < lastHighPrice and rsi > lastHighRsi) or (high < lastHighPrice and k > lastHighSrsi)
bearishHiddenDiv := true
// === PLOTS ===
plot(ema200, title="EMA 200", color=color.purple, linewidth=2)
// === STRATEGY ENTRIES ===
if bullishDiv or bullishHiddenDiv
strategy.entry("Long", strategy.long)
if bearishDiv or bearishHiddenDiv
strategy.entry("Short", strategy.short)