ราคาที่คาดการณ์ vs. ราคาจริง I
การพล็อตราคาที่คาดการณ์ของพันธบัตรในระดับอัตราผลตอบแทนต่าง ๆ โดยใช้ duration แล้วเปรียบเทียบกับราคาจริง เป็นวิธีที่ดีในการแสดงให้เห็นความแม่นยำของ duration
ในแบบฝึกหัดนี้ จะเริ่มต้นด้วยการหา duration ของพันธบัตร รวมถึงราคาพันธบัตรที่ระดับอัตราผลตอบแทนต่าง ๆ ในแบบฝึกหัดถัดไป จะหาราคาที่คาดการณ์จาก duration และพล็อตความแตกต่าง
พันธบัตรที่ใช้คือพันธบัตรอายุ 10 ปี จ่ายคูปองรายปี 5% และมีอัตราผลตอบแทนจนครบกำหนด (yield to maturity) 5%
numpy, numpy_financial, pandas และ matplotlib ถูกนำเข้ามาให้แล้วในชื่อ np, npf, pd และ plt ตามลำดับ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย Python
คำแนะนำการฝึกหัด
- หา duration และ dollar duration ของพันธบัตร
- สร้างอาร์เรย์ของ bond yields ตั้งแต่ 0 ถึง 10 โดยเพิ่มครั้งละ 0.1 แล้วแปลงอาร์เรย์นี้เป็น
pandasDataFrame ชื่อbond_yield - เพิ่มคอลัมน์
priceที่บรรจุราคาพันธบัตรสำหรับแต่ละระดับอัตราผลตอบแทน
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Price a 10 year bond with 5% coupon and 5% yield, reprice at higher and lower yields
price = ____
price_up = ____
price_down = ____
# Find the duration and dollar duration of the bond
duration = ____
dollar_duration = ____ * ____ * ____
# Create an array of yields from 0 to 10 in steps of 0.1, convert to DataFrame
bond_yields = np.arange(____, ____, ____)
bond = pd.DataFrame(____, columns=['bond_yield'])
# Add a column called price with the bond price for each yield level
bond['price'] = -npf.pv(rate=bond['bond_yield'] / 100, ____, ____, ____)