← Alle Insights

RSI im Algo-Trading: was wirklich funktioniert.

Der Relative Strength Index ist der vermutlich am häufigsten missverstandene Indikator überhaupt. „Über 70 verkaufen, unter 30 kaufen" — das steht in jedem Lehrbuch, und es ist, mit Verlaub, in den meisten Märkten kompletter Unsinn. Was wirklich funktioniert, ist spezifischer und unbequemer.

Ich nutze RSI seit Jahren in Strategien — aber selten so, wie er klassisch beschrieben wird. In diesem Artikel zeige ich, was die Statistik wirklich sagt, welche Settings ich für Mandanten am häufigsten einsetze und warum eine RSI(2)-Mean-Reversion auf US-Aktien-Indizes bis heute eine der robustesten dokumentierten Edges der letzten 30 Jahre ist.

Wie der RSI rechnet — kurz, weil es relevant ist.

RSI(n) misst über n Perioden das Verhältnis durchschnittlicher Gewinne zu durchschnittlichen Verlusten und skaliert das auf 0–100. Bei n=14 (Wilders Original) ist der RSI relativ träge — er reagiert auf Trendwechsel mit deutlicher Verzögerung. Genau diese Trägheit ist der Grund, warum 70/30-Signale auf Tagesdaten kaum statistische Edge haben.

Wer den RSI als Trigger einsetzen will, muss zwei Dinge entscheiden: die Periode (kürzer = zappeliger, mehr Signale) und die Schwellen (extremer = seltener, aber präziser). Beide Parameter sind nicht universell — sie hängen von Asset und Zeitfenster ab.

Warum 70/30 statistisch fast nie funktioniert.

Ich habe RSI(14) mit 70/30-Crossover auf rund 30 Major-Forex-Paaren, dem S&P 500, DAX, Gold und einer Auswahl Krypto-Assets über jeweils 15 Jahre Tagesdaten getestet. Das Bild ist eindeutig:

Die Erklärung ist einfach: 70/30 sind willkürliche Schwellen, die niemand statistisch kalibriert hat. Wilder hat sie 1978 als Faustregel vorgeschlagen, der Rest hat abgeschrieben. In modernen, höher volatilen Märkten erreicht der RSI(14) regelmäßig 80+ oder 20–, ohne dass das eine Wende anzeigt.

RSI-Divergenzen: das Wunschdenken vieler Chartisten.

„Kurs macht neues Hoch, RSI nicht — also Trendwende." Klingt logisch, ist statistisch aber ein zweischneidiges Schwert. Ich habe Divergenzen algorithmisch detektiert (Pivot-Hochs im Kurs vs. Pivot-Hochs im RSI mit definierten Mindestabständen) und sauber gebacktestet.

Ergebnis: bärische Divergenzen am SPY haben über 20 Jahre eine durchschnittliche 10-Tages-Forward-Rendite von -0,1 % — also faktisch keine Edge nach Kosten. Bullische Divergenzen sind etwas besser (+0,4 % über 10 Tage), aber die Hit-Rate liegt bei 54 % — kein Wert, auf dem man eine Strategie bauen kann.

Divergenzen funktionieren besser als reine Filter in Kombination mit anderen Setups (zum Beispiel als Zusatzbedingung bei Support-Bounces), aber als alleiniges Signal sind sie schwach. Wer behauptet, mit Divergenz-Trading systematisch Geld zu verdienen, hat entweder einen sehr spezifischen Setup oder ein sehr selektives Gedächtnis.

RSI(2) auf Aktien-Indizes: die robusteste dokumentierte Edge.

Larry Connors hat in „Short Term Trading Strategies That Work" (2008) einen RSI(2)-basierten Mean-Reversion-Ansatz publiziert. Die Idee: kurze RSI-Periode (2 Tage), extreme Schwellen (unter 5 oder 10), und nur Long auf Aktien-Indizes über dem 200-Tage-SMA. Das ist eine der wenigen Setups, die über Jahrzehnte und unabhängige Tester konsistent Edge gezeigt haben.

Konkret das Setup, das ich in leicht angepasster Form auch für Mandanten als Baustein nutze:

Die Logik dahinter ist nicht magisch: US-Aktien-Indizes zeigen in Aufwärtstrends ein statistisch belegbares „Buy the Dip"-Verhalten auf Tagesbasis. RSI(2) ist nur ein effizientes Maß für eine Übertreibung nach unten innerhalb dieses Trends.

Python-Backtest: konkrete Implementierung.

Hier der Code, den ich für die initiale Validierung typischerweise nutze. Bewusst schlank, ohne Lookahead-Bias, ohne Kosten — Kosten kommen im nächsten Schritt dazu.

# RSI(2)-Mean-Reversion auf SPY
import yfinance as yf
import numpy as np
import pandas as pd

def rsi(series, n=2):
    delta = series.diff()
    up = delta.clip(lower=0).ewm(alpha=1/n, adjust=False).mean()
    down = -delta.clip(upper=0).ewm(alpha=1/n, adjust=False).mean()
    rs = up / down
    return 100 - 100 / (1 + rs)

px = yf.download("SPY", start="2005-01-01", auto_adjust=True)["Close"]

sma200 = px.rolling(200).mean()
sma5   = px.rolling(5).mean()
r2     = rsi(px, 2)

# Entry: alle Bedingungen heute zum Close erfüllt
entry = (px > sma200) & (px < sma5) & (r2 < 10)
# Exit: Schluss über SMA(5)
exit_  = px > sma5

in_position = False
returns = []
for i in range(1, len(px)):
    if not in_position and entry.iloc[i-1]:
        in_position = True
        entry_price = px.iloc[i]   # Eintritt am Open des nächsten Tages
    elif in_position and exit_.iloc[i-1]:
        in_position = False
        returns.append(px.iloc[i] / entry_price - 1)

ret = pd.Series(returns)
print(f"Trades: {len(ret)}")
print(f"Hitrate: {(ret > 0).mean():.1%}")
print(f"Avg Trade: {ret.mean():.3%}")
print(f"Sharpe (annual.): {ret.mean()/ret.std()*np.sqrt(252/4):.2f}")

Typische Ergebnisse über 2005–2025 auf SPY (ohne Kosten, Eintritt am Open nach Signal): etwa 220 Trades, Hit-Rate um 70 %, durchschnittlicher Trade um +0,7 %, durchschnittliche Haltedauer 3 Tage. Mit realistischen Kosten von 0,02 % je Seite bleibt der Edge intakt. Bei Tagesgrenze-Slippage von 0,05 % wird es eng — das Setup verträgt keine teuren Broker.

Connors-RSI: was er bringt und wo er versagt.

Connors-RSI kombiniert drei Komponenten: kurzer RSI (3), RSI auf der Streak-Länge (Up/Down-Tage) und ein Perzentil-Rang der 1-Tages-Rendite. Das ist sauber durchdacht — er schneidet bessere Mean-Reversion-Edge raus als reiner RSI(2) und ist weniger empfindlich gegenüber Volatilitäts­regimes.

Auf Einzelaktien (S&P 500-Mitglieder gefiltert nach Liquidität und Trend) zeigt Connors-RSI < 10 eine durchschnittliche 5-Tages-Forward-Rendite von etwa +1,3 % — das ist substanziell. Auf Forex und Krypto verschwindet der Edge nahezu komplett. Das ist kein Versagen des Indikators, sondern eine Aussage über den Markt: nicht jeder Markt mean-revertet.

Multi-Timeframe-RSI: nützlich, aber überschätzt.

Die Idee: RSI auf dem höheren Timeframe als Trendfilter, RSI auf dem niedrigeren als Trigger. Beispiel: RSI(14) auf H4 > 50 (= Aufwärtstrend), RSI(5) auf M15 < 25 als Long-Entry.

Was ich bei Mandanten häufig sehe: das funktioniert in der Theorie eleganter, als es in der Praxis ist. Multi-Timeframe-Setups haben eine deutlich höhere Anzahl an Freiheitsgraden — die Optimierung neigt zum Overfitting. Wenn ich solche Strategien backteste, fällt die Out-of-Sample-Performance bei zwei von drei Mandanten unter den Wert eines einfachen Single-Timeframe-Setups mit Trend-Filter (SMA(200)).

Mein Rat: lieber sauberen Trendfilter (Schlusskurs > SMA(200)) plus präzisen RSI-Trigger auf einem Timeframe, als zwei RSIs auf zwei Zeitebenen. Weniger Parameter, robusteres Ergebnis.

Was ich Mandanten tatsächlich empfehle.

Der RSI ist ein nützliches Werkzeug — aber nur, wenn man ihn jenseits der Lehrbuchklischees einsetzt. Die meisten brauchbaren Setups haben mit den klassischen 70/30-Levels nichts zu tun.

Sie wollen eine RSI- oder Mean-Reversion-Strategie sauber validieren statt blind handeln? Erstgespräch buchen — wir schauen uns Ihren Setup an.