คำนวณ 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