LoslegenKostenlos loslegen

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

Kurs anzeigen

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() mit uniroot() zu erstellen.
  • Verwende ytm() mit deinem cf‑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


Code bearbeiten und ausführen