अपने कोड को एक बॉन्ड वैल्यूएशन फंक्शन में बदलें
पिछले अभ्यासों में, आप ने चरण-दर-चरण तरीके से सीखा कि किसी बॉन्ड का मूल्य कैसे निकाला जाता है। लेकिन बहुत सारे बॉन्ड्स का मूल्य बार‑बार उन्हीं चरणों से निकालना झंझट भरा होगा। अच्छी बात यह है कि आप एक फंक्शन बना सकते हैं जो अलग‑अलग बॉन्ड्स के लिए वही कैलकुलेशन बार‑बार कर दे।
जो फंक्शन आप बनाएँगे, उसमें इतनी लचीलापन होना चाहिए कि आप बॉन्ड की मुख्य विशेषताएँ इनपुट कर सकें। हमारे पिछले उदाहरण के अनुसार, फंक्शन में बॉन्ड का par value, coupon rate, time to maturity, और yield समाहित करने की क्षमता होनी चाहिए।
इस अभ्यास में, आप bondprc नाम का फंक्शन बनाएँगे जो इन चार इनपुट्स को लेकर किसी बॉन्ड का मूल्य निकालेगा। याद रखें, फंक्शन बनाने के लिए आप function(input 1, input 2, ...) { [lines of code] } का उपयोग कर सकते हैं।
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में बॉन्ड वैल्यूएशन और विश्लेषण
अभ्यास निर्देश
- आपके वर्कस्पेस में आंशिक रूप से तैयार
bondprcफंक्शन मौजूद है।function()कमांड लिखकर और चार इनपुट्स के नाम देते हुए फंक्शन को पूरा करें: par value के लिएp, coupon rate के लिएr, time to maturity के लिएttm, और yield के लिएy। - जाँचें कि
bondprcफंक्शन हमें $100 par value, 5% coupon rate, 5 साल की maturity, और 6% yield to maturity वाले बॉन्ड के लिए $95.79 का प्राइस देता है।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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(___, ___, ___, ___)