java程序计算XIRR而不使用excel或任何其他库

2024-04-26

我的应用程序必须计算XIRR,但我不能使用excel,因为它在Linux上运行,任何人都可以共享逻辑或java代码来计算XIRR而不使用excel。


正如帖子中所述:C# 中的 xirr 计算 https://stackoverflow.com/questions/5179866/xirr-calculation

根据 XIRR 函数 openoffice 文档(公式与 Excel 中的相同),您需要在以下 f(xirr) 方程中求解 XIRR 变量:xirr 方程 https://i.stack.imgur.com/KV8br.png

我只是在 Java 中引用了 C# 代码,它在没有任何sup 库的情况下运行良好。即使是日期差异。但在生产代码中,您将使用 apache common 之类的东西。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

    public class XirrDate {

    public static final double tol = 0.001;    

    public static double dateDiff(Date d1, Date d2){
        long day = 24*60*60*1000;

        return (d1.getTime() - d2.getTime())/day;
    }

    public static double f_xirr(double p, Date dt, Date dt0, double x) {        
        return p * Math.pow((1.0 + x), (dateDiff(dt0,dt) / 365.0));
    }

    public static double df_xirr(double p, Date dt, Date dt0, double x) {        
        return (1.0 / 365.0) * dateDiff(dt0,dt) * p * Math.pow((x + 1.0), ((dateDiff(dt0,dt) / 365.0) - 1.0));
    }

    public static double total_f_xirr(double[] payments, Date[] days, double x) {
        double resf = 0.0;

        for (int i = 0; i < payments.length; i++) {
            resf = resf + f_xirr(payments[i], days[i], days[0], x);
        }

        return resf;
    }

    public static double total_df_xirr(double[] payments, Date[] days, double x) {
        double resf = 0.0;

        for (int i = 0; i < payments.length; i++) {
            resf = resf + df_xirr(payments[i], days[i], days[0], x);
        }

        return resf;
    }

    public static double Newtons_method(double guess, double[] payments, Date[] days) {
        double x0 = guess;
        double x1 = 0.0;
        double err = 1e+100;

        while (err > tol) {
            x1 = x0 - total_f_xirr(payments, days, x0) / total_df_xirr(payments, days, x0);
            err = Math.abs(x1 - x0);
            x0 = x1;
        }

        return x0;
    }

    private static SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    public static Date strToDate(String str){
        try {
            return sdf.parse(str);
        } catch (ParseException ex) {
            return null;
        }
    }

    public static void main(String... args) {
        double[] payments = {-1151250,232912,233123,233336,233551,233768}; // payments
        Date[] days = {strToDate("11/11/2015"),strToDate("25/11/2015"),strToDate("25/12/2015"),strToDate("25/01/2016"),strToDate("25/02/2016"),strToDate("25/03/2016")}; // days of payment (as day of year)
        double xirr = Newtons_method(0.1, payments, days);

        System.out.println("XIRR value is " + xirr);    
    }}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java程序计算XIRR而不使用excel或任何其他库 的相关文章

  • 如何在没有 create-react-app 的情况下手动配置 React 的最小设置?

    我不想使用create react app 那么我该如何配置minimal一个简单的反应应用程序的工作开发环境 Note 我知道我可能会包含所有内容在运行时作为 JS https reactjs org docs add react to
  • Django为模型表单返回两个单独的__str__

    我有一个Task包含任务和实体外键的模型 class Task models Model task models CharField max length 500 entity models ForeignKey Entity 我有一个与一
  • 如何在meteor中建立单独的测试和开发数据库

    我已经为我的流星应用程序编写了一些测试 由于他们具有删除所有文档或填充新文档的设置和拆卸方法 因此我想在专用于测试的数据库上运行它们 我注意到数据库存储在 meteor local db 中 理想情况下 我希望从不同的端口访问 db tes
  • Android 2.X 和 3.X 上的 SQLiteOpenHelper 问题

    所以我犯了一个很大的错误 在 android 4 0 上测试我的代码 并认为它在其他版本上也能正常工作 但我在使用 SQLiteOpenHelper 时遇到 2 X 和 3 X 的问题 首先是代码 public class HelperDB
  • 未创建日志文件

    我需要一个可以在项目中的多个类中使用的全局记录器 我想在 ini 文件中设置记录器设置 我开始下面的例子here https stackoverflow com questions 20086754 how to use boost log
  • 获取 pandas 布尔系列为 True 的索引列表

    我有一个带有布尔条目的熊猫系列 我想获得一个索引列表 其中的值是True 例如输入pd Series True False True True False False False True 应该产生输出 0 2 3 7 我可以通过列表理解来
  • 查找大于或等于某个值的所有值

    假设我有下表 Team Score AA 81 BB 67 CC 44 DD 1 5 JJ 279 LL 49 TT 201 GG 158 MM 32 HH 89 我想要将所有得分超过 80 的球队放在另一个表中 我尝试了 Index Ma
  • Web 配置转换不适用于 Visual Studio Online、VS2013 和 Azure

    我有一个 MVC5 网站 使用 Visual Studio Online TFS 的持续集成成功地将暂存和生产版本部署到 Azure 我已经关注了这篇博文 使用自定义部署脚本通过 git 持续交付到 Azure 网站 http chrisk
  • vNext:使用 razor 视图而无需托管的控制台应用程序

    我正在创建执行一些文件转换的控制台应用程序 这些转换可以轻松完成 从输入文件创建模型 然后为输出执行 razor 模型 为了在 IDE 中实现此功能 我使用了 Visual Studio 2015 预览版并创建了一个使用 MVC 的 vne
  • 设置 Azure 中 BLOB 存储的保留期

    我想手动设置保留期 以便在保留期结束后我可以删除存档数据 请向我建议任何可以帮助我的链接或方式 请建议我如何在我的门户中编码来设置它 我已经成功配置了生命周期管理政策 https learn microsoft com en us azur
  • Delphi 拼写检查器

    您好 我正在寻找一个与 Delphi 7 2010 一起使用的免费拼写检查器 任何人都可以给我一个指向吗 我想添加我们在 SynProject 编辑器中使用的 HunSpell 库 它包含在该 GPL 工具的源代码中 http synops
  • 如何将 XML 数据解析为 PHP 变量

    我对 php 很平庸 对 XML 一无所知 如果你能详细一点 它将帮助我学习 我正在尝试使用 PHP 编程来执行此链接的脚本 VARIABLE ZIP 是在表单中输入的实际邮政编码 该表单将在上面的链接中提交信息 该链接的输出创建了一个 X
  • iOS NSDictionary 保存到 NSUserDefaults 不保存值

    我正在尝试保存一个NSDictionary数组值到NSUserDefaults但我遇到了一些奇怪的麻烦 My NSDictionary has NSStrings for keys和每个value is a NSArray of NSNum
  • 在java中用另一个字符串替换字符串

    什么函数可以将一个字符串替换为另一个字符串 示例 1 什么将取代 HelloBrother with Brother 示例 2 什么将取代 JAVAISBEST with BEST The replace http download ora
  • Django 1.7 中的迁移

    我目前正在参与一个使用 Django 1 7 开发版本的项目 我想使用 makemigrations 和 migrate 将我在模型中所做的更改 添加字段 删除模型等 传播到数据库模式中 命令 我向应用程序中的模型之一添加了 年龄 字段 c
  • 按日期 +/- 2 个工作日对 pandas 时间序列进行切片

    具有以下时间序列 In 65 p Out 65 Date 2008 06 02 125 20 2008 06 03 124 47 2008 06 04 124 40 2008 06 05 126 89 2008 06 06 122 84 2
  • 创建持久的 php 登录 cookie 会话

    我试图让我的登录会话持续更长时间 这样人们就不会过早退出我的网站 例如 制作一篇博客文章并在提交时丢失 因为 php 的 cookie 过期了 理想情况下 我想给他们一个 2 小时的会话 他们不会注销 每次加载页面时都会刷新 下面的代码片段
  • bootstrap-datepicker 在选择日期时不会更新 AngularJS 模型

    我正在使用 AngularJS Bootstrap 的日期选择器 v1 6 4 https github com eternicode bootstrap datepicker https github com eternicode boo
  • iOS - 更改屏幕色温[重复]

    这个问题在这里已经有答案了 我想构建一个像 f lux 这样的 iOs 应用程序 它根据白天更改设备的屏幕亮度 我知道我必须越狱我的设备 但我不知道如何实现这个应用程序 请建议我任何有用的 API 来做到这一点 提前致谢 iOS 已经内置了

随机推荐

  • 如何使用 j2me 将图像保存到照片库

    我正在使用 j2me 为诺基亚 三星 LG 等制作应用程序 我想将图像保存到手机的照片库中 但我不知道我用什么路径来保存图像 看这篇文章 FileConnection API 入门 http developers sun com mobil
  • Node npm windows 文件路径太长,无法安装包

    情况 我想在Windows托管的开发环境中使用gulp和相关的前端工具链 我在尝试使用 Browser Sync 之类的 gulp 插件时遇到了困难 因为 node modules 文件夹图呈扇形分布 使得 Windows 文件路径太长而无
  • 字典键有字符限制吗?

    在 NET 中我可以使用任何字符串作为字典键吗 这是模板引擎的一部分 我计划允许用户添加他们的自定义标头和值 标题将类似于 X 的值 或 分析和 XYZ 报告摘要 我担心他们是否会在罕见字符或类似内容中遇到异常 我假设存在大小限制 但希望它
  • 删除嵌套文档数组中的嵌入文档

    我的架构如下所示 content id ObjectId 4fc63de85b20fb72290000f8 assets path temp 4f840af9565832fa14000002 4f840b1e565832fa14000007
  • 构建前将jar添加到maven本地存储库

    我有第三部分 jar 文件 该文件远程不存在于项目目录中的文件 我想在执行 mvn install 时将此 jar 添加到本地存储库中 这是我当前执行此操作的代码
  • 在存在模板的情况下继承类型声明

    有没有办法在基类模板中声明类型并在子类模板中重用这些定义 例如 考虑以下尝试 template
  • 无法拦截来自 Nike.com 登录请求的流量

    我正在使用 BurpSuite 拦截登录时发送的 HTTP HTTPS 请求https www nike com https www nike com 我试图通过以下步骤来实现这一目标 打开 BurpSuite 和 Firefox 开启代理
  • 如何在共享驱动器上执行 xpdf (pdftotext.exe)?

    我正在尝试解析pdf to text via PHP and XPDF pdftotext exe 在我的本地主机上 一切运行良好 但是当我尝试将所有内容移动到服务器上时 我遇到了麻烦 首先我检查了服务器上的一些设置 安全模式是off ex
  • 绑定到 DataContext 的 WPF 样式 DataTrigger 不起作用

    我有一个 TextBox 其样式具有可更改文本的 DataTrigger 如下所示
  • 朱莉娅中未显示情节

    我有一个名为 mycode jl 的文件 其中包含以下代码here https juliastats org MultivariateStats jl dev pca using MultivariateStats RDatasets Pl
  • 图片上传亚马逊s3 android SDK 2.0

    我想将图像上传到 android 中的亚马逊 s3 存储桶 我没有收到任何错误 但它不起作用有人可以帮助我吗 我找不到任何关于此的好的例子或问题 我将图像分配给 文件图像3 images3 new File uri getPath publ
  • 带有@null背景的图像按钮(透明)[重复]

    这个问题在这里已经有答案了 我有一个图像按钮 其图像源具有透明度 但图像按钮的背景颜色是典型的灰色按钮颜色 我想设置背景 null 这工作正常 但是 当我按下此图像按钮时 我看不到指示我按下按钮的颜色 如果我按下按钮时删除背景 null 请
  • VSCode:找不到任务中的环境变量

    我试图在 VSCode 的tasks json 中定义我自己的环境变量 根据到目前为止我找到的每个链接 我尝试了以下操作 version 2 0 0 type shell options env APP NAME myApp problem
  • KineticJS - 如何在按钮单击时更改图像 src

    我试图通过单击按钮来更改kineticjs阶段中图像的src 我有一个可拖动的图像 在本例中为达斯维德 和顶部的静态图像 在本例中为猴子 单击按钮后 我希望能够用新图像替换可拖动图像 yoda JSFiddle 可以在这里看到 http j
  • spring框架中的命令对象是什么[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 你能解释一下吗Spring框架中的命令对象及其示例 来自 Spring 文档 Command Object 将使用表单中的数据填充的 Ja
  • 如何从 Intellij Maven 项目中永久删除模块?

    我目前正在 IntelliJIdea 12 1 6 Ultimate 中开发一个更大规模的基于 Maven 的项目 我使用 IntelliJIdea 已有大约 5 个月的时间了 包含的模块依赖于另一个模块 直到最近 依赖模块的源代码也是我项
  • Git 和 Dropbox - 本地存储库

    我阅读了大量有关 Dropbox 和 Git 功能结合的帖子并观看了许多视频 其中一个线程是这样的 有效地结合使用 Git 和 Dropbox https stackoverflow com questions 1960799 using
  • jQuery 中的“#”字符(数字符号)是什么意思?

    我是 Javascript 新手 我正在尝试理解一些代码 我不明白 也找不到任何有关的文档 sign function searchTerm autocomplete searchTerm 是什么意思 现在 可能意味着私有实例字段 http
  • 编译器“何时”隐式声明默认构造函数?

    我知道如果我们不声明它 编译器将生成一个默认构造函数 何时 是我感到困惑的一点 A class Base int main return 0 B class Base int main Base b Declare a Base objec
  • java程序计算XIRR而不使用excel或任何其他库

    我的应用程序必须计算XIRR 但我不能使用excel 因为它在Linux上运行 任何人都可以共享逻辑或java代码来计算XIRR而不使用excel 正如帖子中所述 C 中的 xirr 计算 https stackoverflow com q