KAMA: der MA, der sich anpasst.
Perry Kaufman hat 1995 mit dem Kaufman Adaptive Moving Average eine elegante Antwort auf das klassische MA-Dilemma vorgeschlagen: kurze MAs sind schnell, aber zappelig; lange sind glatt, aber träge. KAMA versucht das Beste aus beiden Welten, indem er sich an die „Effizienz" der Preisbewegung anpasst. Die Idee ist gut. Der Praxisgewinn — ehrlich betrachtet — kleiner als erwartet.
Ich teste KAMA regelmäßig gegen einfache EMAs in Mandanten-Setups. Das Ergebnis ist erstaunlich konsistent: KAMA verhält sich in Trend-Phasen ähnlich wie eine schnelle EMA und in Range-Phasen ähnlich wie eine langsame EMA. Konzeptionell überlegen — die Performance-Gewinne in einer Trend-Folge-Strategie liegen jedoch typischerweise bei 5–15 %, nicht bei Faktor zwei.
Die Mechanik: Efficiency Ratio.
Kern von KAMA ist das Efficiency Ratio (ER):
ER = |Close[t] - Close[t-n]| / sum(|Close[i] - Close[i-1]|, i=t-n+1..t)
Der Zähler misst die direkte Bewegung über n Perioden. Der Nenner misst die gesamte zurückgelegte Strecke. ER liegt zwischen 0 (reines Hin-und-Her, null Netto-Bewegung) und 1 (perfekter linearer Trend).
Daraus wird ein Smoothing-Constant berechnet, der zwischen einer schnellen und einer langsamen EMA interpoliert:
SC = (ER * (fast_sc - slow_sc) + slow_sc) ** 2 KAMA[t] = KAMA[t-1] + SC * (Close[t] - KAMA[t-1])
Typische Defaults: n=10 für ER, fast_sc = 2/(2+1) (entspricht EMA(2)), slow_sc = 2/(30+1) (entspricht EMA(30)). In Trends nähert sich KAMA EMA(2), in Range-Phasen EMA(30).
KAMA vs. EMA: Reaktionsgeschwindigkeit.
Der erkennbare Vorteil von KAMA: in Trend-Phasen reagiert er fast so schnell wie eine kurze EMA, ohne in Seitwärtsphasen ständig falsche Crossovers zu produzieren. In meinem Standard-Test auf SPY-Tagesdaten 2005–2025 vergleicht sich das in etwa so:
- EMA(20): mittlere Reaktionszeit auf Trendwechsel ca. 8 Bars, ca. 95 Crossovers in 20 Jahren.
- KAMA(10, 2, 30): mittlere Reaktionszeit ca. 6 Bars in Trends, deutlich verlangsamt in Ranges, ca. 60 Crossovers in 20 Jahren.
Weniger Crossovers bedeuten weniger Whipsaws. Das ist real und nützlich. Es macht KAMA aber nicht zu einem Heiligen Gral — es macht ihn zu einer durchdachten Variante des Themas „dynamische Glättung".
KAMA-Crossover als Strategie: Backtest-Ergebnisse.
Klassischer Test: Long, wenn Close > KAMA, Flat (oder Short) sonst. Auf SPY-Tagesdaten 2005–2025, ohne Kosten:
- EMA(20)-Crossover (Long/Flat): CAGR ~ 8,4 %, Max-Drawdown ~ 19 %, Sharpe ~ 0,55.
- KAMA-Crossover (Long/Flat): CAGR ~ 9,1 %, Max-Drawdown ~ 17 %, Sharpe ~ 0,62.
- Buy & Hold SPY: CAGR ~ 9,8 %, Max-Drawdown ~ 34 %, Sharpe ~ 0,55.
KAMA schlägt EMA leicht — primär durch reduzierte Whipsaws. Beide schlagen Buy & Hold nicht in absolutem Return, wohl aber im Drawdown-bereinigten Risk. Mit realistischen Kosten von 0,02 % pro Trade verschwindet ein guter Teil des Edge — gerade EMA-Crossover leidet stärker unter höherer Trade-Frequenz.
KAMA als adaptive Trend-Linie.
Spannender als der reine Crossover-Use-Case finde ich KAMA als Slope-Indikator: die Steigung der KAMA-Linie ist ein recht sauberer Trend-Filter. In Mandanten-Setups nutze ich das so:
- KAMA(10, 2, 30) berechnen.
- Slope = KAMA[t] - KAMA[t-5] als „Trend-Score".
- Trading-Signale (z. B. Mean-Reversion-Entries) nur ausführen, wenn Slope-Vorzeichen mit Trade-Richtung übereinstimmt.
Das hat in Tests auf US-Aktien und Indizes konsistent die Out-of-Sample-Robustheit erhöht, ohne neue Parameter einzuführen, die man optimieren muss. KAMAs ER-basierte Glättung unterdrückt Slope-Fluktuationen in Ranges sehr ordentlich.
Implementierung in Python.
import yfinance as yf
import numpy as np
import pandas as pd
def kama(series, n=10, fast=2, slow=30):
change = (series - series.shift(n)).abs()
volatility = series.diff().abs().rolling(n).sum()
er = change / volatility
fast_sc = 2 / (fast + 1)
slow_sc = 2 / (slow + 1)
sc = (er * (fast_sc - slow_sc) + slow_sc) ** 2
out = pd.Series(index=series.index, dtype=float)
out.iloc[n] = series.iloc[n]
for i in range(n + 1, len(series)):
out.iloc[i] = out.iloc[i - 1] + sc.iloc[i] * (series.iloc[i] - out.iloc[i - 1])
return out
px = yf.download("SPY", start="2005-01-01", auto_adjust=True)["Close"]
k = kama(px, 10, 2, 30)
signal = (px > k).astype(int)
ret = px.pct_change() * signal.shift(1)
print(f"CAGR: {(1 + ret.mean()) ** 252 - 1:.2%}")
print(f"Sharpe: {ret.mean() / ret.std() * np.sqrt(252):.2f}")
Wo KAMA versagt.
Drei Schwächen sind ehrlich zu nennen:
- Lag bleibt Lag: KAMA reagiert schneller als langsame MAs, aber bei abrupten Regimewechseln ist er auch zwei bis drei Bars zu spät. Wer keinen Lag verträgt, braucht andere Werkzeuge (Volatilitäts-Filter, Order-Flow).
- ER ist nicht magisch: in sehr volatilen Ranges mit gelegentlichen großen Spikes liefert ER irreführende Werte. KAMA kann dann „glaubt zu trenden", obwohl der Markt nur ein Outlier-Bar hatte.
- Parameter-Drift: die Defaults (10, 2, 30) sind nicht universell optimal. Verlockung zum Overfit, wenn man asset-spezifisch tuned.
Ehrliche Bewertung.
KAMA ist eine bessere Idee als die meisten anderen „adaptiven" MAs (VIDYA, FRAMA, AMA-Varianten). Kaufmans Konzept ist mathematisch sauber, intuitiv und parameter-arm. In Backtests schlägt KAMA klassische EMAs konsistent um kleine, aber reale Beträge — vor allem in Drawdown-bereinigten Kennzahlen.
Der Praxisgewinn ist allerdings marginal. Wer EMA(20) erfolgreich einsetzt, gewinnt durch Wechsel auf KAMA keine Welten — vielleicht 5–15 % Sharpe-Verbesserung in günstigen Setups. Das ist nicht nichts, aber es ist auch kein Strategy-Maker. Die wirkliche Performance kommt aus Setup-Logik, Risk-Management und Asset-Auswahl, nicht aus der konkreten Wahl des MA.
Was ich empfehle.
- KAMA als Trend-Filter: ja, wenn Sie ohnehin einen MA als Filter nutzen. Die Slope-Eigenschaften sind sauberer als bei EMA.
- KAMA als alleiniger Trigger: nur in Trend-Folge-Strategien auf Assets mit echten Trends (Indizes, Trend-Forex-Paare), nicht als universeller Switch.
- Parameter-Tuning vermeiden: Kaufmans Defaults sind ein guter Kompromiss. Wer pro Asset optimiert, optimiert meist Geräusche.
- Realistische Erwartung: KAMA macht aus einer mittelmäßigen Strategie keine gute. Aber er macht aus einer guten Strategie eine etwas robustere.
Sie nutzen MAs in Ihren Strategien und überlegen, ob KAMA oder eine andere adaptive Variante mehr bringt? Erstgespräch buchen — wir testen den Unterschied sauber gegeneinander.