Преобразуйте код в функцию оценки облигации
В предыдущих упражнениях вы шаг за шагом разбирали, как рассчитать стоимость облигации. Однако повторять все эти шаги для каждой новой облигации было бы утомительно. К счастью, можно создать функцию, которая будет выполнять те же вычисления для разных облигаций.
Функция должна быть достаточно гибкой, чтобы принимать ключевые характеристики облигации в качестве входных данных. Применительно к нашему примеру функция должна учитывать номинальную стоимость облигации, купонную ставку, срок до погашения и доходность.
В этом упражнении вы создадите функцию bondprc, которая принимает четыре таких параметра и вычисляет стоимость облигации. Напомним, что для создания функции используется конструкция function(input 1, input 2, ...) { [lines of code] }.
Это упражнение является частью курса
Оценка и анализ облигаций на R
Инструкции к упражнению
- В вашем рабочем пространстве уже частично создана функция
bondprc. Завершите её, добавив командуfunction()и указав имена четырёх входных параметров:p— номинальная стоимость,r— купонная ставка,ttm— срок до погашения,y— доходность. - Убедитесь, что функция
bondprcвозвращает цену $95,79 для облигации с номинальной стоимостью $100, купонной ставкой 5%, сроком до погашения 5 лет и доходностью к погашению 6%.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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(___, ___, ___, ___)