
Der RSI-Trend-Abweichung-Strategie-Indikator ist ein hochwertiges quantitatives Trading-Tool, das die Abweichung zwischen dem relativ starken Index (RSI) und dem Preis nutzt, um Händlern ein hochprobables Kauf- und Verkaufssignal zu geben. Die Strategie wurde speziell für den 30-Minuten-Zeitrahmen optimiert, um Marktwendepunkte durch genau berechnete RSI-Ein- und Ausstiegsniveaus in Kombination mit Bären- und Bären-Abweichungssignalen effektiv zu identifizieren.
Der RSI-Trend ist abweichend von der Strategie, die auf der Synergie zweier Kerntechniken basiert:
Relativ starke Indikatoren (RSI) Überkauf/ÜberverkaufDie Strategie erlaubt es dem Benutzer, die Ein- und Ausstiegsniveaus des RSI anzupassen. Die Standard-Einstellungen sind 35.0 für den Mehrkopf-Ein- und 76.0 für den Mehrkopf-Ein- und 80.0 für den Mehrkopf-Ein- und 54.1 für den Mehrkopf-Ein- und 54.1. Diese Ebenen wurden durch jahrelange Erfahrung getestet und für den 30-Minuten-Zeitrahmen optimiert.
RSI abweicht vom SignalEs gibt zwei Arten von Abweichungen:
Die Strategie wird folgendermaßen ausgeführt:
Das System erkennt Abweichungen, indem es die Daten der 5 Säulen zurückverfolgt, und erzeugt automatisch ein Handelssignal, wenn die Bedingungen erfüllt werden, was die Notwendigkeit einer manuellen Analyse erheblich reduziert.
HochpräzisionsfilterDurch die Kombination von RSI-Levels und Preisabweichungen werden schwache Signale effektiv gefiltert und nur bei hochprobablen Wendepunkten getrifft, was die Erfolgsrate erhöht.
Stärkere AnpassungsfähigkeitDer Händler kann die Ein- und Ausstiegswerte des RSI an die Eigenschaften der verschiedenen Märkte und Zeitrahmen anpassen, um die Strategie-Performance zu optimieren. Diese Flexibilität macht es für verschiedene Handelsvarianten und Zeiträume geeignet.
Intuitive visuelle HilfeDie Strategie bietet zahlreiche visuelle Elemente, darunter:
Das Potenzial für automatisierte TransaktionenEs wird auch die Integration mit externen Handelsplattformen durch die Webhook-Funktionalität von TradingView unterstützt, um die automatische Ausführung von Geschäften zu ermöglichen und die Einmischung von Menschen und Emotionen zu reduzieren.
Open Source und TransparenzDer Code der Strategie ist vollständig open source und erlaubt es den Händlern, die Funktionsweise der Strategie zu erforschen und sie entsprechend ihrer Bedürfnisse zu ändern und zu optimieren.
MarkttrendrisikenDie Strategie hat gute Ergebnisse bei der Identifizierung von Wendepunkten, kann aber in einem stark trendigen Markt falsche Signale erzeugen. Die Reliabilität von Mehrkopfsignalen wird insbesondere bei starken Abwärtstrends oder Bärenmärkten deutlich reduziert.
ParameterempfindlichkeitDie Einstellungen der RSI-Ein- und Ausstiegsstufe haben einen erheblichen Einfluss auf die Strategie. Unpassende Parameter-Einstellungen können zu übertriebenen Geschäften oder verpassten wichtigen Gelegenheiten führen. Die Lösung besteht darin, die Parameter für bestimmte Märkte und Zeitrahmen zu optimieren.
Die Gefahr der VerzögerungDie Strategie verwendet die rückläufigen Indikatoren (RSI) und die Notwendigkeit, auf eine Abweichung von der Formation zu warten, was dazu führen kann, dass der Einstiegspunkt nicht optimal ist, insbesondere in stark volatilen Märkten.
Falsche DurchbruchgefahrEs ist empfehlenswert, ein Bestätigungssignal in Verbindung mit anderen technischen Indikatoren oder einem höheren Zeitrahmen zu verwenden.
Einfluss von Provisionen und GleitpunktenDie Strategie setzt die Provision von 0,1% als Standard ein, aber die Provision und der Gleitpunkt in den tatsächlichen Geschäften können von den festgelegten Werten abweichen, was die tatsächlichen Rückmessergebnisse und die tatsächliche Handelsperformance beeinflusst.
Integration von mehreren ZeitrahmenDie Strategie wurde auf ein mehrzeitliches Analyse-System ausgeweitet, das nur dann einen Handel ausführt, wenn die Richtung des Trends in den höheren Zeiträumen mit dem Abweichsignal übereinstimmt. So wird beispielsweise nur dann ein mehrstufiger Handel ausgeführt, wenn der Tagesgraph einen Aufwärtstrend zeigt und der 30-Minuten-Chart eine Abweichung aufweist.
Erhöhung der Filter für die TransaktionsvolumenDie Signalzuverlässigkeit wird dadurch verbessert, dass die Bestätigung der Transaktionsmenge bei der Abweichung von der Signalbildung erhöht wird. Zum Beispiel kann überprüft werden, ob die Transaktionsmenge bei der Abweichung von der Signalbildung eine Abweichungs- oder Bestätigungsmodell darstellt.
Anpassung der RSI-ParameterEntwicklung von Adaptionsalgorithmen, die die Ein- und Ausstiegswerte des RSI automatisch an die Marktvolatilität anpassen, um sie an unterschiedliche Marktbedingungen anzupassen.
Optimierung der Stop-Loss-MechanismenDie derzeitige Strategie besteht darin, nur auf RSI-Niveaus auszugehen und einen preisbasierten Stop-Loss-Mechanismus zu verwenden, um den maximalen Verlust eines einzelnen Handels zu begrenzen.
Mehr Filter für die MarktumgebungDer Trend-Integration-Indikator (wie beispielsweise ein Moving Average oder ein ADX), der nur in der richtigen Marktumgebung in eine bestimmte Richtung handelt, und der Abwehr von Gegenwärtigem Handel.
Maschinelle LernoptimierungDie Analyse der historischen Daten mit Hilfe von Algorithmen zur automatischen Identifizierung der optimalen RSI-Parameter und Abweichungen von den Bestätigungsbedingungen verbessert die Strategie-Performance.
Der RSI Trend-Abweichung-Strategie-Indikator ist ein leistungsfähiges quantitatives Trading-Tool, das Marktwendepunkte durch die Kombination von RSI-Indikatoren und Preis-Abweichungen effektiv identifiziert. Der größte Vorteil der Strategie liegt in seiner hohen Anpassbarkeit und intuitiven visuellen Unterstützung, die es dem Händler ermöglicht, seine Handelsentscheidungen entsprechend der unterschiedlichen Marktbedingungen zu optimieren.
Der Kernwert der Strategie liegt in ihrer Fähigkeit, Signale zu filtern, die die Qualität der Handelssignale erheblich verbessern, indem sie nur dann einen Handel auslösen, wenn der RSI auf einem bestimmten Niveau ist und gleichzeitig eine Preisentfremdung auftritt. Die Benutzer müssen jedoch auf die Risiken und die Sensitivität der Parameter für Markttrends achten und die optimalen Parameter für einen bestimmten Markt und einen bestimmten Zeitrahmen durch Rückmessung finden.
Die Strategie hat das Potenzial, ihre Leistung und Anpassungsfähigkeit durch Optimierungen wie Multi-Time-Frame Analysis, Transaktionsmengenbestätigung, Anpassungsparameter und erweiterte Risikomanagementmechanismen weiter zu verbessern. Für Trader, die eine quantitative Handelsstrategie suchen, die von technischen Kennzahlen getrieben wird, ist dies ein Werkzeug, das es wert ist, eingehend erforscht und angewendet zu werden.
/*backtest
start: 2024-06-13 00:00:00
end: 2025-06-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy(title="RSI Divergence Strategy", shorttitle="RSI Divergence Strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.1, slippage=0, initial_capital=100000, currency=currency.USD, process_orders_on_close=false)
// RSI Settings
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
calculateDivergence = input.bool(true, title="Calculate Divergence", group="RSI Settings", tooltip="Required for divergence signals")
// Added RSI Level Inputs
longEntryLevel = input.float(35.0, "Long Entry RSI", minval=0, maxval=100, step=0.1, group="RSI Levels")
shortEntryLevel = input.float(76.0, "Short Entry RSI", minval=0, maxval=100, step=0.1, group="RSI Levels")
longExitLevel = input.float(80.0, "Long Exit RSI", minval=0, maxval=100, step=0.1, group="RSI Levels")
shortExitLevel = input.float(54.1, "Short Exit RSI", minval=0, maxval=100, step=0.1, group="RSI Levels")
// RSI Calculation
change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
// Divergence Parameters
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5
_inRange(bool cond) =>
bars = ta.barssince(cond)
rangeLower <= bars and bars <= rangeUpper
var bool plFound = false
var bool phFound = false
var bool bullCond = false
var bool bearCond = false
// Global variables to store _inRange results
var bool inRangePlFound = false
var bool inRangePhFound = false
rsiLBR = rsi[lookbackRight]
// Update _inRange results on every bar
inRangePlFound := _inRange(plFound[1])
inRangePhFound := _inRange(phFound[1])
if calculateDivergence
// Regular Bullish Divergence
plFound := not na(ta.pivotlow(rsi, lookbackLeft, lookbackRight))
rsiHL = rsiLBR > ta.valuewhen(plFound, rsiLBR, 1) and inRangePlFound
lowLBR = low[lookbackRight]
priceLL = lowLBR < ta.valuewhen(plFound, lowLBR, 1)
bullCond := priceLL and rsiHL and plFound
// Regular Bearish Divergence
phFound := not na(ta.pivothigh(rsi, lookbackLeft, lookbackRight))
rsiLH = rsiLBR < ta.valuewhen(phFound, rsiLBR, 1) and inRangePhFound
highLBR = high[lookbackRight]
priceHH = highLBR > ta.valuewhen(phFound, highLBR, 1)
bearCond := priceHH and rsiLH and phFound
// Strategy Entries with customizable RSI levels
if bullCond and rsi < longEntryLevel
strategy.entry("Long", strategy.long)
if bearCond and rsi > shortEntryLevel
strategy.entry("Short", strategy.short)
// Strategy Exits with customizable RSI levels
if rsi >= longExitLevel
strategy.close("Long")
if rsi <= shortExitLevel
strategy.close("Short")
// ———————— Visualizations ———————— //
// Plot RSI line
rsiColor = rsi > 70 ? color.new(#ff5252, 0) : rsi < 30 ? color.new(#4bf335, 0) : color.new(#b8b8b8, 0)
plot(rsi, title="RSI", color=rsiColor, linewidth=2, style=plot.style_line)
// Plot horizontal levels
hline(longEntryLevel, "Long Entry", color=color.new(#4bf335, 0), linestyle=hline.style_solid)
hline(shortEntryLevel, "Short Entry", color=color.new(#ed1404, 0), linestyle=hline.style_solid)
hline(longExitLevel, "Long Exit", color=color.new(#4bf335, 0), linestyle=hline.style_dashed)
hline(shortExitLevel, "Short Exit", color=color.new(#ed1404, 0), linestyle=hline.style_dashed)
// Plot traditional levels
ob = 70
os = 30
hline(ob, "Overbought", color=color.new(#ff5252, 70), linestyle=hline.style_dotted)
hline(os, "Oversold", color=color.new(#4bf335, 70), linestyle=hline.style_dotted)
// Background colors
bgcolor(rsi >= ob ? color.new(#ff5252, 90) : na)
bgcolor(rsi <= os ? color.new(#4bf335, 90) : na)
bgcolor(rsi > os and rsi < ob ? color.new(#424242, 95) : na)
// ———————— DIVERGENCE VISUALS ———————— //
// Position labels below RSI for bullish, above for bearish
bullLabelY = math.max(0, rsi[lookbackRight] - 15) // Position below RSI line
bearLabelY = math.min(100, rsi[lookbackRight] + 15) // Position above RSI line
// CORRECTED: Pass y-coordinate as first argument for absolute positioning
plotshape(bullCond ? bullLabelY : na, title="Bullish Divergence", text="BULL", style=shape.labelup,
location=location.absolute, color=color.new(#4bf335, 50), textcolor=color.white,
size=size.tiny, offset=-lookbackRight)
plotshape(bearCond ? bearLabelY : na, title="Bearish Divergence", text="BEAR", style=shape.labeldown,
location=location.absolute, color=color.new(#ed1404, 50), textcolor=color.white,
size=size.tiny, offset=-lookbackRight)