KI für Bond-Markets: was bei Anleihen wirklich funktioniert.
Die meisten KI-Trading-Beiträge handeln von Aktien. Bonds bekommen einen Bruchteil der Aufmerksamkeit — und das, obwohl der globale Anleihenmarkt rund doppelt so groß ist wie der Aktienmarkt. Ein Grund dafür: Bonds sind technisch unangenehm. Die gute Nachricht ist, dass genau diese Unannehmlichkeiten Machine Learning eine echte Nische bieten, sobald man die Eigenheiten verstanden hat.
Warum Bonds anders sind als Aktien.
Wer aus dem Equity-Trading kommt und denselben Werkzeugkasten auf Anleihen anwendet, scheitert verlässlich. Drei Gründe:
- Mikrostruktur: Anleihen werden überwiegend OTC gehandelt, nicht über zentrale Börsen. Preise sind oft Indikationen, keine echten Trades. Bid/Ask-Spreads bei Corporate Bonds können bei einem Prozent oder mehr liegen — bei Aktien wäre das ein Notfall, bei Anleihen normaler Alltag.
- Liquidität: Bei einer einzelnen Corporate-Bond-Emission gibt es vielleicht zehn Handelstage pro Monat mit echtem Umsatz. Tageskerzen sind eine Fiktion. ML-Modelle, die saubere Zeitreihen erwarten, kollabieren hier.
- Risiko-Faktoren: Ein Bond hat mindestens drei Treiber gleichzeitig — Zinsstruktur, Kreditrisiko, Liquiditätsprämie. Ein gutes Modell muss diese trennen können, sonst attribuiert es Bewegungen falsch.
Wer das ignoriert und LSTM auf TLT-Daten wirft, bekommt das übliche Ergebnis: ein Modell, das im Backtest funktioniert, weil es Zinsänderungen einen Tag vorhersagt, die in den Trainingsdaten leicht vorgehen — und live nichts mehr liefert.
Yield-Curve-Forecasting: der dankbarste Use-Case.
Die Zinsstrukturkurve ist gut messbar, täglich verfügbar und hat eine begrenzte Anzahl sinnvoller Treiber. Klassisch: Nelson-Siegel-Svensson zerlegt die Kurve in Level, Slope und Curvature. Diese drei Faktoren erklären in den allermeisten Zeiträumen mehr als 95 % der Varianz. Genau das macht sie zu einer dankbaren ML-Zielgröße — nicht den absoluten Yield, sondern die Faktoren.
Ein typischer Ansatz, den ich seit Jahren produktiv nutze:
import pandas as pd
import numpy as np
from sklearn.ensemble import GradientBoostingRegressor
# Treasury-Yields aus FRED (DGS1, DGS2, DGS5, DGS10, DGS30)
yields = pd.read_csv("treasury_yields.csv", parse_dates=["date"], index_col="date")
# Nelson-Siegel-Faktoren als Zielgrößen
ns = compute_nelson_siegel(yields) # Level, Slope, Curvature
# Features: Macro + Marktstress + Fed-Signale
X = pd.concat([
macro_features(), # CPI, Unemployment, ISM, etc.
stress_features(), # VIX, MOVE, TED-Spread
fed_text_features(), # NLP-Embeddings aus FOMC-Minutes
], axis=1).dropna()
y_slope = ns["slope"].shift(-5) # 5-Tages-Forecast
model = GradientBoostingRegressor(n_estimators=400, max_depth=3)
model.fit(X.loc[:"2027"], y_slope.loc[:"2027"])
Realistische Out-of-Sample-Erwartung für einen 5-Tages-Slope-Forecast: R² zwischen 0,05 und 0,12. Das klingt mager, ist aber in dem Kontext brauchbar. Wenn das Modell nur in den 30 % der Fälle mit höchster Konfidenz traded, bleibt eine echte Information-Ratio übrig. Wer zweistellige R² verspricht, hat irgendwo Look-Ahead.
NLP für Fed- und EZB-Statements.
Hier ist der Aufwand klein, der Nutzen real. Statements und Pressekonferenzen der wichtigsten Notenbanken sind die größten exogenen Treiber von Zinsbewegungen. Ein LLM kann Statement-Veränderungen quartalsweise extrahieren — was wurde gestrichen, was neu hinzugefügt, welcher Tonfall ist die Forward Guidance.
Bei uns laufen zwei Pipelines: eine misst die kosinusähnliche Distanz zwischen aufeinanderfolgenden FOMC-Statements und kürzt den Datensatz auf jene Sitzungen, in denen die Distanz im obersten Dezil lag. In diesen Fällen war die Marktreaktion in den Folgetagen signifikant größer — das ist ein klassisches Volatilitäts-Signal, kein Direktions-Signal. Die zweite Pipeline lässt Claude ein strukturiertes JSON über jedes Statement erzeugen: Inflations-Ton (hawkish/neutral/dovish), Arbeitsmarkt-Ton, Forward-Guidance-Festigkeit. Diese drei Skalen gehen als zusätzliche Features in das Yield-Curve-Modell.
Wichtig: ich verwende dafür immer dieselbe Prompt-Vorlage, denselben Modell-Snapshot und speichere jeden Roh-Output. Sonst bekommt man Look-Ahead durch Modell-Updates — der unsichtbarste und teuerste Fehler in NLP-Backtests.
Credit-Spread-Prediction mit Random Forests.
Bei Investment-Grade- und High-Yield-Spreads funktionieren Tree-Modelle besser als neuronale Netze. Der Grund ist banal: die Trainingsdaten sind klein. Selbst mit 25 Jahren täglicher CDX-IG- und CDX-HY-Daten reden wir über etwa 6 000 Datenpunkte. Deep Learning braucht Größenordnungen mehr.
Mein Standard-Setup für 20-Tages-Forecasts von HY-Spreads nutzt diese Features:
- Aktuelles Spread-Level und 5-, 20-, 60-Tages-Veränderungen
- S&P-500-Drawdown vom 60-Tages-Hoch
- VIX-Level und VIX-Term-Structure-Slope
- 10y-Yield und 10y-3m-Slope
- Aggregierte Earnings-Sentiment-Scores aus LLM-Parsing der letzten Earnings-Saison
- Default-Rate-Erwartungen aus Moody's-Daten
Eine Random-Forest-Regression mit rollierender Trainings-Window-Validierung liefert ehrlich gerechnet ein R² um 0,15 bei 20 Tagen Horizont. Das Modell ist nicht für Punkt-Forecasts gut, sondern um Schwellenwert-Signale zu erzeugen: „Wann ist die Wahrscheinlichkeit, dass Spreads in den nächsten 20 Tagen um mehr als 50 bp ausweiten, im obersten Quintil?" Dieses Signal ist real und nutzt ein Drawdown-Hedging-Programm, das ich für ein Family-Office mit aufgebaut habe.
Datenquellen — was wirklich brauchbar ist.
- FRED (St. Louis Fed): kostenlos, hochwertig, deckt fast alle US-Yields, Spreads und Macro-Indikatoren ab. API ist stabil. Erste Wahl für alles, was nicht intraday sein muss.
- TreasuryDirect: für Auktions-Daten, Bid-to-Cover-Ratios und Issuance-Schedules. Spielt eine Rolle bei kurzfristigen Yield-Bewegungen rund um große Auktionen.
- EZB Statistical Data Warehouse: für Euro-Yields und Bund-Spreads zuverlässig und kostenlos.
- Bloomberg Terminal: für Corporate-Bond-Einzeltitel-Daten praktisch alternativlos, aber teuer. Wer keine 25 000 € pro Jahr ausgeben will, kommt nicht an Refinitiv oder spezialisierten Anbietern wie ICE-Data vorbei.
- FINRA TRACE: für US-Corporate-Bond-Transaktionen kostenlos, aber mit Lag und vielen Datenqualitätsfallstricken. Brauchbar für Forschung, nicht für Live-Signale.
Ich nutze für reine Research-Projekte fast ausschließlich FRED plus EZB-Daten. Erst wenn ein Modell live geht, kommt teurer Datenfeed dazu.
Konkretes Python-Setup, das bei uns produktiv läuft.
Eine schlanke Pipeline für tägliche Yield-Curve- und Spread-Forecasts:
# pipeline.py — täglicher Lauf um 23:00 UTC
import pandas as pd
from fredapi import Fred
from joblib import load
fred = Fred(api_key=API_KEY)
def fetch_yields():
series = ["DGS3MO","DGS2","DGS5","DGS10","DGS30","BAMLH0A0HYM2","VIXCLS"]
df = pd.concat({s: fred.get_series(s) for s in series}, axis=1)
return df.ffill().dropna()
def make_features(df):
f = pd.DataFrame(index=df.index)
f["slope_2_10"] = df["DGS10"] - df["DGS2"]
f["hy_spread"] = df["BAMLH0A0HYM2"]
f["hy_chg_20"] = df["BAMLH0A0HYM2"].diff(20)
f["vix"] = df["VIXCLS"]
f["vix_z"] = (df["VIXCLS"] - df["VIXCLS"].rolling(252).mean())
return f.dropna()
def forecast():
df = fetch_yields()
X = make_features(df).iloc[[-1]]
model = load("models/hy_spread_20d.joblib")
pred = model.predict(X)[0]
return {"date": df.index[-1].isoformat(), "pred_hy_chg_20d": float(pred)}
if __name__ == "__main__":
out = forecast()
print(out)
Der gesamte Lauf dauert unter 30 Sekunden, schickt das Ergebnis per Mail und schreibt es in eine SQLite-Datei für die Forecast-Historie. Das Modell-Retraining läuft wöchentlich am Sonntag, ebenfalls automatisiert.
Ehrliche Erwartung an die Performance.
Wer hofft, mit ML ein Bond-Trading-System zu bauen, das Sharpe 2 schießt, wird enttäuscht. Bonds sind diversifizierter, langsamer und in vielen Segmenten stärker durch Notenbanken getrieben als durch Marktteilnehmer. Was realistisch geht:
- Verbesserte Duration-Steuerung im Anleihen-Portfolio durch Yield-Curve-Forecasts
- Frühwarnsystem für HY-Spread-Ausweitung als Overlay für Equity-Hedging
- Strukturierte Extraktion von Notenbank-Signalen für taktische Allokationen
- Liquiditäts-Forecasts in einzelnen Emissionen, um Slippage in der Ausführung zu reduzieren
Jede dieser Anwendungen liefert für sich genommen 30–80 bp Mehrwert pro Jahr auf Portfolioebene — nicht spektakulär, aber stabil und gut skalierbar. Wer das mit drei oder vier solchen Bausteinen kombiniert und die Korrelationen sauber managed, kommt am Ende auf einen messbaren Edge, der in der Branche selten ist.
Sie wollen Bond-Forecasting in Ihren Anlageprozess integrieren? Erstgespräch buchen — ich zeige Ihnen, wo der Aufwand sich lohnt und wo nicht.