ปัจจัยที่ส่งผลต่อ duration

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

Joshua Mayhew

Options Trader

Duration ในฐานะ 'เวลาเฉลี่ย'

เวลา 'เฉลี่ย' ในการได้รับเงินคืน

รอนานขึ้น = รับความเสี่ยงจากอัตราดอกเบี้ยมากขึ้น

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

Duration ในฐานะความชันของเส้นสัมผัส

Duration คืออนุพันธ์ (อัตราการเปลี่ยนแปลง) ของราคาเทียบกับ yield

ความชันของเส้นสัมผัสคือ duration

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

อายุครบกำหนด vs. duration

  • อายุครบกำหนดยาวขึ้น = รอรับเงินคืนนานขึ้น
  • รอนานขึ้น = รับความเสี่ยงจากการเปลี่ยนแปลงอัตราดอกเบี้ยมากขึ้น
  • อายุครบกำหนดยาวขึ้น = duration สูงขึ้น
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

อัตราคูปอง vs. duration

  • คูปองสูงขึ้น = รอรับเงินคืน 'โดยเฉลี่ย' สั้นลง
  • จึงรับความเสี่ยงจากการเปลี่ยนแปลงอัตราดอกเบี้ยน้อยลง
  • ดังนั้น คูปองสูงขึ้น = duration ต่ำลง
  • พันธบัตรไม่มีคูปองมี duration สูงกว่าพันธบัตรที่มีคูปอง
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

Bond yield vs. duration

  • เส้นโค้งราคาพันธบัตรชันกว่าเมื่อ yield ต่ำ
  • Yield ต่ำ = ความอ่อนไหวต่ออัตราดอกเบี้ยสูง = duration สูง
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

วิธีวิเคราะห์ duration

สามารถวิเคราะห์ปัจจัยต่าง ๆ ที่ส่งผลต่อ duration ได้โดย:

  • เปลี่ยนปัจจัยทีละตัวแล้วคำนวณ duration โดยตรง
  • พล็อตกราฟราคา/yield แล้วดูว่าส่วนใดชันที่สุด
  • พล็อตกราฟ duration/ปัจจัย
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

พล็อตกราฟอายุครบกำหนดพันธบัตรเทียบกับ duration

import numpy as np
import numpy_financial as npf
import pandas as pd
import matplotlib.pyplot as plt
bond_maturity = np.arange(0, 30, 0.1)

bond = pd.DataFrame(bond_maturity, columns=['bond_maturity'])
bond['price'] = -npf.pv(rate=0.05, nper=bond['bond_maturity'], pmt=5, fv=100)
bond['price_up'] = -npf.pv(rate=0.05 + 0.01, nper=bond['bond_maturity'], pmt=5, fv=100)
bond['price_down'] = -npf.pv(rate=0.05 - 0.01, nper=bond['bond_maturity'], pmt=5, fv=100)
bond['duration'] = (bond['price_down'] - bond['price_up']) / (2 * bond['price'] * 0.01)
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

พล็อตกราฟอายุครบกำหนดพันธบัตรเทียบกับ duration

plt.plot(bond['bond_maturity'], bond['duration'])

plt.xlabel('Maturity (Years)')
plt.ylabel('Duration (%)')
plt.title("Effect of Varying Maturity On Bond Duration")
plt.show()

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

สรุป

Duration ของพันธบัตรจะเพิ่มขึ้นเมื่อ:

  • อายุครบกำหนดยาวขึ้น
  • อัตราคูปองต่ำลง
  • ระดับ yield ต่ำลง
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

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

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

Preparing Video For Download...