Chuyển đoạn mã của bạn thành một hàm định giá trái phiếu
Ở các bài trước, bạn đã lần lượt thực hiện từng bước để tính giá trị của một trái phiếu. Tuy nhiên, lặp lại tất cả các bước đó nhiều lần để định giá nhiều trái phiếu sẽ rất bất tiện. May mắn là bạn có thể tạo một hàm để thực hiện lại các phép tính đó cho nhiều trái phiếu khác nhau.
Hàm bạn tạo cần đủ linh hoạt để cho phép bạn nhập các đặc tính chính của trái phiếu. Cụ thể theo ví dụ trước, bạn cần để hàm có thể nhận mệnh giá của trái phiếu (par value), lãi coupon (coupon rate), thời gian đến đáo hạn (time to maturity), và lợi suất (yield).
Trong bài này, bạn sẽ tạo hàm bondprc nhận bốn đầu vào này để tính giá trị của một trái phiếu. Nhắc lại rằng để tạo một hàm, bạn có thể dùng function(input 1, input 2, ...) { [lines of code] }.
Bài tập này là một phần của khóa học
Định giá và Phân tích Trái phiếu bằng R
Hướng dẫn bài tập
- Một hàm dựng sẵn một phần,
bondprc, đã được tạo trong môi trường làm việc của bạn. Hoàn thiện hàm bằng cách viết lệnhfunction()và cung cấp tên cho bốn đầu vào:pcho mệnh giá,rcho lãi coupon,ttmcho thời gian đến đáo hạn, vàycho lợi suất. - Kiểm tra rằng hàm
bondprccho mức giá $95.79 cho một trái phiếu có mệnh giá $100, lãi coupon 5%, thời gian đến đáo hạn 5 năm, và lợi suất đến đáo hạn 6%.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Create function
bondprc <- ___(___, ___, ___, ___) {
cf <- c(rep(p * r, ttm - 1), p * (1 + r))
cf <- data.frame(cf)
cf$t <- as.numeric(rownames(cf))
cf$pv_factor <- 1 / (1 + y)^cf$t
cf$pv <- cf$cf * cf$pv_factor
sum(cf$pv)
}
# Verify prior result
bondprc(___, ___, ___, ___)