Przekształć swój kod w funkcję wyceny obligacji
W poprzednich ćwiczeniach krok po kroku wyznaczałeś(-aś) wartość obligacji. Powtarzanie tych wszystkich kroków dla wielu obligacji byłoby jednak żmudne. Na szczęście możesz stworzyć funkcję, która wykona te same obliczenia wielokrotnie dla różnych obligacji.
Funkcja musi być wystarczająco elastyczna, aby umożliwić podanie kluczowych parametrów obligacji. W odniesieniu do naszego wcześniejszego przykładu funkcja powinna przyjmować wartość nominalną obligacji, stopę kuponową, czas do wykupu oraz stopę zwrotu (yield).
W tym ćwiczeniu utworzysz funkcję bondprc, która przyjmuje te cztery dane wejściowe i oblicza wartość obligacji. Przypomnij sobie, że funkcję tworzy się za pomocą konstrukcji function(input 1, input 2, ...) { [lines of code] }.
To ćwiczenie jest częścią kursu
Wycena i analiza obligacji w R
Instrukcje do ćwiczenia
- W obszarze roboczym wygenerowano częściowo zbudowaną funkcję
bondprc. Dokończ ją, konstruując poleceniefunction()i podając nazwy czterech parametrów wejściowych:pdla wartości nominalnej,rdla stopy kuponowej,ttmdla czasu do wykupu orazydla stopy zwrotu. - Sprawdź, czy funkcja
bondprczwraca cenę 95,79 USD dla obligacji o wartości nominalnej 100 USD, stopie kuponowej 5%, czasie do wykupu wynoszącym 5 lat i rentowności do wykupu na poziomie 6%.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Create function
bondprc <- ___(___, ___, ___, ___) {
cf <- c(rep(p * r, ttm - 1), p * (1 + r))
cf <- data.frame(cf)
cf$t <- as.numeric(rownames(cf))
cf$pv_factor <- 1 / (1 + y)^cf$t
cf$pv <- cf$cf * cf$pv_factor
sum(cf$pv)
}
# Verify prior result
bondprc(___, ___, ___, ___)