2016-10-20 13 views
0

私は、計算機オンラインと比較したときに正しい結果を与える、Pythonで書かれた簡単な働く年金ローン計算機を持っています。つまり、月額(関心部分、前払金額など)と実効金利(EIR)があります。それは私が支払い、私のEIR変化に月額料金を追加するとき、2 numpyの関数、しかし毎月の手数料で正しい実効金利を計算する

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

IPMT PPMTを使用しませんが、もはや等しいオンラインローン計算によって与えられた答えを行います。

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! 

答えて

0

(有料の後に料金を見つけるために、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) 
+0

これはそれを修正!ちょうどnPer = 12 * yearsOfDownPaymentを使用しなければなりません。ありがとう! –

関連する問題