เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

คำนวณ Approximate Duration ของพันธบัตร

สูตรประมาณของ Duration ที่นิยมใช้กัน เรียกว่า Approximate Duration ซึ่งมีรูปแบบดังนี้ $$(P(down) - P(up)) / (2 * P * \Delta y)$$

โดยที่ \(P\) คือราคาพันธบัตรปัจจุบัน, \(P(down)\) คือราคาพันธบัตรเมื่ออัตราผลตอบแทนลดลง, \(P(up)\) คือราคาพันธบัตรเมื่ออัตราผลตอบแทนเพิ่มขึ้น และ \(\Delta y\) คือการเปลี่ยนแปลงของอัตราผลตอบแทนที่คาดการณ์ไว้

สูตร Duration แบบสมบูรณ์นั้นซับซ้อนกว่านี้ หากสนใจ สามารถดูรายละเอียดได้ในบทว่าด้วย "Fixed Income" ของหนังสือของผมได้เลย

ในแบบฝึกหัดนี้ จะคำนวณ Approximate Duration ของพันธบัตรที่มีมูลค่าที่ตราไว้ $100, อัตราดอกเบี้ยคูปอง 10%, อายุจนครบกำหนด 20 ปี, อัตราผลตอบแทน 10% และการเปลี่ยนแปลงของอัตราผลตอบแทนที่คาดการณ์ไว้ 1% โดยใช้ฟังก์ชัน bondprc() ที่คุ้นเคย ซึ่งโหลดไว้ใน Workspace แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

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

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ใช้ bondprc() คำนวณราคาพันธบัตรในปัจจุบันที่อัตราผลตอบแทน 10% บันทึกผลลัพธ์ไว้ใน px แล้วแสดงค่า px
  • เรียกใช้ bondprc() อีกครั้งเพื่อคำนวณราคาพันธบัตร (px_up) เมื่ออัตราผลตอบแทนเพิ่มขึ้น 1%
  • เรียกใช้ bondprc() ครั้งที่สามเพื่อคำนวณราคาพันธบัตร (px_down) เมื่ออัตราผลตอบแทนลดลง 1%
  • ใช้ค่าทั้งสาม (px, px_up, px_down) คำนวณ Approximate Duration โดยสมมติว่าอัตราผลตอบแทนเปลี่ยนแปลง 1%

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Calculate bond price today
px <- bondprc(p = ___, r = ___, ttm = ___, y = ___)
px

# Calculate bond price if yields increase by 1%
px_up <- 
px_up

# Calculate bond price if yields decrease by 1%
px_down <- 
px_down

# Calculate approximate duration
duration <- (___ - ___) / (___ * ___ * ___)
duration
แก้ไขและรันโค้ด