Вычисление правильной эффективной процентной ставки с учетом ежемесячных платежей

#python #python-2.7 #numpy #finance

#python #python-2.7 #numpy #финансы

Вопрос:

У меня есть простой работающий калькулятор аннуитетного кредита, написанный на Python, который дает правильные результаты по сравнению с онлайн-калькуляторами. То есть ежемесячной суммы (какая часть составляет проценты, какова сумма первоначального взноса и т.д.) И эффективной процентной ставки (EIR). Он использует две numpy-функции, ppmt и ipmt

 loanAmount       = 100000
monthlyIntRate   = 2.5 / 12
effectiveIntRate = 100 * ((1   monthlyIntRate/100.)**12 - 1)
  

Однако, когда я добавляю ежемесячную плату к платежам, мой EIR меняется, но больше не соответствует ответам, которые дают онлайн-калькуляторы кредитов.

 monthlyFee   = -5
monthlyIntToBePaid = np.ipmt(rate, per, nPer, loanAmount)
monthDownPay = np.ppmt(rate, per, nPer, loanAmount)
amountDue    = monthlyInt   monthDownPay   monthlyFee
  

Все остальное по-прежнему находится в идеальном согласии. Я думаю, что моя формула является несколько подходящим приближением, но я хотел бы знать лучший способ сделать это!

 effectiveIntRate  = 100 * ((1  monthlyIntRate/100.)**12 - 1)
effectiveIntRate  = 100 * monthlyFee*12*2./loanAmount   # <-- this line!
  

Ответ №1:

Попробуйте это (использует IRR для определения ставки после оплаты):

 nPer=12
rate=monthlyIntRate/100.
Monthpay=np.pmt(rate, nPer, loanAmount, fv=0)
amountDue  = Monthpay   monthlyFee

effectiveIntRate  = 100 * ((1  monthlyIntRate/100.)**12 - 1)
#effectiveIntRate  = 100 * monthlyFee*12*2./loanAmount   # <-- this line!

monthpays = [-amountDue] * nPer

monthpaysf=[-loanAmount]   monthpays


efratem=np.irr(monthpaysf)

effectiveIntRateF = 100 * ((1   efratem)**12 - 1)

print(efratem*100,effectiveIntRateF)

(0.21749271256861213, 2.6413600327578557)
  

Комментарии:

1. Это исправлено! Просто пришлось использовать nPer = 12 * yearsOfDownPayment. Спасибо!