Мне нужно создать график платежей, который начинается с первоначального основного платежа, начисляется проценты ежеквартально с условием расчета 30/360 дней, и через 10,5 лет основная сумма и все накопленные проценты выплачиваются.
Когда я использую функцию поиска цели Excel, я получаю правильную IRR (внутреннюю норму прибыли), т.е. конечный баланс за последний период равен 0. Однако когда я использую функцию uniroot () вR, я получаю IRR, который выключен после 5-го знака после запятой, в результате около 75000 осталось в конце последнего периода.
Вот мой код R:
cfs <- c(input1$cfs)
tot_int <- c(input1$yrs)
f <- function(rate, cf, t, comp_freq=1){
disc_factor <- if (comp_freq==0){1/(1+rate*t)}
else{1/((1+rate/comp_freq)^(t*comp_freq))}
sum(cf*disc_factor)
}
ytm <- c("YTM"=uniroot(f, interval=c(-1,1), cf=cfs, t=tot_int, comp_freq=4,
extendInt="yes", check.conv=TRUE, tol=1e-16, maxiter=10000000)$root)
Когда я запускаю этот код, я не получаю ошибок, так что это не ошибка конвергенции.Если вы посмотрите на изображение ниже, IRR поиска цели Excel против uniroot () IRR начнет расходиться после 4-го знака после запятой.
Excel-поиск цели по сравнению с Uniroot () IRR
Вот изображение правильного графика платежей с использованием рассчитанного целевого поиска Excel IRR:
График Pmt с использованием IRR для поиска целей в Excel
Столбец «дни» - это количество дней в каждом периоде составления.Первоначальный основной капитал составляет 106 700 000 (B2)."Проценты" рассчитываются как дни / 360 *** RATE *** Ini_Amt.Столбец «Pmt» представляет собой последовательность денежных потоков и является фиксированным.«End_Amt» рассчитывается как Ini_Amt + Interest-Pmt.А текущий период "End_Amt" является "Ini_Amt" следующего периода.
Я также пытался решить с помощью пакетов jrvFinance и FinancialMath и получил тот же IRR, что и uniroot (), так что это не проблема с используемым методом решателя.Также подумал, что, возможно, это ошибка округления, но я сохранил все платежи в денежном потоке до 10 знаков после запятой и получил тот же IRR с помощью uniroot ().
Ценю любую помощь или предложение.Спасибо!