การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R
Clifford Ang
Senior Vice President, Compass Lexecon
bondprc() เพื่อลดความซับซ้อนของการคำนวณp สำหรับมูลค่าที่ตราไว้r สำหรับอัตราดอกเบี้ยพันธบัตรttm สำหรับเวลาจนถึงครบกำหนดy สำหรับอัตราผลตอบแทนcf <- c(rep(p * r, ttm - 1), p * (1 + r))
rep(x, y) - ทำซ้ำค่า x จำนวน y ครั้งx = p * r = การจ่ายดอกเบี้ยy = ttm - 1 = เวลาครบกำหนดของพันธบัตรลบหนึ่งปีp * (1 + r) = เงินต้น + การจ่ายดอกเบี้ยงวดสุดท้ายcf <- data.frame(cf)
cf$t <- as.numeric(rownames(cf))
rownames() ของเวกเตอร์ cf มีค่าเท่ากับ 1, 2, 3, 4, จนถึง ttm ของพันธบัตรas.numeric() ใช้เพื่อให้แน่ใจว่าค่าถูกอ่านเป็นตัวเลขcf$pv_factor <- 1 / (1 + y)^cf$t
cf$pv <- cf$cf * cf$pv_factor
sum(cf$pv)
bondprc()p, r, ttm, และ ybondprc <- function(p, r, ttm, y){
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)
}
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R