请问如何计算“内部收益率(IRR)”,路过均有分啦

___NULL 2010-04-02 11:47:28
请问如何计算“内部收益率(IRR)”,Excel内有个函数IRR就可以实现这个功能,但 C++ Builder 内的函数有实现这个功能的函数吗?
...全文
1314 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
___NULL 2010-04-11
  • 打赏
  • 举报
回复
用方程解了,散分
柯本 2010-04-03
  • 打赏
  • 举报
回复
老外用sql写的,供参考:
create table IncomeTable (
amt float,
d datetime
)

insert into IncomeTable values (-1000,'19980101')
insert into IncomeTable values (200,'19990101')
insert into IncomeTable values (200,'20000101')
insert into IncomeTable values (200,'20010101')
insert into IncomeTable values (200,'20020101')
insert into IncomeTable values (200,'20030101')
insert into IncomeTable values (200,'20040101')


go


create function irr(
@d datetime
) returns decimal(18,10) as begin
declare @irrPrev float set @irrPrev = 0
declare @irr float set @irr = 0.1
declare @pvPrev float
declare @pv float
set @pvPrev = (
select sum(amt)
from IncomeTable
)
set @pv = (
select sum(amt/power(1e0+@irr,cast(d-@d as float)/360e0))
from IncomeTable
)
while abs(@pv) >= 0.0001 begin
declare @t float
set @t = @irrPrev
set @irrPrev = @irr
set @irr = @irr + (@t-@irr)*@pv/(@pv-@pvPrev)
set @pvPrev = @pv
set @pv = (
select sum(amt/power(1e0+@irr,cast(d-@d as float)/365e0))
from IncomeTable
)
end
return @irr
end
go

select dbo.irr('19980101')

go

drop function irr
drop table IncomeTable
go
周药师 2010-04-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 joyous 的回复:]
引用 1 楼 zhouzhangkui 的回复:
C++ 里没有这些财务算法的
lz你最好找懂财务的人 或者 去Excel 帮助区看看 这个IRR函数的计算原理


看了,复杂 ......
[/Quote]
这么晚了 lz还在啊
你的这个问题 最好去问问财务
财务对这些最清楚了
虽然复杂 ,但只要掌握原理了,应该很快就可以解决了
pjfwdn 2010-04-03
  • 打赏
  • 举报
回复
正根的取值范围
下界:|a0|/(|a0|+M0)
上界:(|an|+Mn)/|an|
M0=max{|an|,...,|a1|}
Mn=max{|an-1|,...,|a0|},n-1为下标
pjfwdn 2010-04-03
  • 打赏
  • 举报
回复
二分法较为简单

首先确定IRR的所在区间,然后将区间等分确定所属区间,依次下去,直到满足精度为止

得到解之后还要根据定义验证是否存在IRR
pjfwdn 2010-04-03
  • 打赏
  • 举报
回复
IRR的求解可以归结为一个多项式的正根,它是唯一的,可用二分法,牛顿法,割线法求解
YeBinYe 2010-04-03
  • 打赏
  • 举报
回复
不懂财务的飘过
ydlchina 2010-04-03
  • 打赏
  • 举报
回复
iqyely 2010-04-03
  • 打赏
  • 举报
回复
学习下。
___NULL 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhouzhangkui 的回复:]
C++ 里没有这些财务算法的
lz你最好找懂财务的人 或者 去Excel 帮助区看看 这个IRR函数的计算原理
[/Quote]

看了,复杂 ......
周药师 2010-04-02
  • 打赏
  • 举报
回复
C++ 里没有这些财务算法的
lz你最好找懂财务的人 或者 去Excel 帮助区看看 这个IRR函数的计算原理

13,864

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧