คำนวณ Duration
ในบทที่ 3 คุณได้เรียนรู้การใช้สูตร Approximate Duration แล้ว ทบทวนกันอีกครั้ง สูตร Approximate Duration มีดังนี้:
$$(P(down) - P(up)) / (2 * P * \Delta y)$$
โดยที่ \(P\) คือราคาพันธบัตรในปัจจุบัน, \(P(up)\) คือราคาพันธบัตรเมื่อผลตอบแทนเพิ่มขึ้น, \(P(down)\) คือราคาพันธบัตรเมื่อผลตอบแทนลดลง และ \(\Delta y\) คือการเปลี่ยนแปลงของผลตอบแทนที่คาดการณ์ไว้
ในแบบฝึกหัดนี้ คุณจะคำนวณ Duration โดยใช้ฟังก์ชัน bondprc() เพื่อคำนวณ px_up และ px_down
ออบเจ็กต์ px และ aaa_yield จากแบบฝึกหัดก่อนหน้าถูกโหลดไว้ในพื้นที่ทำงานของคุณแล้ว สำหรับแบบฝึกหัดนี้ ให้สมมติว่าการเปลี่ยนแปลงของผลตอบแทนที่คาดการณ์ไว้คือการเพิ่มขึ้น 1% และเช่นเดิม อัตราดอกเบี้ยคือ 3% (0.03) และเวลาจนครบกำหนดคือ 8 ปี
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R
คำแนะนำการฝึกหัด
- ใช้
bondprc()คำนวณราคาพันธบัตรเมื่อผลตอบแทนเพิ่มขึ้น 1% แล้วบันทึกผลลัพธ์ไว้ในpx_up - ใช้
bondprc()คำนวณราคาพันธบัตรเมื่อผลตอบแทนลดลง 1% แล้วบันทึกผลลัพธ์ไว้ในpx_down - ใช้
px,px_upและpx_downคำนวณdurationด้วยสูตรข้างต้น - คำนวณและแสดงผลการเปลี่ยนแปลงของ Duration ต่อราคาในรูปเปอร์เซ็นต์ (
duration_pct_change) โดยอิงจากduration - คำนวณและแสดงผลการเปลี่ยนแปลงของ Duration ต่อราคาในรูปตัวเงิน (
duration_dollar_change) โดยอิงจากduration
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Calculate bond price when yield increases
px_up <- bondprc(p = ___, r = ___, ttm = ___, y = ___)
# Calculate bond price when yield decreases
px_down <-
# Calculate duration
duration <- (___ - ___) / (2 * ___* ___)
# Calculate percentage effect of duration on price
duration_pct_change <-
duration_pct_change
# Calculate dollar effect of duration on price
duration_dollar_change <-
duration_dollar_change