YTM bulmak için uniroot fonksiyonunu kullan
Deneme-yanılma oldukça zahmetli bir süreçtir. Alternatif olarak, senin yerine işi yapan bir algoritma kullanabilirsin. Bu özel durumda, problemin çözümü bir fonksiyonun kökünü bulmakla aynıdır.
Bu egzersizde, kökü bulmak için unrioot() fonksiyonunu kullanacaksın.
uniroot() fonksiyonu, ilk elemanı tahvilin fiyatı (negatif sayı) ve kalan elemanları tahvilden beklediğin nakit akışları (yani kupon ve anapara ödemeleri) olan cf adlı bir nakit akışları vektörü kurmamızı gerektirir.
Unutma: Tahvilin fiyatı $95.79, nominal değeri $100, kupon oranı %5 ve vadesine 5 yıl vardır.
Bu egzersiz
R ile Tahvil Değerleme ve Analizi
kursunun bir parçasıdırEgzersiz talimatları
- İlk (negatif) tahvil fiyatını ve vade sonuna kadar olan (pozitif) ödemeleri içeren bir nakit akışları vektörü
cfoluştur. - Her dönem için tahvil değerini hesaplayan basit bir tahvil değerleme fonksiyonu
bval()oluşturmak için önceden yazılmış kodu kullan. uniroot()kullanarakytm()fonksiyonunu oluşturmak için önceden yazılmış kodu kullan.- Tahvilin vadeye kadar getirisi değerini bulmak için
ytm()fonksiyonunucfvektörünle kullan.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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