การประมาณ Yield ของพันธบัตร

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

Clifford Ang

Senior Vice President, Compass Lexecon

หา Yield ด้วยวิธีลองผิดลองถูก

  • พันธบัตรที่ซื้อขายได้สามารถคำนวณหา Yield โดยอ้อม
  • หากทราบราคาและกระแสเงินสดของพันธบัตร สามารถ "เดา" ค่า Yield ได้
  • Yield ที่ "ถูกต้อง" คือค่าที่ทำให้ราคาพันธบัตรเท่ากับ PV ของกระแสเงินสด
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R

ทดลองด้วยค่าต่าง ๆ

  • พันธบัตรมูลค่าที่ตราไว้ $100 อัตราดอกเบี้ย 5% อายุ 10 ปี ราคา $92.64
  • เดาครั้งที่ 1: 5% → ราคา $100 (สูงเกิน)
  • เดาครั้งที่ 2: 7% → ราคา $85.95 (ต่ำเกิน)
  • เดาครั้งที่ 3: 6% → ราคา $92.64 (ถูกต้อง)
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R

ทำให้กระบวนการเป็นอัตโนมัติ

  • วิธีลองผิดลองถูกไม่มีประสิทธิภาพ
  • โชคดีที่ใช้ฟังก์ชัน uniroot() ใน R ช่วยทำให้กระบวนการเป็นอัตโนมัติได้
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R

สร้างฟังก์ชันด้วย uniroot()

ytm <- function(cf) {
    uniroot(bval, c(0, 1), cf = cf)$root
}
  • สร้างฟังก์ชัน ytm() โดยใช้ uniroot()
  • ฟังก์ชันรับเวกเตอร์กระแสเงินสดที่ปรับแล้ว (cf) และใช้ฟังก์ชันประเมินมูลค่าพันธบัตรที่ปรับแล้ว (bval)
  • c(0,1) กำหนดช่วงการค้นหา Yield ระหว่าง 0% ถึง 100%
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R

เวกเตอร์กระแสเงินสดที่ปรับแล้ว

cf <- c(-92.64, 5, 5, 5, 5, 5, 5, 5, 5, 5, 105)
  • องค์ประกอบแรกคือราคาพันธบัตรในรูปจำนวนลบ
  • องค์ประกอบถัดไปคือกระแสเงินสดของพันธบัตร ได้แก่ ดอกเบี้ยและมูลค่าที่ตราไว้
  • พันธบัตรเดิม: ราคา $\$92.64$ มูลค่าที่ตราไว้ $\$100$ อัตราดอกเบี้ย 5% อายุ 10 ปี
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R

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

bval <- function(i, cf, t = seq(along = cf))  sum(cf / (1 + i)^t)
  • ต้องสร้างฟังก์ชันประเมินมูลค่าพันธบัตร bval() ที่ใช้เวกเตอร์กระแสเงินสดที่ปรับแล้ว (cf)
  • ใช้ตรรกะเดียวกับฟังก์ชัน bondprc() ของเรา
  • สร้างตัวบ่งชี้เวลา (t)
  • คิดลดกระแสเงินสดด้วยอัตราดอกเบี้ย (i)
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R

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

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

Preparing Video For Download...