欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

金融 - PHP 计算用户的累计收益

程序员文章站 2022-04-24 15:13:28
...

求计算思路。
需求:

有一个投资产品(投资周期1年,到期赎回),收益率是这样的:
金融 - PHP 计算用户的累计收益
例如 我2015年5月10号投资10万,2016年5月9号满一年,我能够获得10万+10万*0.13 = 113000

现在有这么个需求:累计收益率。

就是比如我第一笔投资10万,收益率是13%

然后在第一笔赎回之前的时间内比如2015年8月15号,我又投资了一笔45万。如果按照原来的规定,这笔45万的投资收益率还是13%。

现在要求看这个用户的累计在投的投资,也就是在第二笔投资时,第二笔的年化收益率要按照投资金额10万+45万= 55万,也就是13.5%来算,同时第一笔投资在第二笔投资的第二天,年化收益率也要变成13.5%。

同样,在第一笔投资赎回之后(2016.5.9之后),第二笔投资的收益率要变回13%。

现在要计算用户的累计收益。

投资记录全部存储在投资记录表中(字段包括投资编号、投资金额、投资时间、结束时间、年化收益率)

我想了很久,好像很复杂(每新投资一笔都有可能影响到之前所有投资的收益率区间)。一笔投资好算,两笔投资可能要算3次,三笔投资可能要算5次。

不论用什么语言描述都可以,主要是求解决思路。

回复内容:

求计算思路。
需求:

有一个投资产品(投资周期1年,到期赎回),收益率是这样的:
金融 - PHP 计算用户的累计收益
例如 我2015年5月10号投资10万,2016年5月9号满一年,我能够获得10万+10万*0.13 = 113000

现在有这么个需求:累计收益率。

就是比如我第一笔投资10万,收益率是13%

然后在第一笔赎回之前的时间内比如2015年8月15号,我又投资了一笔45万。如果按照原来的规定,这笔45万的投资收益率还是13%。

现在要求看这个用户的累计在投的投资,也就是在第二笔投资时,第二笔的年化收益率要按照投资金额10万+45万= 55万,也就是13.5%来算,同时第一笔投资在第二笔投资的第二天,年化收益率也要变成13.5%。

同样,在第一笔投资赎回之后(2016.5.9之后),第二笔投资的收益率要变回13%。

现在要计算用户的累计收益。

投资记录全部存储在投资记录表中(字段包括投资编号、投资金额、投资时间、结束时间、年化收益率)

我想了很久,好像很复杂(每新投资一笔都有可能影响到之前所有投资的收益率区间)。一笔投资好算,两笔投资可能要算3次,三笔投资可能要算5次。

不论用什么语言描述都可以,主要是求解决思路。

考虑一种思路.大致的数据格式如下(不知道怎么搞表格,见谅)
金额 10W
年华率1 5day
年化率2 100day
年化率3 36day
每天计算一次,当天的总额是处于哪个年化率区间,就在对应的字段上面+1day.这样只要在结算周期结束的时候,根据不同的年化率所处的天数进行收益计算就可以了.

在客户投资、撤资之后,对数据库该客户对应的投资金额进行加减,再比对累计投资金额,调整相应收益率