Bollinger-Bänder-Strategien: Mean-Reversion und Breakout.
Bollinger-Bänder sind, mathematisch betrachtet, ein gleitendes Konfidenzintervall um einen SMA. Sie messen Volatilität — nicht mehr und nicht weniger. Trotzdem haben sich darum mehr Strategien herumgerankt als um die meisten anderen Indikatoren. Was funktioniert, was nicht, und warum die Standardeinstellung 20/2.0 fast nie die richtige Antwort ist.
Ich setze Bollinger-Bänder vor allem in zwei Kontexten ein: als adaptiven Mean-Reversion-Anker auf Aktien und als Squeeze-Filter in Volatilitätsausbruch-Setups. In diesem Artikel zeige ich, wie das konkret aussieht, und warum statische Multiplikatoren in modernen Märkten oft versagen.
Mathematische Definition — kurz und sauber.
Bollinger-Bänder bestehen aus drei Linien:
- Middle Band = SMA(n) der Schlusskurse
- Upper Band = SMA(n) + k · σ(n)
- Lower Band = SMA(n) − k · σ(n)
Wobei σ(n) die rollende Standardabweichung der Schlusskurse ist. Standardwerte sind n=20 und k=2. Die Logik: wenn die Renditen normalverteilt wären, lägen rund 95 % der Werte innerhalb von ±2 Standardabweichungen. Außerhalb wäre statistisch „extrem".
Das Problem mit dieser Argumentation: Renditen sind nicht normalverteilt. Sie haben Fat Tails. In der Realität liegen je nach Markt 5–10 % der Werte außerhalb der Bänder — nicht 5 %, wie die Normalverteilung vorhersagen würde. Das macht Standard-Bollinger zu einem schiefen Confidence-Werkzeug.
Warum 20/2.0 überoptimiert wirkt — und es trotzdem nicht ist.
John Bollinger hat die Werte 20/2.0 in den 1980ern empirisch festgelegt. Anders als manche Indikator-Standardwerte (wie RSI 14/70/30) sind 20/2.0 erstaunlich robust geblieben — was kein Wunder ist, denn es ist ein Glättungs-Parameter plus ein Vola-Multiplikator, nicht ein spezifischer Trade-Trigger.
Wenn ich bei Mandanten optimierte Bollinger-Parameter sehe (n=14 oder n=27, k=1.7 oder k=2.3), ist das fast immer Overfitting auf das jeweilige Sample. Walk-Forward-Tests zeigen: die optimierten Werte halten OOS schlechter als die Standardwerte 20/2.0. Wenn schon Bollinger, dann mit den Originalwerten — oder mit einer komplett anderen Konstruktion (siehe adaptive Bollinger weiter unten).
Bollinger als Mean-Reversion-Setup auf Aktien.
Das klassische Setup: Schluss unter dem Lower Band → Long. Statistisch funktioniert das auf US-Einzelaktien überraschend solide, wenn man es richtig einbettet.
Konkret das Setup, das ich in leicht angepasster Form für Mandanten in Multi-Strategien-Portfolios einbaue:
- Universum: S&P-500-Mitglieder (zeitkorrekt rolling, ohne Survivorship-Bias)
- Trendfilter: Aktie über ihrem eigenen SMA(200)
- Marktfilter: SPY über seinem SMA(200)
- Entry: Schluss unter Lower Band (20/2.0) — Long am nächsten Open
- Exit: Schluss über Middle Band (= SMA(20)) — typischerweise nach 3–7 Tagen
- Stop-Loss: ATR(14) × 3 unter Entry
Auf einem sauberen S&P-500-Backtest 2005–2025 zeigt dieses Setup eine Hit-Rate um 65 %, einen durchschnittlichen Trade von +1,1 % und etwa 600 Trades insgesamt (verteilt über mehrere Aktien). Wichtig: die Performance konzentriert sich stark auf Aufwärtstrend-Phasen des Marktes. In Bärenmärkten fällt der Edge zusammen — daher der Marktfilter.
Bollinger-%B: der unterschätzte Cousin.
Bollinger %B normalisiert die Position des Kurses innerhalb der Bänder auf 0–1:
%B = (Close − Lower) / (Upper − Lower) %B = 0 → Schluss = Lower Band %B = 0.5 → Schluss = Middle Band (SMA) %B = 1 → Schluss = Upper Band %B > 1 → Schluss über Upper Band (sehr extrem) %B < 0 → Schluss unter Lower Band
%B ist nützlich, weil es vergleichbar über verschiedene Assets und Zeitperioden ist. Ein Schluss bei %B = 0.05 ist auf SPY und auf einem Penny-Stock gleichermaßen ein „nahe Lower Band" — der Rohpreis-Abstand ist es nicht. Für Multi-Asset-Portfolios mit gleichen Setups ist %B das deutlich saubere Maß.
Bollinger-Squeeze und Breakout-Setups.
Bollinger-Squeeze: die Bandbreite (Upper − Lower) fällt auf ein Mehrmonats-Tief. Interpretation: die Volatilität ist extrem niedrig, ein Ausbruch ist statistisch wahrscheinlicher als sonst.
Das ist eine der wenigen Bollinger-Anwendungen, die keine Mean-Reversion ist. Bei sauberer Implementierung (Bandbreite/Mittelwert < 10. Perzentil der letzten 252 Tage) liefert der nachfolgende 20-Tages-Move auf liquiden Indizes typischerweise eine deutlich höhere Range als der Durchschnitt — gut ein Drittel mehr.
Was nicht funktioniert: Richtung des Ausbruchs vorhersagen. Squeeze sagt: „etwas passiert bald". Squeeze sagt nicht: „es geht hoch" oder „runter". Wer den Squeeze als Long-Trigger handelt, hat eine Trefferquote nahe 50 %. Wer ihn als Volatilitäts-Vorlauf für Optionsstrategien nutzt (Long-Straddle, Strangle), hat einen sauberen Edge — denn implizite Volatilität ist in Squeeze-Phasen meistens billiger als sie sein sollte.
Warum statische Multiplikatoren in Vola-Regimes versagen.
Der Konstanten-Multiplikator k=2 setzt voraus, dass das Vola-Regime stabil ist. Ist es nicht. In Hochvolatilitäts-Phasen (VIX > 30) werden die Bänder so weit, dass praktisch nichts mehr sie berührt — Bollinger feuert keine Signale. In Niedrigvolatilitäts-Phasen (VIX < 12) werden die Bänder so eng, dass jeder normale Tagesschluss sie kreuzt — Bollinger feuert ständig.
Eine Strategie, die in beiden Regimes funktionieren soll, kann nicht mit festem k arbeiten. Was hilft: ein adaptives k, das auf Volatilität skaliert.
Adaptive Bollinger-Bänder mit Vola-Skalierung.
Die Idee: k wird dynamisch angepasst, sodass die Häufigkeit von Bandberührungen über die Zeit konstant bleibt. Konkret: rollend kalibrieren wir k so, dass über die letzten 252 Tage etwa 10 % der Schlüsse außerhalb der Bänder lagen.
# Adaptive Bollinger-Bänder: Multiplikator k aus Quantil rekalibriert import numpy as np import pandas as pd def adaptive_bollinger(px, n=20, target_outside_pct=0.10, lookback=252): sma = px.rolling(n).mean() std = px.rolling(n).std() # z-score des Schlusses zum SMA in Std-Einheiten z = (px - sma) / std # k so, dass |z| das gewünschte Quantil entspricht k = z.abs().rolling(lookback).quantile(1 - target_outside_pct) upper = sma + k * std lower = sma - k * std return sma, upper, lower, k # Anwendung auf SPY import yfinance as yf spy = yf.download("SPY", start="2010-01-01", auto_adjust=True)["Close"] sma, up, lo, k = adaptive_bollinger(spy) print(f"Aktuelles adaptives k: {k.iloc[-1]:.2f}") print(f"Mittelwert k über Zeit: {k.mean():.2f}")
In meiner Praxis pendelt das adaptive k zwischen 1,6 (in ruhigen Phasen) und 2,8 (nach extremen Vola-Schocks, z. B. 2020). Setups, die auf Band-Berührung reagieren, feuern mit adaptivem k über alle Regimes mit ähnlicher Häufigkeit — was bei festem k=2 nicht der Fall ist.
Bollinger vs. Keltner-Channels.
Keltner-Channels sind ähnlich aufgebaut, verwenden aber ATR statt Standardabweichung als Maß für die Bandbreite:
Keltner-Middle = EMA(n) Keltner-Upper = EMA(n) + m × ATR(n) Keltner-Lower = EMA(n) − m × ATR(n)
Praktischer Unterschied: ATR reagiert auf intraday-Ranges (High − Low), Standardabweichung nur auf Schlusskurs-Veränderungen. Keltner ist daher etwas weniger empfindlich auf Schluss-Ausreißer und mehr auf intraday-Vola.
In Mean-Reversion-Backtests auf liquiden Aktien sind Bollinger und Keltner in der Performance fast nicht zu unterscheiden — die Trefferquoten liegen typischerweise innerhalb von 1–2 Prozentpunkten. Für Squeeze-Setups ist eine Kombination aus beiden („Bollinger innerhalb von Keltner" als Squeeze-Definition, siehe John Carter) das Setup mit der besten statistischen Trennschärfe — schlicht, weil es zwei unterschiedliche Vola-Maße kombiniert.
Was ich Mandanten konkret empfehle.
- Bollinger (20/2.0) als Mean-Reversion-Anker auf US-Einzelaktien, mit doppeltem Trendfilter (Aktie + Markt) — robust und gut dokumentiert.
- Bollinger-%B als asset-übergreifendes Maß in Multi-Asset-Portfolios, statt Rohpreis-Abstand zum Band.
- Bollinger-Squeeze für Optionsstrategien, nie für direktionalen Ausbruchs-Long.
- Adaptive Bollinger wenn die Strategie über verschiedene Vola-Regimes laufen soll. Mehr Aufwand, deutlich stabilere OOS-Performance.
Was ich vermeide: doppelte oder dreifache Bollinger-Bänder, Bollinger-MACD-Kombinationen mit sechs Parametern, „Bollinger-Bounce-Strategien" ohne Trendfilter. Mehr Parameter heißt besseres In-Sample, schlechteres Out-of-Sample. Das gilt auch hier.
Sie wollen Bollinger oder Mean-Reversion-Setups robust in ein Portfolio integrieren? Erstgespräch buchen — wir schauen uns Ihren Setup an.