Convierte tu código en una función de valoración de bonos
En los ejercicios anteriores, recorriste paso a paso cómo calcular el valor de un bono. Sin embargo, repetir todos esos pasos para valorar muchos bonos puede ser engorroso. Por suerte, puedes crear una función que realice esos mismos cálculos repetidamente para distintos bonos.
La función que crees debe ser flexible para permitirte introducir las características clave del bono. Siguiendo nuestro ejemplo anterior, necesitarás que la función pueda incorporar el valor nominal del bono (par), el cupón, el tiempo hasta el vencimiento y la yield.
En este ejercicio, crearás la función bondprc que toma estas cuatro entradas para calcular el valor de un bono. Recuerda que para crear una función puedes usar function(input 1, input 2, ...) { [lines of code] }.
Este ejercicio forma parte del curso
Valoración y análisis de bonos en R
Instrucciones del ejercicio
- En tu espacio de trabajo se ha generado una función parcialmente construida,
bondprc. Complétala construyendo el comandofunction()y proporcionando los nombres de cuatro entradas:ppara el valor nominal (par),rpara el tipo de cupón,ttmpara el tiempo hasta el vencimiento yypara la yield. - Verifica que la función
bondprcnos da un precio de 95,79 \( para el valor de un bono con un valor nominal de 100 \), cupón del 5 %, 5 años hasta el vencimiento y una yield to maturity del 6 %.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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(___, ___, ___, ___)