Rate of Change (ROC): Momentum in seiner reinsten Form.
Wenn ich einen einzigen Indikator behalten dürfte, wäre es der Rate of Change. Keine Glättung, keine Skalierung, keine versteckten Annahmen — nur die prozentuale Preisänderung über N Perioden. Der RSI ist eleganter, der MACD beliebter, aber der ROC ist die ehrlichste Messung dessen, was Momentum mathematisch eigentlich bedeutet.
Die Mechanik in einer Zeile.
Die Definition des ROC ist trivial:
ROC[t, N] = (price[t] - price[t - N]) / price[t - N] * 100 N = Lookback in Bars (klassisch 10, 14 oder 20)
Mehr ist es nicht. Wenn der Schlusskurs heute 5 % über dem Schlusskurs vor zehn Tagen liegt, steht der ROC(10) bei +5. Die Einheit ist Prozent, die Skala ist linear, die Aussage ist direkt. Es gibt keine 0–100-Begrenzung wie beim RSI, keine EMA-Glättung wie beim MACD und keine zwei Parameter, die gegeneinander tunen.
Vorteile gegenüber RSI.
Der RSI ist auf ein Intervall von 0–100 normalisiert. Diese Normalisierung ist zwar bequem zum Visualisieren, sie versteckt aber Information. Ein RSI(14) von 75 bei einem schwach trendenden Asset und ein RSI(14) von 75 bei einem stark trendenden Asset bedeuten unterschiedliche Dinge — die Normalisierung macht sie nicht vergleichbar, sondern täuscht Vergleichbarkeit nur vor.
Der ROC kennt diese Komprimierung nicht. Ein ROC(10) von +12 sagt etwas substantiell anderes als ein ROC(10) von +3 — und zwar genau zwölf gegen drei Prozent. Beim asset-übergreifenden Vergleich, beim Stack-Ranking für Momentum-Strategien und beim Setzen absoluter Schwellen ist diese Linearität ein entscheidender Vorteil.
Der praktische Preis dieser Ehrlichkeit ist, dass es keine universellen Überkauft-/Überverkauft-Marken gibt. ROC-Werte über +10 sind in Mega-Cap-Aktien ein starkes Signal, in Small-Caps oder Krypto unspektakulär. Wer mit ROC arbeitet, muss seine Schwellen pro Asset (oder pro Volatilitäts-Bucket) kalibrieren — was der Indikator nicht versteckt, sondern offenlegt.
Zero-Line-Crossings als Trend-Signal.
Die einfachste ROC-Anwendung ist das Zero-Line-Crossing. ROC > 0 bedeutet mathematisch: der Preis heute liegt über dem Preis vor N Bars. ROC < 0 bedeutet das Gegenteil. Ein Wechsel des Vorzeichens ist ein klares Trend-Wechsel-Signal — schlicht, aber statistisch nicht uninteressant.
In meinen Backtests auf S&P-500-Komponenten 2010–2024 produziert ein reines ROC(20)-Zero-Crossing-System mit Stop am ATR(14) auf Tagesbasis eine Trefferquote um 46 %, ein R/R von 1.32 und einen Profit-Faktor knapp über 1.10. Das ist nicht spektakulär, aber bemerkenswert: ein einzeiliger Indikator schlägt nach Kosten den Markt nicht — schlägt aber zufälliges Long-Short-Trading deutlich, und liefert eine Baseline, gegen die man komplexere Setups testen kann.
Divergenzen.
Wie jeder Momentum-Indikator zeigt der ROC Divergenzen zum Preis. Bullische Divergenz: der Preis macht ein neues Tief, der ROC nicht. Bärische Divergenz: der Preis macht ein neues Hoch, der ROC nicht. Diese Konstellationen sind visuell oft eindrücklich — statistisch aber, wie viele Divergenz-Signale, schwächer als die Intuition suggeriert.
Mein Eindruck nach systematischen Tests: Divergenzen sind keine eigenständigen Trade-Signale, sondern Filter. Eine Mean-Reversion-Long-Entry wird stärker, wenn gleichzeitig eine bullische ROC-Divergenz zum letzten Tief vorliegt. Aber der Versuch, Divergenzen direkt zu handeln — Entry am zweiten Hoch/Tief — produziert in meinen Backtests Profit-Faktoren unter 1.0 nach Kosten. Die Divergenz ist ein Beifahrer, kein Fahrer.
Coppock-Indicator: ROC-Smoothed.
Edwin Coppock veröffentlichte 1965 eine Variante des ROC speziell für langfristige Kauf-Signale am Aktienmarkt: die Summe aus ROC(14) und ROC(11), gewichtet geglättet über einen WMA(10). Auf Monats-Charts produziert dieser Indikator Signale, die sich an mehrere historische Markttiefs angekoppelt haben — 1949, 1962, 1974, 1982, 2003, 2009.
Coppock = WMA( ROC[14] + ROC[11], 10 ) # auf Monatsbasis Klassisches Buy-Signal: Coppock unter 0 und steigend -> zweistelliges Kauf-Setup fuer breit gestreute Aktien
Der Coppock ist als Marktbreiten-Indikator auf Indizes konzipiert, nicht für Einzelaktien. In dieser Rolle hat er ein Auftreten von etwa einem Signal alle 6–10 Jahre. Wer langfristig investiert ist, kann ihn als zusätzliches Filter für Allokations-Entscheidungen verwenden. Wer kurzfristig handelt, hat keinen Nutzen von ihm.
Cross-Sectional-Momentum.
Die akademisch am besten dokumentierte Anwendung des ROC ist Cross-Sectional-Momentum: das gleichzeitige Ranking eines Aktien-Universums nach ihrem ROC über eine bestimmte Lookback-Periode, Long-Positionen im obersten Quintil, Short-Positionen (oder zumindest Untergewicht) im untersten. Das wegweisende Paper von Jegadeesh und Titman (1993) zeigt einen signifikanten Renditeunterschied dieser Strategie über mehrere Dekaden und Märkte. Spätere Arbeiten — unter anderem von Asness, Moskowitz und Pedersen — haben den Effekt in Aktien, Indizes, Währungen und Rohstoffen bestätigt.
Die Standard-Parameter aus der Literatur: 12-Monats-ROC mit einem geskippten letzten Monat, monatliches Rebalancing, gleichgewichtete Long-Top-Decile, gleichgewichtete Short-Bottom-Decile. Das ist keine Trading-Strategie für jeden Tag — aber als Bestandteil eines Multi-Faktor-Portfolios ist Cross-Sectional-ROC ein gut belegter Renditetreiber.
Implementierung in Python.
Eine kompakte Implementierung des ROC und einer einfachen Cross-Sectional-Momentum-Strategie:
import pandas as pd
def roc(series: pd.Series, n: int) -> pd.Series:
return (series / series.shift(n) - 1.0) * 100.0
# prices: DataFrame mit Schluss-Kursen, Spalten = Tickers, Index = Tage
def cross_sectional_momentum(prices: pd.DataFrame,
lookback: int = 252,
skip: int = 21,
top_pct: float = 0.10):
# ROC mit Skip-Month-Logik
momentum = prices.shift(skip) / prices.shift(skip + lookback) - 1.0
# Monatliches Rebalancing am Monatsanfang
monthly = momentum.resample('MS').first()
ranks = monthly.rank(axis=1, pct=True)
longs = (ranks >= 1.0 - top_pct).astype(int)
shorts = (ranks <= top_pct).astype(int) * -1
weights = (longs.div(longs.sum(axis=1), axis=0).fillna(0)
+ shorts.div(shorts.abs().sum(axis=1), axis=0).fillna(0))
return weights
Diese 15 Zeilen reproduzieren näherungsweise das klassische 12-1-Momentum-Setup aus der akademischen Literatur. Wer die Strategie ernsthaft handeln will, muss zusätzlich Liquiditäts-Filter, Survivorship-Bias-Korrektur, Transaktionskosten, Volatilitäts-Skalierung und Sektor-Neutralisierung einbauen — aber das Skelett ist das hier.
ROC im persönlichen Werkzeugkasten.
In meiner eigenen Praxis verwende ich ROC in drei Rollen:
- Als Trend-Filter. Mean-Reversion-Setups nur, wenn der ROC(50) ein definiertes Vorzeichen hat. Verhindert die teuren Mean-Reversion-Trades in starken Trends, in denen die Reversion nicht stattfindet.
- Als Ranking-Signal. Für Long-Short-Aktienportfolios mit 12-1-Momentum als einem von mehreren Faktoren.
- Als Divergenz-Confirmation. Bei diskretionären Mean-Reversion-Entries auf Wochenbasis als zusätzlicher Filter — niemals als primäres Signal.
Ehrliche Bewertung.
Rate of Change ist keine Strategie, sondern ein Werkzeug. Er liefert keine Setups, keine spektakulären Backtests, keine Marketing-tauglichen Equity-Kurven. Was er liefert ist die mathematisch direkte Messung des einen Phänomens, das Momentum-Trading fundamental antreibt — die Veränderungsrate selbst.
Jeder ernsthafte Trader, der mit RSI, MACD oder Stochastik arbeitet, sollte sich den ROC anschauen — wenn auch nur, um zu verstehen, was diese Indikatoren mit ihren Glättungen und Normalisierungen versteckter tun. ROC ist die Baseline, gegen die alles andere antritt. Und in den meisten Fällen, in denen kompliziertere Indikatoren in meinen Tests gewinnen, ist der Gewinn kleiner, als es das Marketing vermuten lässt.
ROC gehört in den Werkzeugkasten. Vielleicht nicht als Trader-Held — aber als zuverlässiger, ehrlicher, jederzeit verständlicher Indikator, der genau das tut, was er behauptet.
Sie wollen Momentum-Faktoren sauber in Ihr Portfolio integrieren? Erstgespräch buchen — wir bauen das Cross-Sectional-Setup mit Ihren Daten.