การพล็อตความสัมพันธ์ระหว่างราคาและ Yield
แม้ว่าราคาพันธบัตรและ Yield จะมีความสัมพันธ์แบบผกผัน แต่ความสัมพันธ์นี้ไม่ได้เป็นเส้นตรง นั่นหมายความว่าการเปลี่ยนแปลงของราคาที่เกิดจาก Yield ที่เพิ่มขึ้นหรือลดลงอาจแตกต่างกันอย่างมีนัยสำคัญ เราจะกลับมาพูดถึงแนวคิดสำคัญนี้อีกครั้งในบทที่ 3 เมื่อกล่าวถึงเรื่อง Convexity และการปรับค่าเพื่อรองรับความสัมพันธ์แบบโค้งระหว่างราคาพันธบัตรกับ Yield ในตอนนี้ขอให้จำไว้ว่าความสัมพันธ์แบบผกผันนี้ไม่ใช่เส้นตรง
ในแบบฝึกหัดนี้ สมมติว่ามีพันธบัตรที่มีมูลค่าที่ตราไว้ $100 อัตราดอกเบี้ย 10% และอายุครบกำหนด 20 ปี โปรดทราบว่าพันธบัตรนี้แตกต่างจากพันธบัตรที่ใช้งานมาก่อนหน้านี้ เป้าหมายคือการประเมินมูลค่าพันธบัตรนี้ที่ระดับ Yield ต่าง ๆ โดยใช้ฟังก์ชัน bondprc() ซึ่งพร้อมใช้งานใน workspace แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การประเมินมูลค่าและวิเคราะห์พันธบัตรด้วย R
คำแนะนำการฝึกหัด
- สร้างเวกเตอร์
prc_yldตั้งแต่ 2% (0.02) ถึง 40% (0.40) โดยเพิ่มครั้งละ 1% (0.01) ด้วยฟังก์ชัน seq() - ใช้
data.frame()เพื่อแปลงprc_yldให้เป็น data frame - ใช้
forloop ที่เตรียมไว้พร้อมกับbondprc()เพื่อคำนวณราคาพันธบัตรที่ระดับ Yield ต่าง ๆ ในprc_yldลองทำความเข้าใจการทำงานของ loop นี้ด้วย - ตอนนี้ออบเจกต์
prc_yldมีคอลัมน์สำหรับ Yield (prc_yld) และคอลัมน์สำหรับราคา (price) แล้ว พล็อตออบเจกต์นี้ด้วยโค้ดที่เตรียมไว้เพื่อดูความสัมพันธ์ระหว่างราคาและ Yield to Maturity (YTM)
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Generate prc_yld
prc_yld <- seq(___, ___, ___)
# Convert prc_yld to data frame
prc_yld <- data.frame(___)
# Calculate bond price given different yields
for (i in 1:nrow(prc_yld)) {
prc_yld$price[i] <- bondprc(100, 0.10, 20, prc_yld$prc_yld[i])
}
# Plot P/YTM relationship
plot(___,
type = "l",
col = "blue",
main = "Price/YTM Relationship")