Carry-Backtest: Methodik für Devisen- und Anleihen-Carry
Der Carry-Backtest prüft zwei Strategien an Monatsdaten, je nach Währung und Laufzeit ab den 1970er-Jahren: Devisen-Carry, also hoch verzinste Währungen kaufen und niedrig verzinste verkaufen, und Anleihen-Carry entlang der Zinskurve. Diese Methodik beschreibt, was der Code der Seite Carry rechnet: Daten, Terminkurse, Regeln, Kosten, Kennzahlen und Grenzen. Idee und Forschung stehen im Artikel Carry Trade.
Daten: Kassakurse und Zinsen
Für jede Währung braucht die Rechnung zwei Monatsreihen. Der Kassakurs S ist der letzte Tageskurs des Monats in der Basiswährung je Einheit der Währung. Liegt er mehr als 10 Tage vor dem Monatsende, fällt der Monat weg, ebenso der laufende Monat. Der Euro ist vor 1999 die D-Mark; für die Lira, den Złoty, den Forint, die Tschechische Krone, die Rupiah und den Schekel beginnen die Kurse erst in den 2000er-Jahren. Der Zins i ist ein Monatsmittel kurzfristiger Zinsen in % p.a.: zuerst der 3-Monats-Interbankenzins, wo er fehlt der Tagesgeld- bzw. kurzfristige Zins, beim Yen dazwischen der Zins für 3-Monats-Einlagenzertifikate. Für den Euro gelten die Zinsen in Deutschland. Das Mittel des Monats t dient als Näherung für den Zins am Monatsende t. Alle Tage des Mittels liegen vor t.
- G10: US-Dollar, Euro, Yen, Pfund, Franken, Australischer und Neuseeland-Dollar, Kanadischer Dollar, Norwegische und Schwedische Krone.
- G10 und Schwellenländer: dazu elf Währungen (Mexikanischer Peso, Real, Rand, Lira, Indische Rupie, Złoty, Forint, Tschechische Krone, Won, Rupiah und Schekel).
- Nicht dabei: Singapur-Dollar (keine passende Zinsreihe), Renminbi (gesteuerter Kurs, Kapitalverkehrskontrollen) und Rubel (seit 2022 keine handelbaren Kurse). Einzelne Währungen lassen sich ausschließen, die Basis nicht.
Terminkurs und Überrendite je Währung
Gehandelt wird über Devisentermingeschäfte bis zum nächsten Monatsende. Den Terminkurs F leitet der Code aus der gedeckten Zinsparität ab, Zinsen nach Kalendertagen: act/360, bei Pfund, Australischem, Neuseeland- und Kanadischem Dollar, Rand, Indischer Rupie, Złoty, Won und Schekel act/365.
F = S × (1 + i_b × Δt_b) / (1 + i_k × Δt_k); x_k = (1 + i_k × Δt_k) × S_k(t+1) / S_k(t) / (1 + i_b × Δt_b) − 1- S, F
- Kassa- und Terminkurs in Basiswährung je Einheit der Währung k
- i_k, i_b
- Zins der Währung k und der Basis zum Monatsende t
- Δt
- Kalendertage bis zum nächsten Monatsende / 360 bzw. 365
- x_k
- Überrendite eines Terminkaufs von k im Folgemonat gegenüber dem Geldmarkt der Basis
Der Code zerlegt x_k in den Zinsteil d_k = (1 + i_k × Δt_k) / (1 + i_b × Δt_b) − 1, der beim Abschluss bekannt ist (Terminabschlag), und den Kursteil x_k − d_k = (1 + d_k) × (S_k(t+1) / S_k(t) − 1).
Die Regel: Rangfolge nach Zinsdifferenz
Zu jedem Monatsende ordnet der Code alle verfügbaren Währungen nach ihrer Zinsdifferenz i_k − i_b zur Basis. Verfügbar ist eine Währung, wenn Kurs und Zins zum Monatsende vorliegen und zum nächsten Monatsende ein Kurs da ist. Die Basis nimmt mit der Differenz 0 an der Rangfolge teil, wie bei manchen Carry-Indizes. Es gibt zwei Arten:
- Long/Short (Voreinstellung): die n höchstverzinsten Währungen kaufen, die n niedrigstverzinsten verkaufen, je Seite zusammen 100 % (n = 3, erlaubt 1 bis 5). Gibt es weniger als 2n Währungen, nimmt jede Seite die Hälfte. Landet die Basis auf einer Seite, bleibt ihr Anteil im Geldmarkt, und die Seite ist dann kleiner.
- Nur long gegen die Basis: bis zu n Währungen mit dem höchsten positiven Zinsabstand zur Basis kaufen. Gibt es weniger, bleiben die freien Plätze bei gleichen Gewichten und nach Rang im Geldmarkt; nach Zinsdifferenz teilen sich die gekauften Währungen die vollen 100 %.
Innerhalb einer Seite sind die Gewichte gleich, nach Rang (n, n − 1, …, 1, normiert) oder nach Zinsdifferenz: bei Long/Short nach dem Abstand zum Median der Differenzen aller verfügbaren Währungen, bei „nur long“ nach dem Abstand zur Basis. Neu gewichtet wird zu jedem Monatsende. Ein Beispiel mit ausgedachten G10-Zinsen, Basis US-Dollar mit 3,0 % und n = 3: Kanadischer Dollar (2,75 %), Norwegische Krone (2,5 %) und Schwedische Krone (2,0 %) liegen in der Mitte und werden nicht gehandelt; der Median der zehn Differenzen ist −0,375 Prozentpunkte.
| Währung | Zins | Differenz | gleich | nach Rang | nach Zinsdifferenz |
|---|---|---|---|---|---|
| Neuseeland-Dollar | 5,5 % | +2,5 | 33,3 % | 50,0 % | 46,9 % |
| Australischer Dollar | 4,5 % | +1,5 | 33,3 % | 33,3 % | 30,6 % |
| Pfund | 4,0 % | +1,0 | 33,3 % | 16,7 % | 22,4 % |
| Euro | 1,5 % | −1,5 | −33,3 % | −16,7 % | −19,5 % |
| Franken | 0,5 % | −2,5 | −33,3 % | −33,3 % | −36,8 % |
| Yen | 0,1 % | −2,9 | −33,3 % | −50,0 % | −43,7 % |
| Zinsvorteil der Positionen | 3,97 % p.a. | 4,45 % p.a. | 4,34 % p.a. |
Der Zinsvorteil ist die gewichtete Zinsdifferenz Σ w_k × (i_k − i_b); die Seite zeigt ihn für die Positionen des Folgemonats. Mit Basis Euro gehört der Euro selbst zu den drei niedrigstverzinsten: Short sind dann nur Yen und Franken mit je 33,3 %, zusammen 66,7 %.
Hebel, Volatilitätsziel und Crash-Filter
Die Gewichte w multipliziert der Code mit einem Faktor h. Ohne Steuerung ist h der Hebel (Voreinstellung 1, erlaubt 0,1 bis 5). Mit Volatilitätsziel (1 bis 40 % p.a., beim Einschalten 8 % vorgeschlagen; siehe Target Volatility) gilt:
h(t) = min(Ziel / σ̂(t); Hebelgrenze); σ̂(t) = Standardabweichung der letzten 36 Monatsrenditen des ungesteuerten Overlays bis t × √12- ungesteuertes Overlay
- Σ w_k × x_k mit den Gewichten der Regel, ohne Hebel, Filter und Kosten
- Hebelgrenze
- der eingestellte Hebel; mit der Voreinstellung 1 kann die Steuerung das Risiko nur senken
- Anlauf
- σ̂ braucht mindestens 12 Monatsrenditen, vorher gilt h = min(1; Hebelgrenze)
σ̂(t) nutzt nur Renditen bis zum Monatsende t, h(t) gilt für den Monat danach, also ohne Vorgriff auf spätere Daten. Mit Ziel 8 % und Hebelgrenze 2 ist h = 0,8 bei σ̂ = 10 %, h = 1,6 bei 5 %, und bei 3 % greift die Grenze mit h = 2.
Der Crash-Filter stellt den Folgemonat flach (alle Gewichte 0, das Geld bleibt im Geldmarkt), wenn zum Monatsende ein Stressmaß über seiner Schwelle liegt. Zur Wahl stehen der VIX (Voreinstellung 30, erlaubt 10 bis 90; ab 1990, davor sein Vorgänger VXO ab 1986) und die Devisenvolatilität: das Mittel über die G10-Währungen der annualisierten Standardabweichung ihrer täglichen Log-Kursänderungen gegen den US-Dollar im abgelaufenen Monat (Voreinstellung 12 %, erlaubt 2 bis 50 %; mindestens 10 Tageskurse je Währung und 3 Währungen). Vor Beginn einer Reihe filtert die Seite nicht und meldet, wie viele Monate das betrifft. Die Idee stützt sich auf Brunnermeier u. a. (2008), die Carry-Verluste mit sinkender Risikobereitschaft und Finanzierungsliquidität verbinden, und auf Menkhoff u. a. (2012):
„high interest rate currencies are negatively related to innovations in global FX volatility“Kosten und Gesamtrendite
R(t+1) = Geldmarkt der Basis + Σ_k W_k(t) × x_k(t+1) − Kosten; W = h × w (0 bei Filter); Kosten = Kostensatz × Σ_k |W_k(t) − W_k(t−1)|- Geldmarkt der Basis
- i_b × Δt_b: Das Kapital liegt im Geldmarkt, die Termingeschäfte kommen obendrauf (Overlay)
- Kostensatz
- je gehandeltem Nominalwert, Voreinstellung 3 Basispunkte (erlaubt 0 bis 100)
- Kosten
- fallen bei der Entscheidung an und mindern die Rendite des Folgemonats; der Einstieg zählt, das Rollen der Termingeschäfte gilt als kostenlos
Jede Monatsrendite zerlegt die Seite in Geldmarkt, Zinsdifferenz (Σ W × d), Kursänderung (Σ W × (x − d)) und Kosten und zeigt die Summen über die Zeit und je Kalenderjahr.
Anleihen-Carry: Kupon und Roll-down
Für Anleihen nutzt der Code Renditen konstanter Laufzeit zum Monatsende: US-Treasuries (Stützstellen 3 und 6 Monate sowie 1, 2, 3, 5, 7, 10, 20 und 30 Jahre) und Bundeswertpapiere (Renditen mit jährlichem Kupon für 1 bis 10, 15, 20, 25 und 30 Jahre). Carry ist dabei, wie bei Koijen u. a. (2018), der Ertrag bei unveränderten Preisen, hier also bei unveränderter Zinskurve. Jede Laufzeit n wird als Par-Anleihe gerechnet, deren Kupon der Rendite y entspricht, mit f Kupons pro Jahr (USA 2, Deutschland 1):
D = (1 − v^N) / y, v = 1 / (1 + y / f), N = f × n; erwarteter Ertrag = y_n × Δt + D × (y_n − y_{n−Δt})- D
- modifizierte Duration der Par-Anleihe (D = n bei y = 0)
- y_n × Δt
- Carry im engeren Sinn: der Kupon des Monats, Δt = Tage / 365,25
- D × (y_n − y_{n−Δt})
- Roll-down: Kursgewinn, wenn die Anleihe bei unveränderter Kurve in die Rendite der um Δt kürzeren Laufzeit rutscht; y_{n−Δt} linear zwischen den Stützstellen, unter der kürzesten flach
Realisiert wird die Monatsrendite R ≈ y_n(t) × Δt − D × Δy + ½ × C × Δy² mit Δy = y_{n−Δt}(t+1) − y_n(t) und der Konvexität C der Par-Anleihe. Bleibt die Kurve gleich, ist Δy genau der Roll-down; verschiebt sie sich, kommt die Zinsänderung dazu.
| Laufzeit | Rendite | Duration | Roll-down p.a. | Erwartet p.a. | Je Duration p.a. |
|---|---|---|---|---|---|
| 1 Jahr | 2,50 % | 0,98 | 0,20 % | 2,70 % | 0,30 % |
| 2 Jahre | 3,00 % | 1,93 | 0,96 % | 3,96 % | 0,81 % |
| 5 Jahre | 3,50 % | 4,55 | 0,68 % | 4,18 % | 0,39 % |
| 10 Jahre | 4,00 % | 8,18 | 0,82 % | 4,82 % | 0,30 % |
| 20 Jahre | 4,40 % | 13,21 | 0,53 % | 4,93 % | 0,19 % |
| 30 Jahre | 4,50 % | 16,37 | 0,16 % | 4,66 % | 0,14 % |
Anleihen: Auswahl der Laufzeiten
- Höchster Carry (Voreinstellung): die k Laufzeiten (Voreinstellung 1, erlaubt 1 bis 3) mit dem höchsten Maßstab, je mit L / k gewichtet (L = Hebel). Maßstab ist entweder der erwartete Ertrag absolut (Voreinstellung) oder die Überrendite je Durationseinheit, (erwarteter Ertrag − Geldmarktertrag des abgelaufenen Monats, also ohne Vorgriff) / D. In der Beispielkurve gewinnt absolut 20 Jahre mit 4,93 % p.a., je Durationseinheit 2 Jahre mit 0,81 % p.a.
- Durationsneutral long/short zwischen zwei Laufzeiten (Voreinstellung 2 und 10 Jahre): beide Seiten mit 5 Jahren Duration, also Gewicht L × 5 / D. Long ist die Laufzeit mit der höheren Überrendite je Duration, short die andere. Das ergibt einen Steepener, wenn die kurze Laufzeit long ist, sonst einen Flattener (durationsneutral). Im Beispiel: long 2 Jahre mit 5 / 1,93 = 259,4 %, short 10 Jahre mit 5 / 8,18 = −61,2 %; erwarteter Ertrag 4,98 % p.a., davon 2,58 Prozentpunkte über dem Geldmarkt.
Wählbar ist eine Laufzeit nur, wenn ihre Rendite zum Monatsende und zum nächsten Monatsende vorliegt. Die Gesamtrendite ist R = Geldmarkt + Σ_n W_n × (R_n − Geldmarkt) − Kosten, mit 2 Basispunkten (erlaubt 0 bis 100) je gehandeltem Nominalwert Σ |W(t) − W(t−1)|. Bei Long/Short oder Hebel über 1 wird über den Geldmarkt finanziert, zum Geldmarktzins. Als Geldmarkt dienen 3-Monats-Schatzwechsel (USD) bzw. Tagesgeld (EUR: €STR, davor EONIA, davor Tagesgeld in Frankfurt).
Vergleiche und Kennzahlen
Alle Reihen starten mit 10.000 in der Basiswährung, Erträge werden wieder angelegt. Vergleich beim Devisen-Carry sind ein gleich gewichteter Korb aller verfügbaren Fremdwährungen gegen die Basis (Hebel 1, gleiche Kosten) und der Geldmarkt der Basis. Bei Basis Dollar ist der Korb der Dollar-Faktor nach Lustig u. a. (2011). Beim Anleihen-Carry sind es feste 2 und 10 Jahre, alle wählbaren Laufzeiten gleich gewichtet und der Geldmarkt. Die Kennzahlen wie im Backtest rechnen mit dem Geldmarkt der Basis als risikofreiem Zins. Dazu kommen:
- Positionen für den Folgemonat: Zins, Differenz, Rang und Gewicht je Währung bzw. Rendite, Duration, Carry, Roll-down und Gewicht je Laufzeit.
- Zusammenhang: Korrelation und Beta der Überrenditen mit US-Aktien, Weltaktien und dem Korb (Devisen) bzw. mit 10 Jahren und dem gleich gewichteten Mix (Anleihen), ab 24 gemeinsamen Monaten, dazu der Ø Monat der Strategie in den 10 % schwächsten Monaten des Vergleichs.
- Schwächste Monate: die 10 schlechtesten Monate mit Kursteil bzw. Zinsänderung und Positionen; außerdem Umschlag und Kosten p.a., Ø Long- und Short-Summe, Anteil flacher Monate und Ø Hebel bzw. Ø Duration.
Voreinstellungen und erlaubte Bereiche
| Einstellung | Voreinstellung | Erlaubt |
|---|---|---|
| Basiswährung / Universum | USD / G10 | USD oder EUR / G10 oder G10 und Schwellenländer |
| Art / Währungen je Seite | Long/Short / 3 | Long/Short oder nur long / 1 bis 5 |
| Gewichtung | gleich | gleich, nach Rang, nach Zinsdifferenz |
| Hebel bzw. Hebelgrenze | 1 | 0,1 bis 5 |
| Volatilitätsziel | aus | 1 bis 40 % p.a. |
| Kosten Devisen / Anleihen | 3 / 2 Basispunkte | 0 bis 100 Basispunkte |
| Crash-Filter | aus | VIX 10 bis 90 (30) oder Devisenvolatilität 2 bis 50 % (12 %) |
| Start | so früh wie möglich (Devisen frühestens März 1973) | ab 1973 bis vor zwei Jahren |
| Anleihen: Markt / Art / Maßstab | US / höchster Carry / absolut | US oder DE / long/short / je Duration |
| Anleihen: Laufzeiten | 1 Laufzeit; 2 gegen 10 Jahre | 1 bis 3; zwei Laufzeiten, die kürzere zuerst |
Ein Backtest braucht mindestens 25 Monate. Beim Devisen-Carry zählen nur Monate, in denen die Basis einen Zins hat und mindestens 2n (Long/Short) bzw. n + 1 Währungen samt Basis verfügbar sind. Beim Anleihen-Carry müssen 2 und 10 Jahre und mindestens vier Laufzeiten vorliegen.
Datenlücken und Hinweise
- Fortgeschriebene Zinsen: Endet eine Zinsreihe höchstens 2 Monate vor dem jüngsten Monat aller Reihen (meist ein Veröffentlichungsverzug), gilt ihr letzter Wert weiter. Endet sie früher, übernimmt die nächste Zinsreihe. Die Seite nennt die betroffenen Währungen.
- Spätere Währungen: Eine Währung kommt erst in die Auswahl, wenn Kurs und Zins vorliegen; die Seite zeigt, ab wann.
- Lücken im Zins der Basis: Dann rechnet die Seite nur den jüngsten lückenlosen Abschnitt.
- Kurssprünge: Ändert sich ein Kurs in einem Monat um mehr als 40 % (log), meldet die Seite das als Datenprüfung (Abwertung oder Datenfehler).
- Anleihen: Fehlt einer Laufzeit die Rendite, ist sie in diesem Monat nicht wählbar; bei den US-Treasuries fehlen 20 Jahre von 1987 bis 1993, und 30 Jahre bleiben vom 18.02.2002 bis 09.02.2006 unberücksichtigt. Unter 1 Jahr gibt es bei Bundesanleihen keine Stützstelle (bei US-Treasuries vor 09/1981): Der Roll-down der einjährigen Anleihe ist dann 0. Fehlt einer festen Vergleichslaufzeit die Rendite, liegt dieser Monat im Geldmarkt.
Grenzen
- Genäherte Terminkurse: Sie stammen aus Monatsmitteln kurzfristiger Zinsen, nicht aus gehandelten Terminkursen. Abweichungen von der gedeckten Zinsparität, wie sie Du u. a. (2018) beschreiben, und Spannen der Termingeschäfte fehlen.
- Monatsdaten: Crashs innerhalb eines Monats sieht die Seite nur am Monatsende; Stop-Loss-Regeln lassen sich nicht abbilden.
- Keine weiteren Kosten: keine Finanzierungs- und Sicherheitenkosten über den Geldmarkt hinaus, keine Steuern, keine Handelsbeschränkungen in Schwellenländern.
- Par-Anleihen statt echter Anleihen: Renditen konstanter Laufzeit sind geglättete Kurvenpunkte; echte Anleihen haben andere Kupons, Liquidität und Finanzierungskosten.
- Heutiges Universum: Die Währungsliste ist heute festgelegt. Währungen, die abgeschafft oder unhandelbar wurden, fehlen in der Vergangenheit.
Häufige Fragen
Woher kommen die Terminkurse?
Aus der gedeckten Zinsparität: Terminkurs = Kassakurs × (1 + Zins der Basis × Δt) / (1 + Zins der Währung × Δt), mit Monatsmitteln kurzfristiger Zinsen. Gehandelte Terminkurse verwendet die Seite nicht.
Warum nimmt die Basiswährung an der Rangfolge teil?
Weil sie eine Währung wie die anderen ist. Gehört der Dollar selbst zu den niedrigstverzinsten, wäre ein Short in Dollar gegen Dollar sinnlos: Sein Anteil bleibt im Geldmarkt, und die Short-Seite ist kleiner als 100 %.
Schaut die Volatilitätssteuerung in die Zukunft?
Nein. Der Faktor für den nächsten Monat nutzt nur Monatsrenditen bis zum aktuellen Monatsende, höchstens die letzten 36. In den ersten 12 Monaten gilt Hebel 1 bzw. die niedrigere Hebelgrenze.
Was bedeutet durationsneutral?
Long- und Short-Seite haben je 5 Jahre Duration. Eine Parallelverschiebung der Zinskurve wirkt auf beide Seiten etwa gleich stark und hebt sich auf; übrig bleiben die Wette auf die Steilheit der Kurve sowie Carry und Roll-down.
Warum weicht die Summe der Beiträge von der Jahresrendite ab?
Die Beiträge von Geldmarkt, Zinsdifferenz, Kursänderung und Kosten sind Monat für Monat einfach addiert, die Jahresrendite ist verkettet. Bei großen Monatsrenditen wird der Unterschied sichtbar.
Literatur
- Brunnermeier, Markus K.; Nagel, Stefan; Pedersen, Lasse H. (2008): Carry Trades and Currency Crashes. NBER Macroeconomics Annual 23 (1), S. 313–348. doi:10.1086/593088
- Du, Wenxin; Tepper, Alexander; Verdelhan, Adrien (2018): Deviations from Covered Interest Rate Parity. The Journal of Finance 73 (3), S. 915–957. doi:10.1111/jofi.12620
- Koijen, Ralph S. J.; Moskowitz, Tobias J.; Pedersen, Lasse Heje; Vrugt, Evert B. (2018): Carry. Journal of Financial Economics 127 (2), S. 197–225. doi:10.1016/j.jfineco.2017.11.002
- Lustig, Hanno; Roussanov, Nikolai; Verdelhan, Adrien (2011): Common Risk Factors in Currency Markets. Review of Financial Studies 24 (11), S. 3731–3777. doi:10.1093/rfs/hhr068
- Menkhoff, Lukas; Sarno, Lucio; Schmeling, Maik; Schrimpf, Andreas (2012): Carry Trades and Global Foreign Exchange Volatility. The Journal of Finance 67 (2), S. 681–718. doi:10.1111/j.1540-6261.2012.01728.x
Diese Seite beschreibt, wie Portfolio Lab rechnet; Ergebnisse aus der Vergangenheit sind keine Prognose. Alle Begriffe im Glossar.