Duration

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

Joshua Mayhew

Options Trader

บริบทของ Duration

  • ราคาและผลตอบแทนเคลื่อนไหวในทิศทางตรงข้ามกัน
  • เราไม่รู้ว่าพันธบัตรมีความอ่อนไหวต่ออัตราดอกเบี้ยมากแค่ไหน
  • Duration วัดความอ่อนไหวต่ออัตราดอกเบี้ย
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

ตัวอย่างเพื่อสร้างความเข้าใจ

  • สมมติพันธบัตรอายุ 5 ปี และ 10 ปี ทั้งคู่มีคูปอง 5%
  • ที่ผลตอบแทน 5% ราคาทั้งคู่อยู่ที่ USD 100:
-npf.pv(rate=0.05, nper=5, pmt=5, fv=100)
-npf.pv(rate=0.05, nper=10, pmt=5, fv=100)
100.00
100.00
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

ตัวอย่างเพื่อสร้างความเข้าใจ

หากอัตราดอกเบี้ยปรับขึ้นเป็น 6%:

-npf.pv(rate=0.06, nper=5, pmt=5, fv=100)
-npf.pv(rate=0.06, nper=10, pmt=5, fv=100)
95.79
92.64
  • พันธบัตร 5 ปี สูญเสียมูลค่า 4.21% ส่วนพันธบัตร 10 ปี สูญเสียมูลค่า 7.36%

  • พันธบัตร 10 ปี มีความอ่อนไหวต่อการเปลี่ยนแปลงอัตราดอกเบี้ยมากกว่า

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

Duration คืออะไร?

  • Duration คือ % การเปลี่ยนแปลงของราคาเมื่อผลตอบแทน (อัตราดอกเบี้ย) เปลี่ยน 1%
  • Duration สูง = ความเสี่ยงจากอัตราดอกเบี้ยสูง
  • ใช้งานทั่วไปเพื่อ:
    • วัดความเสี่ยงจากอัตราดอกเบี้ย
    • ป้องกันความเสี่ยงจากอัตราดอกเบี้ย
    • คาดการณ์กำไรและขาดทุนเมื่ออัตราดอกเบี้ยเปลี่ยนแปลง
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

การคำนวณ Duration

เราจะใช้สูตรที่ง่ายขึ้นในการคำนวณ Duration:

 

${\large Duration = \frac{P_{down}\ -\ P_{up} }{2\ \times\ P\ \times\ \Delta y}}$

 

  • $P_{down}$ = ราคาพันธบัตรเมื่อผลตอบแทนลดลง 1%
  • $P_{up}$ = ราคาพันธบัตรเมื่อผลตอบแทนเพิ่มขึ้น 1%
  • $P$ = ราคาพันธบัตรที่ผลตอบแทนปัจจุบัน
  • $\Delta y$ = การเปลี่ยนแปลงของผลตอบแทน (ใช้ค่า 1%)
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

ตัวอย่างการคำนวณ Duration

พันธบัตรอายุ 10 ปี คูปองรายปี 5% ผลตอบแทนจนครบกำหนด 4% Duration คือเท่าใด?

${ Duration = \frac{P_{down}\ -\ P_{up} }{2\ \times\ P\ \times\ \Delta y}}$

price = -npf.pv(rate=0.05, nper=10, pmt=5, fv=100)

price_up = -npf.pv(rate=0.06, nper=10, pmt=5, fv=100) price_down = -npf.pv(rate=0.04, nper=10, pmt=5, fv=100)
duration = (price_down - price_up) / (2 * price * 0.01) print(duration)
7.74

อัตราดอกเบี้ยเปลี่ยน 1% ทำให้ราคาพันธบัตรเปลี่ยนแปลง 7.74%

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

สรุป

  • พันธบัตรอาจตอบสนองต่อการเปลี่ยนแปลงผลตอบแทนในระดับเดียวกันแตกต่างกันได้
  • Duration คือ % การเปลี่ยนแปลงของราคาพันธบัตรเมื่อผลตอบแทนเปลี่ยน 1%
  • Duration วัดความอ่อนไหวต่ออัตราดอกเบี้ย
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

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

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

Preparing Video For Download...