แปลงโค้ดให้เป็นฟังก์ชัน

การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R

Clifford Ang

Senior Vice President, Compass Lexecon

ฟังก์ชันประเมินมูลค่าพันธบัตร

  • คอร์สนี้จะประเมินมูลค่าพันธบัตรหลายรายการ
  • ขั้นตอนจากบทก่อนหน้าจะถูกนำมาใช้ซ้ำ
  • สร้างฟังก์ชัน bondprc() เพื่อลดความซับซ้อนของการคำนวณ
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R

ขั้นตอนการประเมินมูลค่าพันธบัตร

  • ทำให้ตัวรับเข้าเหล่านี้เป็นแบบทั่วไป:
    • p สำหรับมูลค่าที่ตราไว้
    • r สำหรับอัตราดอกเบี้ยพันธบัตร
    • ttm สำหรับเวลาจนถึงครบกำหนด
    • y สำหรับอัตราผลตอบแทน
  • ปรับโค้ดบางส่วนให้มีความยืดหยุ่นมากขึ้น
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R

ขั้นตอนการประเมินมูลค่าพันธบัตร

cf <- c(rep(p * r, ttm - 1), p * (1 + r))
  • rep(x, y) - ทำซ้ำค่า x จำนวน y ครั้ง
  • x = p * r = การจ่ายดอกเบี้ย
  • y = ttm - 1 = เวลาครบกำหนดของพันธบัตรลบหนึ่งปี
  • p * (1 + r) = เงินต้น + การจ่ายดอกเบี้ยงวดสุดท้าย
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R

ขั้นตอนการประเมินมูลค่าพันธบัตร

cf <- data.frame(cf)
  • แปลงเป็น data frame เพื่อเพิ่มตัวแปรได้ (เหมือนในส่วนก่อนหน้า)
cf$t <- as.numeric(rownames(cf))
  • สร้าง time index สำหรับการคิดลดมูลค่า
    • rownames() ของเวกเตอร์ cf มีค่าเท่ากับ 1, 2, 3, 4, จนถึง ttm ของพันธบัตร
    • as.numeric() ใช้เพื่อให้แน่ใจว่าค่าถูกอ่านเป็นตัวเลข
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R

ขั้นตอนการประเมินมูลค่าพันธบัตร

cf$pv_factor <- 1 / (1 + y)^cf$t
  • คำนวณ PV factor
cf$pv <- cf$cf * cf$pv_factor
  • คำนวณ PV ของกระแสเงินสดแต่ละงวด
sum(cf$pv)
  • รวม PV เพื่อหามูลค่าของพันธบัตร
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R

รวมโค้ดเข้าด้วยกัน

  • สร้างฟังก์ชัน bondprc()
  • รับตัวรับเข้าคือ p, r, ttm, และ y
bondprc <- 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

มาฝึกกันเถอะ!

การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R

Preparing Video For Download...