Dollar convexity และการพยากรณ์ราคาพันธบัตร

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

Joshua Mayhew

Options Trader

Dollar convexity

  • Convexity = การเปลี่ยนแปลง % ของ duration เมื่อ yield เปลี่ยน 1%

  • Dollar convexity = การเปลี่ยนแปลงเป็น $ ของ duration เมื่อ yield เปลี่ยน 1%:

$ \text{Dollar Convexity} = \text{Convexity} \times \text{Bond Price} \times 0.01^2$

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

ตัวอย่าง Dollar convexity

  • พันธบัตรอายุ 10 ปี คูปอง 3% yield 5% มูลค่าที่ตราไว้ USD 100 — dollar convexity คือเท่าไร?
price = -npf.pv(rate=0.05, nper=10, pmt=3, fv=100)
price_up = -npf.pv(rate=0.06, nper=10, pmt=3, fv=100)
price_down = -npf.pv(rate=0.04, nper=10, pmt=3, fv=100)
convexity = (price_down + price_up - 2 * price) / (price * 0.01 ** 2)
dollar_convexity = convexity * price * 0.01 ** 2
print("Dollar Convexity: ", dollar_convexity)
Dollar Convexity:  0.69
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

Convexity adjustment

  • นำ convexity มาช่วยพยากรณ์ราคาพันธบัตรได้แม่นยำขึ้น
  • Convexity adjustment = ราคาพันธบัตรเปลี่ยนแปลงเท่าใดเนื่องจาก convexity

$ \text{Convexity Adjustment} = 0.5 \times \text{Dollar Convexity} \times 100^2 \times (\Delta y)^2$

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

ตัวอย่าง Convexity adjustment

  • พันธบัตรอายุ 10 ปี คูปอง 3% yield 5% มูลค่าที่ตราไว้ USD 100
  • convexity adjustment คือเท่าไร?
price = -npf.pv(rate=0.05, nper=10, pmt=3, fv=100)
price_up = -npf.pv(rate=0.06, nper=10, pmt=3, fv=100)
price_down = -npf.pv(rate=0.04, nper=10, pmt=3, fv=100)
convexity = (price_down + price_up - 2 * price) / (price * 0.01 ** 2)

dollar_convexity = convexity * price * 0.01 ** 2
convexity_adjustment = 0.5 * dollar_convexity * 100 ** 2 * 0.01 ** 2 print("Convexity Adjustment: ", convexity_adjustment)
Convexity Adjustment:  0.35
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

การผสม duration และ convexity

  • พยากรณ์การเปลี่ยนแปลงราคาจาก duration เพียงอย่างเดียว:

$ \text{Price Change} = -100 \times \text{Dollar Duration} \times \Delta y$

  • พยากรณ์การเปลี่ยนแปลงราคาจากทั้ง duration และ convexity:

$ \text{Price Change} = -100 \times \text{Dollar Duration} \times \Delta y \ + \ \text{Convexity Adjustment}$

$ = -100 \times \text{Dollar Duration} \times \Delta y \ + \ 0.5 \times \text{Dollar Convexity} \times 100^2 \times (\Delta y)^2$

  • การผสม duration และ convexity ช่วยให้ประมาณราคาแม่นยำขึ้น
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

ตัวอย่าง Duration และ Convexity

  • พันธบัตรอายุ 10 ปี คูปอง 3% yield 5% มูลค่าที่ตราไว้ USD 100:
price = -npf.pv(rate=0.05, nper=10, pmt=3, fv=100)
price_up = -npf.pv(rate=0.06, nper=10, pmt=3, fv=100)
price_down = -npf.pv(rate=0.04, nper=10, pmt=3, fv=100)
duration = (price_down - price_up) / (2 * price * 0.01)
dollar_duration = duration * price * 0.01
convexity = (price_down + price_up - 2 * price) / (price * 0.01 ** 2)
dollar_convexity = convexity * price * 0.01
convexity_adjustment = dollar_convexity * 100 ** 2 * 0.01 ** 2
combined_prediction = -100 * dollar_duration * 0.01 + convexity_adjustment
print("Predicted Price Change: ", combined_prediction)
Predicted Price Change:  -6.64
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python

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

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

Preparing Video For Download...