我试图建立一个计算器,计算复利,但有一些怪癖。明确地: a) 我希望存款金额在每个月的正态分布范围内变化,直到投资结束 b) 我希望每天的利率在正态分布范围内变化,直到投资结束
我从基础开始:
# -*- coding: utf-8 -*-
"""
Spyder Editor
This is a temporary script file.
"""
import numpy as np
from tabulate import tabulate
tabulate.PRESERVE_WHITESPACE = True
year = 1
Principal = 1050
Prev_Principal = 0
n = 365
Total_New = 0
FV_prev = 0
for year in range(1,5):
RoR = 0.01*np.random.normal(7.43,4.172,1)
PMT = np.random.normal(575,85.39,1)
FV = PMT*(12/n)*((1+(RoR/n))**(n*year)-1)/(RoR/n)
Total = FV + Principal*(1+(RoR/n))**(n*year)
Total_New = Total - Total_New
Net_Gain = Total - (year*12*PMT+Principal)
print(tabulate([["YEAR","FV","TOTAL","CI", "R%"],[year,np.round(FV,1),np.round(Total,1),np.round(Net_Gain,1),np.round(100*RoR,1)]], headers="firstrow", tablefmt='fancy_grid'))
这个基本版本只输出年底的金额,包括利息以及按年计算的净利息。不幸的是,尽管它改变了利率,但它每年只改变一次。我计划做以下工作,但我不确定它是否正确,无论是在编程方面还是在数学方面。所以我想拿这些:
FV = PMT*(12/n)*((1+(RoR/n))-1)/(RoR/n)
Total = FV + Principal*(1+(RoR/n))**(n*year)
和使用 RoR_数组=0.01*np.随机.正常(7.43,4.172365) math.prod((1+RoR_数组/365))
使用RoR_阵列,我基本上尝试创建一个包含365个元素的1D光线,一年中的每一天一个,表示每日利率。 通过“math prod”,我试图克服以下问题: 如果n=365,这意味着该年的利息是固定的,因此每天复利
Total = FV + Principal*(1+(RoR/365))**(365*1)
但是既然我想要一个可变的每日RoR,那么最好的方法是什么? 因此我使用math.prod
目前没有回答
相关问题 更多 >
编程相关推荐