左手IRR,右手NPV,掌握发家致富道路密码

2023-10-15 05:20

本文主要是介绍左手IRR,右手NPV,掌握发家致富道路密码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

智能手机的普及让世界成为了我们指尖下的方寸之地。

在各种信息爆炸出现的同时,五花八门的理财信息与我们的生活越贴越近。投资不再仅仅是企业行为,对于个人而言,也是很值得关注的内容。

但是落脚到很小的例子之上,假如项目A和项目B都可以投资25W,而现在的贴现率是15%(贴现率:指将来的钱折算到现在后,少掉/多出的那部分钱与将来的钱的比值),我们投哪个项目更加划算呢?

对金融知识知之甚少的你,看到这里可能会有点慌了。

而这个问题在数据分析中,有一种专门的计算方式,用来处理这种数据,从而选择出利益最大化的数值,它的名字叫——IRR,与之相关的另一个数据概念,NPV。

接下来我们为大家简单介绍这两个概念。

IRR与NPV

NPV:Net Present Value,净现值。将未来会获得的金额转化成为现在获得的金额,和利息是分相似,但是反向计算利息的过程。

假设明天你获得15块钱,贴现率10%,换算成现就是15/1.1=13.63(元),累加之后再减去投资成本得到累计净现值。累计净现值越大越好,从理论上说净现>0,这个投资的内容就是可以获利的。

用一张表说明这个数据内容:当A、B项目都为10w元时,贴现率为10%,两个项目时长都是5年。

(图片来自网路)

最后计算是虽然前几年两项目最后获得总金额之和都是18.52w,但是在这个过程中,以B获得更多回报的时间更为提前。NPV的计算结果去是除掉货币的贬值的部分,结果是B=3.96>A=3.02,显然B项目更值得投资。

IRR:Internal Rate of Return,内部报酬率。这个数值指累计净现值为0的时候的贴现率。这个数值表示了项目能承受的最大货币贬值比率(赢利空间,抗风险能力)。想要得到这个数值需要不断使用不同的折现率进行计算,找到NPV等于零的或者是接近零的时候。

它是一项投资渴望达到的报酬率,该指标越大越好。

还是用刚那个例子来看看:

(图片来自网路)

这张图中A项目的NPV为零,此时使用的贴现率为18.45%,我们就说此时的IRR为18.45%

这个数值越大,我们的选择抗风险的能力就会越强。在如今,股票、基金、黄金、房产、期货等投资方式已为众多理财者所熟悉。但是投入的效果如何,我们通常的判断仅仅局限在了收益的数量之上,缺少更加科学的判断依据。这时候内部收益率(IRR)指标就是一个很有效果且直观的判断工具。

IRR的计算

科学计算IRR

实际使用中,我们如果想要获取IRR数值,需要进行一定计算。

在了解相关内容之前,我以为是这样的计算过程:

但其实在这个计算过程中使用到了牛顿迭代公式进行计算。

令高阶未知数IRR最终值为x,令 t = 1/(1+x),我们还需要了解(xn )'= nxn-1 ,n≠0。按照牛顿迭代公式 x n+1 = xn - f(xn)/f‘(xn)

然后带入:t n+1 = tn – [a(tn +tn2 +tn3 +tn4)+b tn5 – c]/ [a(1 +2tn +3tn2 +4tn3)+b*5tn4]

最后得到的x的数值,就是IRR。

电子表格中“千表千值”的IRR

由于这一计算过程很复杂,所以在许多数据处理工具中都可以通过公式的使用直接得到IRR的计算结果。比如Excel中可以直接实现IRR的计算,GoogleSheet等电子表格也都支持这个内容的计算。

但是由于IRR是迭代计算的结果,在电子表格中的计算结果是多值,通过设置收益率估值,来选择接近回报率。但是不同的迭代算法和迭代次数计算的IRR结果是不同的,即使收益率估值相同,不同的算法也会算出不同的值,同时迭代次数也会使计算的结果精度不同,这些值都不会完全相同。

作为一名技术顾问,总需要处理客户各种各样的问题。而在某次技术支持时,就遇到了客户反映SpreadJS的IRR计算数值和Excel不同。

客户尝试分析了一下SpreadJS计算IRR的逻辑,发现NPV由负到正的场景是正常的,但是NPV由正到负就会有问题,下面是客户分析的思路。

对于用户提到的这个问题,让我们一起使用用户提供的数据进行计算:

(客户使用的数据内容:IRR不同GUESS值IRR计算 大家有兴趣可以一起来试试)

在这个表中我们会发现-8.34%, 0.98%, 289%三个结果都是正确的。

这个问题的原因其实因为IRR本身的计算需要很多迭代,不同的算法和取值会导致最终计算结果的不同;另一个原因是因为Excel中的算法、策略都是未知的,目前没有任何资料文档说明Excel的策略。SpreadJS现阶段只能根据经验推测Excel的策略,但是仍有很多场景不能理解。

比如,A1设置-100,A2:A239设置0,A240设置100,这意味着240个周期赚了200。用Excel计算IRR(A1:A240)结果是DIV/0;还有上图中计算结果1%应该是更加合理的结果,即使在给定预估值给定0.1的情况下Excel依旧返回298%,但是很明显这个数值过于乐观。

这些问题现在业界内并没有完全统一的结果,在测试过程中,我们还使用过GoogleSheet,计算结果如下:

相比较而言我们的计算结果已经是目前大家使用中与Excel计算最为接近的。而后续我们的研发也在不断探索,力图能为这个问题提供一个更优的解答。

总结来说,IRR本身作为预估值,就有不确定性,而且没有标准确定那种算法是正确的算法,对于和Excel结果的不一致,我们也会在保证结果合理的前提下尽量和Excel保持一致。同时,在某些场景下,我们会保留自己的计算结果。

总结

看到这里你可能想说IRR的标准在电子表格中也并没有统一的定论,但是面对这个问题SpreadJS交出了一份自己的答卷。

在后续我们也会为大家带来更多关于前端电子表格揭秘的相关内容,觉得不错点个赞吧~

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

这篇关于左手IRR,右手NPV,掌握发家致富道路密码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/215583

相关文章

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

生信代码入门:从零开始掌握生物信息学编程技能

少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 介绍 生物信息学是一个高度跨学科的领域,结合了生物学、计算机科学和统计学。随着高通量测序技术的发展,海量的生物数据需要通过编程来进行处理和分析。因此,掌握生信编程技能,成为每一个生物信息学研究者的必备能力。 生信代码入门,旨在帮助初学者从零开始学习生物信息学中的编程基础。通过学习常用

如何掌握面向对象编程的四大特性、Lambda 表达式及 I/O 流:全面指南

这里写目录标题 OOP语言的四大特性lambda输入/输出流(I/O流) OOP语言的四大特性 面向对象编程(OOP)是一种编程范式,它通过使用“对象”来组织代码。OOP 的四大特性是封装、继承、多态和抽象。这些特性帮助程序员更好地管理复杂的代码,使程序更易于理解和维护。 类-》实体的抽象类型 实体(属性,行为) -》 ADT(abstract data type) 属性-》成

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密 可以将表情,动物,水果,表情,手势,猫语,兽语,狗语,爱语,符号,数字,字母,加密和解密 可以将文字、字母、数字、代码、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容 源码截图: https://www.httple.net/152649.html

JAVA初级掌握的J2SE知识(二)和Java核心的API

/** 这篇文章送给所有学习java的同学,请大家检验一下自己,不要自满,你们正在学习java的路上,你们要加油,蜕变是个痛苦的过程,忍受过后,才会蜕变! */ Java的核心API是非常庞大的,这给开发者来说带来了很大的方便,经常人有评论,java让程序员变傻。 但是一些内容我认为是必须掌握的,否则不可以熟练运用java,也不会使用就很难办了。 1、java.lang包下的80%以上的类

JAVA初级掌握的J2SE知识(一)

时常看到一些人说掌握了Java,但是让他们用Java做一个实际的项目可能又困难重重,在这里,笔者根据自己的一点理解斗胆提出自己的一些对掌握Java这个说法的标准,当然对于新手,也可以提供一个需要学习哪些内容的参考。另外这个标准仅限于J2SE部分,J2EE部分的内容有时间再另说。 1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道

作为刚从事Java开发的小白,需要掌握哪些技能

作为一个刚踏入Java开发世界的小白,面对各种技术和工具,你可能会觉得有点不知所措。但是别担心,我会给你一个简单清晰的路线图,让你可以有条不紊地掌握基本技能,逐步成长为一名Java开发者。 1. 扎实的Java基础 Java的基础是你迈向高级开发的重要基石,建议从以下几个方面着手: 语法和基础概念:比如变量、条件语句、循环、方法、数组、面向对象编程(OOP)等等。这些基础如同建房子的地基,越

mysql导出导入数据和修改登录密码

导出表结构: mysqldump -uroot -ppassword -d dbname tablename>db.sql; 导出表数据: mysqldump -t dbname -uroot -ppassword > db.sql 导出表结构和数据(不加-d): mysqldump -uroot -ppassword dbname tablename > db.sql;

掌握Hive函数[2]:从基础到高级应用

目录 高级聚合函数 多进一出 1. 普通聚合 count/sum... 2. collect_list 收集并形成list集合,结果不去重 3. collect_set 收集并形成set集合,结果去重  案例演示 1. 每个月的入职人数以及姓名  炸裂函数  概述  案例演示 1. 数据准备 1)表结构 2)建表语句 3)装载语句 2. 需求 1)需求说明 2)答