`

java实现excel IRR算法

    博客分类:
  • java
 
阅读更多
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class IrrUtil {
	private double MINDIF = 0.001;

	private int LOOPNUM = 2000;

	private static int period = 0;  

	@SuppressWarnings("rawtypes")
	private List netCash = new ArrayList();  

	
	public static void main(String[] args) {
		List list = new ArrayList();
		list.add(-76694086.73);
		list.add(9184579.93 );
		list.add(9184579.93 );
		list.add(9184579.93 );
		list.add(9184579.93 );
		list.add(9184579.93 );
		list.add(9184579.93 );
		list.add(9184579.93 );
		list.add(9184579.93 );
		list.add(9184579.93 );
		list.add(9184579.93 );
		list.add(184579.93 );
		
		IrrUtil  aa = new IrrUtil(list,12);
		System.out.println(aa.calculator());
	}
	@SuppressWarnings("rawtypes")
	public IrrUtil(List netCashArr, int interval) {
		super();
		netCash = netCashArr;
		period = 12/interval;
	}

	private double NPV(double r) {

		double npv = 0;

		if (netCash.size() != 0) {
			for (int count = 0; count < netCash.size(); count++) {
				npv += Double.valueOf(netCash.get(count).toString()) / Math.pow(1 + r, count);
			}
			return npv;
		}
		return Double.NaN;
	}

	public double calculator() {

		double irr = 0;
		double r1 = new BigDecimal("0.1").doubleValue();
		double r2 = new BigDecimal("0.09").doubleValue();
		double npv1 = NPV(r1);
		double npv2 = NPV(r2);
		//System.out.println(netCash+"--");
		int count = 0;
		while (Math.abs(npv2) > MINDIF & count < LOOPNUM) {
			irr = r2 - npv2 * (r2 - r1) / (npv2 - npv1);
			r1 = r2;
			r2 = irr;
			npv1 = npv2;
			npv2 = NPV(r2);
			count++;
			// System.out.println(count+"--");
		}
		// System.out.println(irr*period+"--");
		if (Math.abs(npv2) < MINDIF & count <= LOOPNUM)

			//return irr * period ;
			return irr;
		else
			return Double.NaN;
	}
}

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    通过封装的工具类,来计算XIRR内部收益率

    这个工具类很可能包含了计算XIRR所需的关键算法和方法。下面,我们将深入探讨XIRR的计算原理和如何利用编程实现。 1. **XIRR计算原理**: XIRR的计算目标是找到一个利率,使得投资的净现值(NPV)等于零。它考虑了...

    贷款内部收益率IRR计算表格、程序和代码

    在C语言中计算IRR并非直接内置的功能,通常需要自定义算法或者使用库函数实现。`testirr.cpp`可能是一个C语言编写的程序,用于计算分期贷款的IRR。程序可能会涉及以下关键点: 1. **现金流计算**:首先,需要确定每...

    财务收益率计算java工程XIRR

    在这个Java工程中,`XIRR`是实现这个功能的核心算法。 在Eclipse开发环境中,Java程序员可以创建一个项目来实现财务收益率计算。Eclipse是一个流行的集成开发环境(IDE),支持多种编程语言,包括Java,它提供了...

    (完整word)EXCEL财务函数(IRR、XIRR、MIRR).doc

    "EXCEL财务函数(IRR、XIRR、MIRR)" IRR(Internal Rate of Return)函数是EXCEL中的一种财务函数,用于计算投资项目的内部报酬率。它的应用非常广泛,是学习财务管理不可或缺的工具。IRR 函数的参数定义如下:=IRR...

    相同间隔时间序列的现金流量内部收益率_Excel IRR函数的应用.rar

    在Excel中,内部收益率(Internal Rate of Return, IRR)函数是一种非常重要的财务分析工具,尤其在评估投资项目或现金流情况时。它可以帮助我们确定投资项目的回报率,即当投资现金流的净现值(NPV)等于零时的折现...

    滤波算法_irr滤波_C++_

    综上所述,IRR滤波在C++中的实现是一个结合了信号处理理论和程序设计的过程,涉及到滤波器设计、参数设置、算法实现和性能优化等多个方面。通过理解IRR滤波的工作原理和C++编程技巧,我们可以创建出能够平滑处理数据...

    irr测算excel

    租金、IRR、总资金占用收益率测算表及公式

    财税实务:Excel函数:IRR函数.pdf

    Excel 函数 IRR 函数详解 IRR 函数是 Excel 中一个重要的财务函数,用于计算投资项目的内部报酬率。内部报酬率是指投资项目的回报率,即投资项目的收益除以成本的百分比。在财务分析和投资决策中,IRR 函数是一个...

    office excel函数及算法大全

    《Office Excel函数及算法大全》是一份详尽的参考资料,旨在帮助用户全面掌握Excel中的各类函数和算法。这份文档不仅涵盖了基本的统计、数学、逻辑、文本等常见函数,还包括了高级的查找、日期时间、工程、财务等...

    iir滤波器的设计.zip_IRR滤波器的设计_irr滤波器_模拟低通滤波_滤波器

    文件列表中的"iir滤波器的设计.docx"很可能是详细介绍了IRR滤波器设计步骤、算法实现以及可能遇到的问题和解决策略的文档。这份文档可能涵盖了从理论到实践的整个过程,包括模拟滤波器设计、离散化转换、系数计算、...

    用EXCEL计算财务内部收益率

    此时,Excel的IRR函数可能无法确定唯一解,需要借助其他方法来确定合适的IRR。 另外,Excel还提供了另一个类似的函数——XIRR,它可以处理非定期的现金流。XIRR函数需要额外提供一个日期参数,以便更准确地计算现金...

    如何利用Excel计算NPV和IRR.pdf

    ### 如何利用Excel计算NPV和IRR #### 核心知识点概述 本文旨在详细介绍如何使用Microsoft Excel这款强大的电子表格软件来高效地计算净现值(NPV)和内部收益率(IRR),这两个指标对于评估投资项目的价值至关重要...

    财税实务:巧用Excel计算NPV和IRR.pdf

    财税实务:巧用Excel计算NPV和IRR NPV(净现值)和IRR(内部收益率)是财务人员在进行投资决策时两个非常重要的投资指标。NPV是按照一定的折现率将未来现金流量折算成现在的价值,以判断投资项目的可行性。IRR则是...

    Excel函数:IRR函数【会计实务操作教程】.pptx

    Excel函数:IRR函数【会计实务操作教程】 IRR函数是Excel中的一个重要函数,它用于计算投资项目的内部收益率,帮助用户评估投资项目的盈利能力。IRR函数的使用可以帮助用户快速计算投资项目的内部收益率,从而辅助...

    NPV_IRR_c_

    压缩包内的文件"软工经济-NPV,IRR.cpp"是一个源代码文件,很可能包含了计算NPV和IRR的具体算法。C++是C语言的一个扩展,它增加了面向对象编程的功能,但仍然保持了C语言的效率。源码文件通常包含函数定义、变量声明...

    iirj:用JAVA编写的高效IIR滤波器库

    用JAVA编写的IIR过滤器库。 高通,低通,带通和带阻分别为Butterworth,Bessel和Chebyshev I / II型。 它基于IIR1库[ ],而该库又基于Vinnie Falco的DSPFilters [ ]。 用法 import uk.me.berndporr.iirj.*; 建设...

    irr:更好地实现numpy.irr

    此numpy.irr包含从头构建的numpy.irr的自定义实现。 它用于计算,也称为APR,在许多财务情况下都非常有用。 numpy.irr什么问题? 它非常慢,通常返回nan 。 正在安装 最简单的安装方法可能是运行以下命令: pip ...

    运用Excel软件计算NPV净现值和IRR内部收益率及投资回收期折现率财务净现值的解释.doc

    "利用Excel软件计算NPV净现值和IRR内部收益率及投资回收期折现率财务净现值的解释" 本文主要讲解如何使用 Excel 软件来计算 NPV 净现值、IRR 内部收益率、投资回收期折现率和财务净现值,并通过实例演示如何使用 ...

Global site tag (gtag.js) - Google Analytics