ATR: der wichtigste Indikator, den niemand richtig nutzt.

Wenn ich nur einen einzigen Indikator behalten dürfte, wäre es ATR. Nicht weil ATR handelt, sondern weil ATR über Position-Sizing und Stops entscheidet — und das ist mathematisch wichtiger als jedes Entry-Signal. Trotzdem nutzen die meisten ATR komplett falsch.

Was Wilders Average True Range wirklich misst.

Wilder definierte 1978 die True Range als robuste Erweiterung der einfachen High-Low-Spanne. Sie berücksichtigt Gaps zwischen Bars:

TR  = max(High − Low,
          |High − Close_prev|,
          |Low  − Close_prev|)

ATR = Wilder_MA(TR, 14)
    = ATR_prev * (n − 1)/n + TR / n,   mit n = 14

ATR misst die durchschnittliche absolute Bewegung pro Bar, gemessen in Preis­einheiten. Wichtig: ATR ist nicht Volatilität im statistischen Sinne. Volatilität ist die Standardabweichung der Returns, üblicherweise annualisiert in Prozent. ATR ist der durchschnittliche True Range in Dollar, Euro oder Punkten. Beide messen Schwankung, aber sie sind nicht das gleiche.

Warum ATR der Schlüssel zu Position-Sizing ist.

Position-Sizing ist das einzige Element im Trading, das mathematisch garantiert wirkt. Entries kann man falsch wählen, Exits auch — aber die Positionsgröße bestimmt, wieviel Kapital ein einzelner Trade kosten darf. Und genau hier kommt ATR ins Spiel.

Die Standard-Formel (Van Tharp, später vielfach adaptiert):

Risiko_pro_Trade = Konto * Risk_Pct        z. B. 200.000 € * 0,75 % = 1.500 €
Stop_Abstand     = k * ATR(n)              z. B. 2 * ATR(14) = 4,80 € pro Aktie
Position_Größe   = Risiko / Stop_Abstand   1.500 / 4,80 = 312 Aktien

Das Schöne daran: die Positionsgröße passt sich automatisch an die Volatilität an. In ruhigen Phasen (ATR niedrig) wird die Position größer, in turbulenten Phasen kleiner. Das Risiko in Euro bleibt konstant. Wer das einmal verstanden hat, wird nicht mehr ohne ATR-Sizing arbeiten.

ATR-basierte Stops: 1.5x, 2x, 3x — wann was.

Der ATR-Multiplikator bestimmt, wie viel Atemraum eine Position bekommt. Faustregeln aus meiner Praxis:

Eine schmerzhafte Wahrheit: enge Stops fühlen sich klug an, sind es aber selten. Auf den meisten Daily-Setups bringt ein 1.5x-ATR-Stop im Backtest schlechtere Ergebnisse als ein 2x-Stop, weil zu viele Trades durch normales Rauschen ausgestoppt werden.

ATR für Volatilitäts-skalierte Position-Größen über mehrere Assets.

Wer mehrere Instrumente parallel handelt — Aktien, FX, Rohstoffe, Krypto — hat ein grundlegendes Problem: ein 1-%-Move im S&P ist nicht dasselbe wie ein 1-%-Move in Bitcoin. ATR löst das, indem es Risiko in Preiseinheiten ausdrückt.

Mein Standard-Ansatz für Multi-Asset-Portfolios: jede Position wird so dimensioniert, dass ihre Vol-Contribution in Euro pro Tag etwa gleich groß ist. Konkret:

target_daily_risk = 500  # Ziel: 500 € durchschnittliche Tagesschwankung pro Position

for symbol in universe:
    atr   = compute_atr(symbol, n=20)         # in Preiseinheiten
    price = last_price(symbol)
    point_value = contract_size(symbol)        # EUR pro Punkt
    size  = target_daily_risk / (atr * point_value)
    place_position(symbol, size)

Das Resultat: das Portfolio hat keine Konzentration in volatilen Instrumenten. Bitcoin bekommt automatisch kleinere Stückzahlen als Gold-ETF, ohne dass man einzelne Limit-Regeln schreiben muss. Die risikobereinigte Rendite von Multi-Asset-Systemen verbessert sich durch dieses einfache Sizing-Prinzip häufig spürbar.

ATR-Trailing-Stops und Chandelier-Exit.

Wenn der Entry sitzt, ist die nächste Frage: wann raus. ATR-basierte Trailing-Stops sind für Trendfolge das Mittel der Wahl.

Klassischer ATR-Trailing

Bei Long: Stop = max(Stop_prev, Close − k * ATR). Stop wandert nur nach oben, niemals nach unten. Standard k = 2.0 auf Daily.

Chandelier-Exit (Chuck LeBeau)

Statt vom Close zu trailen, wird vom Highest High seit Entry getrailt:

ChandelierLong  = HighestHigh(n) − k * ATR(n)
ChandelierShort = LowestLow(n)   + k * ATR(n)

Standard: n = 22, k = 3.0

Der Chandelier ist großzügiger als der Close-Trailing-Stop. Er hält Positionen länger in laufenden Trends — und wird in scharfen Korrekturen härter getroffen. Auf Daily-Daten von Trend-Märkten (Gold, Bonds, DAX-Future) hält der Chandelier Gewinner in Backtests oft länger als ein simpler 2x-ATR-Trailing — bei höheren maximalen Drawdowns. Es ist ein Trade-off, kein Free Lunch.

ATR im Cross-Asset-Vergleich: Normalisierung.

ATR in absoluter Form ist nicht vergleichbar. ATR(14) liegt bei Bitcoin typischerweise im vierstelligen USD-Bereich, bei SPY im einstelligen. Um Volatilitäts-Regime über Asset-Klassen zu vergleichen, normalisiert man:

ATR_rel  = ATR(14) / Close * 100        # prozentual
ATR_z    = (ATR − rolling_mean(ATR, 252)) / rolling_std(ATR, 252)

Der Z-Score normalisiert nicht nur über Assets, sondern über Zeit. ATR_z über 2 bedeutet: aktuelle Volatilität liegt zwei Standardabweichungen über dem Ein-Jahres-Schnitt — ein klarer Risk-Off-Signal. Bei mir laufen einige Strategien mit harten Cutoffs bei ATR_z über 2.5 (alles flat) und über 1.5 (Positionsgrößen halbiert).

ATR vs. realisierte Volatilität: der Unterschied.

Realisierte Volatilität ist die Standardabweichung der log-Returns, üblicherweise annualisiert. Sie ist symmetrisch und basiert auf Schlusskursen. ATR ist asymmetrisch (berücksichtigt Bar-High/Low) und in Preiseinheiten.

Praktischer Unterschied: ATR reagiert schneller auf Intraday-Spitzen. Ein Tag mit großem Wick (also hohe Range, aber Schluss nahe Eröffnung) erhöht ATR deutlich, aber realisierte Vol kaum. Für Stop-Setzung ist ATR daher näher am tatsächlichen Risiko. Für Options-Pricing oder Sharpe-Berechnung ist die realisierte Vol korrekt.

Ich nutze beide parallel: ATR für Sizing und Stops, realisierte Vol (60-Tage, annualisiert) als Regime-Indikator und für das Risiko-Reporting.

Eine konkrete Position-Sizing-Formel.

Eine praxistaugliche Standard-Formel für Multi-Strategie-Systeme:

import numpy as np

def position_size(equity, atr, price, point_value,
                  base_risk_pct=0.0075,
                  atr_stop_mult=2.0,
                  vol_regime_z=0.0):
    # Basis-Risiko in Euro
    risk_eur = equity * base_risk_pct

    # Vol-Regime-Skalierung: bei hohem Vola-Regime weniger Risiko
    if vol_regime_z > 2.5:
        scale = 0.0
    elif vol_regime_z > 1.5:
        scale = 0.5
    elif vol_regime_z > 0.5:
        scale = 0.75
    else:
        scale = 1.0
    risk_eur *= scale

    # Stop-Distanz und Stückzahl
    stop_distance = atr_stop_mult * atr
    size = risk_eur / (stop_distance * point_value)
    return np.floor(size)

Diese Formel kombiniert drei Ebenen: Konto-Risk-Budget (0.75 %), Vola-bereinigtes Sizing (ATR-Stop), und Vol-Regime-Skalierung (Z-Score). Sie ist nicht originell, aber sie hat sich über Aktien, Indizes und FX als robust erwiesen. Krypto behandle ich gesondert, weil die Vol-Verteilung dort fat-tailed ist und das Z-Score-Modell unter Druck gerät.

Fazit: der unsichtbare Held.

ATR ist der wichtigste Indikator im Risiko-Management — und gleichzeitig der unauffälligste. Er erzeugt keine sexy Entry-Signale, er verkauft sich nicht in Webinaren, er steht selten auf Charts. Aber wer ATR im Sizing und in den Stops konsequent verankert, kommt ohne Drama durch die meisten Phasen.

Das ist eine unromantische Wahrheit: gute Risikokontrolle ist langweiliger als gute Entries. Sie ist trotzdem das, was nach 10 Jahren den Unterschied macht.

Stand: Mai 2026, überarbeitet Oktober 2026. Angaben zu Produkten, Preisen, Gesetzen und Fristen können sich seitdem geändert haben; maßgeblich sind die aktuellen Angaben der Anbieter und Behörden.

Sie wollen ATR-basiertes Sizing und Trailing in Ihr System einbauen? Unverbindlich anfragen — wir setzen es konkret auf. Mehr zu meinem Angebot: Trading-Systeme entwickeln lassen.