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

การพล็อต Convexity เทียบกับปัจจัย

อีกวิธีหนึ่งในการตรวจสอบว่าปัจจัยใดส่งผลต่อ convexity ของพันธบัตรคือการพล็อตกราฟระหว่างปัจจัยนั้นกับค่า convexity ของพันธบัตรโดยตรง

ในแบบฝึกหัดนี้ จะกำหนดราคาพันธบัตรอายุ 20 ปี ที่มีอัตราดอกเบี้ย 6% และมูลค่าที่ตราไว้ 100 USD จากนั้นหาค่า convexity ของพันธบัตรนี้ที่ระดับอัตราผลตอบแทน (yield) ต่าง ๆ

ได้นำเข้า numpy, numpy_financial, pandas และ matplotlib ไว้ให้แล้วในชื่อ np, npf, pd และ plt ตามลำดับ

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

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

ดูคอร์ส

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

  • สร้างอาร์เรย์ของ yield พันธบัตรตั้งแต่ 0 ถึง 20 โดยเพิ่มครั้งละ 0.1 แล้วแปลงเป็น DataFrame ของ pandas
  • หาราคาของพันธบัตร เลื่อน yield ขึ้นและลงแล้วคำนวณราคาใหม่ จากนั้นคำนวณค่า convexity ของพันธบัตร
  • พล็อตกราฟโดยให้ yield ของพันธบัตรอยู่บนแกน x และค่า convexity อยู่บนแกน y

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

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

# Create array of bond yields and covert to pandas DataFrame
bond_yields = np.arange(____, ____, ____)
bond = pd.DataFrame(____, columns=['bond_yield'])

# Find price of bond, reprice for higher and lower yields, calculate convexity
bond['price'] = -npf.pv(rate=bond['____'] / 100, nper=____, pmt=____, fv=____)
bond['price_up'] = ____
bond['price_down'] = ____
bond['convexity'] = (bond['____'] + bond['____'] - 2 * bond['____']) / (bond['____'] * 0.01 ** 2)

# Create plot of bond yields against convexity, add labels to axes, display plot
plt.plot(bond['____'], bond['____'])
plt.xlabel('Yield (%)')
plt.ylabel('Convexity')
____
แก้ไขและรันโค้ด