Trasforma il tuo codice in una funzione di valutazione obbligazionaria
Negli esercizi precedenti hai seguito, passo dopo passo, come calcolare il valore di un’obbligazione. Tuttavia, ripetere tutti quei passaggi per valutare molte obbligazioni sarebbe scomodo. Per fortuna, puoi creare una funzione che esegua sempre gli stessi calcoli per obbligazioni diverse.
La funzione che crei deve essere flessibile e permetterti di inserire le caratteristiche chiave dell’obbligazione. Riprendendo il nostro esempio precedente, ti servirà che la funzione consideri il valore nominale (par), il tasso cedolare (coupon rate), il tempo alla scadenza (time to maturity) e il rendimento (yield).
In questo esercizio creerai la funzione bondprc che prende questi quattro input per calcolare il valore di un’obbligazione. Ricorda che per creare una funzione puoi usare function(input 1, input 2, ...) { [lines of code] }.
Questo esercizio fa parte del corso
Valutazione e analisi delle obbligazioni in R
Istruzioni dell'esercizio
- Una funzione parzialmente costruita,
bondprc, è stata generata nel tuo workspace. Completa la funzione costruendo il comandofunction()e fornendo i nomi dei quattro input:pper il valore nominale,rper il tasso cedolare,ttmper il tempo alla scadenza eyper il rendimento. - Verifica che la funzione
bondprcrestituisca un prezzo di $95.79 per il valore di un’obbligazione con valore nominale di $100, tasso cedolare del 5%, 5 anni alla scadenza e rendimento a scadenza del 6%.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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(___, ___, ___, ___)