GARCH-Methode – Volatilitätsprognose + Positionsgrößenbestimmung
Dieser Skill beantwortet die Frage, die der Einzelhandel nie stellt und jeder Fonds täglich: Wie viel?
Er prognostiziert NICHT die Richtung. GARCH prognostiziert das Ausmaß von Bewegungen – wie heftig der morgige Tag wahrscheinlich sein wird, nicht die Richtung. Sage dies dem Benutzer, wenn du Ergebnisse präsentierst.
Die drei Werkzeuge
Alle Skripte befinden sich in scripts/ und werden mit uv run ausgeführt (Abhängigkeiten werden automatisch über Inline-Metadaten aufgelöst – kein pip-install nötig).
1. garch_forecast.py – die Prognose
Walk-Forward-GARCH(1,1), ohne Vorausschau (Parameter werden alle 21 Tage auf einem expandierenden Fenster neu geschätzt; die Rekursion rollt zwischen den Neuschätzungen nur mit vergangenen Daten vorwärts).
uv run scripts/garch_forecast.py --csv prices.csv --json
uv run scripts/garch_forecast.py --ticker BTC-USD --json
Ausgabe: 1-Tages-Volatilitätsprognose (täglich + annualisiert), Volatilitätsperzentil im Vergleich zum letzten Jahr, Regime (ruhig / normal / Sturm).
2. vol_target.py – die Größe
Die gesamte Idee: size = target_vol / forecast_vol, gedeckelt auf [0,25x, 2,0x].
uv run scripts/vol_target.py --csv prices.csv --target-vol 15 --json
Ausgabe: Positionsgrößenmultiplikator. „Führe 0,6x deiner Basislinie aus“ – das ist die Antwort.
3. compare.py – der ehrliche Test
Führt dieselben Signale zweimal aus – feste Größe vs. volatilitätsgesteuert – und zeigt beide Eigenkapitalkurven sowie Statistiken nebeneinander an. Wird mit einer EMA 9/21-Crossover-Demo ausgeliefert; akzeptiert jede beliebige Strategie über --signals mine.csv (Spalten: Datum, Signal in {-1,0,1}).
uv run scripts/compare.py --csv prices.csv --target-vol 58 --chart equity.png --json
uv run scripts/compare.py --csv prices.csv --signals mine.csv
Ausgabe: CAGR, annualisierte Volatilität, Sharpe, maximaler Drawdown, schlechtester Monat, Endkapital – beide Versionen – plus das Eigenkapitalkurven-Diagramm mit schattierten Sturmregimen.
JSON-Vertrag
Jedes Skript unterstützt --json. Kernausgabeform:
{
"as_of": "2026-05-23",
"forecast_vol_annualized_pct": 41.2,
"vol_percentile_1y": 78.0,
"regime": "storm",
"position_size_multiplier": 0.6,
"note": "GARCH prognostiziert das Ausmaß (Volatilität), nicht die Richtung."
}
Drei Kombinationsmuster
A. Sizing-Schicht – auf jede bestehende Strategie aufsetzbar. Deine Strategie entscheidet ob; dieser Skill entscheidet wie viel. Nimm das Signal der Strategie, multipliziere mit position_size_multiplier, fertig.
B. Risikobegrenzung – eigenständiger Kill-Switch. Wenn regime == "storm", reduziere jegliches Engagement auf den Multiplikator, unabhängig davon, was deine Signale sagen. Funktioniert mit jedem Agenten, der Positionen verwaltet.
C. Vergleichstool – bevor du einer Strategie vertraust, führe sie durch compare.py und prüfe, ob Volatilitäts-Targeting ihr Sharpe-Verhältnis / ihren Drawdown verbessert. Wenn Sizing nicht hilft, ist der Vorteil der Strategie möglicherweise zu schwach, um realen Bedingungen standzuhalten.
Lässt sich sauber mit Regime-Richtungs-Skills kombinieren (z. B. Markov-artige Bullen-/Bären-Klassifikatoren): deren Ausgabe beantwortet in welche Richtung, dieser beantwortet wie viel. Multipliziere die beiden.
Standardwerte & Konventionen
- Krypto:
--periods-per-year 365(Standard). Aktien:--periods-per-year 252. - Zielvolatilität: 15 % ist ein vernünftiger konservativer Standardwert. Für einen risikobereinigten Vergleich mit einer ungehebelten Strategie setze die Zielvolatilität ungefähr gleich der realisierten Volatilität der Strategie selbst.
- Daten: yfinance-Ticker (benötigt Internet) oder jede CSV mit Datums- und Schlusskursspalten – fügt sich in jede bereits vom Benutzer verwendete Pipeline ein.
- Mindesthistorie: ~510 tägliche Beobachtungen vor der ersten Prognose.
Ehrlichkeitsregeln (nicht verhandelbar)
- Präsentiere die GARCH-Ausgabe niemals als Richtungsentscheidung.
- Verstecke niemals die Drawdown- oder schlechtesten-Monats-Zahlen, wenn du einen Vergleich berichtest.
- Wenn Volatilitäts-Targeting die Strategie des Benutzers NICHT verbessert, sage dies deutlich – dieses Ergebnis ist genauso wertvoll.