Mit der Funktion uniroot die YTM finden
Ausprobieren ist sehr mühsam. Eine Alternative ist, einen Algorithmus die Arbeit machen zu lassen. In diesem Fall entspricht die Lösung dem Finden der Nullstelle einer Funktion.
In dieser Übung verwendest du die Funktion unrioot(), um die Nullstelle zu finden.
Die Funktion uniroot() verlangt, dass wir einen Vektor der Cashflows cf anlegen, der mit dem Preis der Anleihe (als negative Zahl) als erstem Element beginnt und die erwarteten Zahlungen aus der Anleihe (also Kupon- und Rückzahlungsbeträge) als weitere Elemente enthält.
Zur Erinnerung: Der Preis der Anleihe beträgt 95,79 \(, der Nennwert 100 \), der Kuponzins 5 % und die Laufzeit 5 Jahre.
Diese Übung ist Teil des Kurses
Anleihebewertung und -analyse in R
Anleitung zur Übung
- Erstelle einen Cashflow‑Vektor
cf, der den anfänglichen Anleihepreis (negativ) und die Zahlungen bis zur Endfälligkeit (positiv) enthält. - Nutze den vorgegebenen Code, um eine einfache Anleihebewertungsfunktion
bval()zu erstellen, die den Wert der Anleihe zu jedem Zeitpunkt berechnet. - Nutze den vorgegebenen Code, um die Funktion
ytm()mituniroot()zu erstellen. - Verwende
ytm()mit deinemcf‑Vektor, um die Rendite bis zur Endfälligkeit der Anleihe zu ermitteln.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Create cash flow vector
cf <- c(___, ___, ___, ___, ___, ___)
# Create bond valuation function
bval <- function(i, cf,
t=seq(along = cf))
sum(cf / (1 + i)^t)
# Create ytm() function using uniroot
ytm <- function(cf) {
uniroot(bval, c(0, 1), cf = cf)$root
}
# Use ytm() function to find yield