MulaiMulai sekarang secara gratis

Gunakan fungsi uniroot untuk menemukan YTM

Metode coba-coba sangat merepotkan. Alternatifnya adalah menggunakan algoritma yang melakukan pekerjaan tersebut untuk Anda. Dalam kasus ini, penyelesaiannya sama dengan mencari akar dari suatu fungsi.

Dalam latihan ini, Anda akan menggunakan fungsi unrioot() untuk mencari akarnya.

Fungsi uniroot() mengharuskan kita menyiapkan vektor arus kas, cf, yang dimulai dengan harga obligasi (sebagai angka negatif) sebagai elemen pertama dan arus kas yang Anda harapkan terima dari obligasi (yaitu pembayaran kupon dan pokok) sebagai elemen-elemen berikutnya.

Ingat bahwa harga obligasi adalah $95.79 dan obligasi memiliki nilai pari $100, tingkat kupon 5%, dan jatuh tempo 5 tahun.

Latihan ini adalah bagian dari kursus

Penilaian dan Analisis Obligasi di R

Lihat Kursus

Petunjuk latihan

  • Buat vektor arus kas, cf, yang mencakup harga awal obligasi (negatif) dan pembayaran hingga jatuh tempo (positif).
  • Gunakan kode yang sudah disiapkan untuk membuat fungsi penilaian obligasi sederhana, bval(), yang menghitung nilai obligasi pada setiap periode waktu.
  • Gunakan kode yang sudah disiapkan untuk membuat fungsi ytm() menggunakan uniroot().
  • Gunakan ytm() dengan vektor cf Anda untuk menemukan yield to maturity obligasi.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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


Edit dan Jalankan Kode