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

การพล็อตความสัมพันธ์ระหว่างราคาและ 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
  • ใช้ for loop ที่เตรียมไว้พร้อมกับ 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")
แก้ไขและรันโค้ด