XIRR算对了吗:用XNPV残差做一次独立复核
核对一个年化结果,可以把它代回同一组现金流的现值方程,逐项折现后求和。本例求得年率13.437413%,四项现值之和约为1.48e-12元;若误用百分之十,残差约三百四十八点六一元。残差检查能验证这个数是否满足方程,但不能单独证明现金流完整,也不能证明方程只有一个根。
复核表必须和原计算共享哪些输入?
共享的是金额、日期、币种、账户边界和日计数口径。求解程序与复核表可以使用不同代码路径,但不能一个用到账日、另一个用确认日,或一个含费用、另一个漏费用。否则残差大可能来自输入变化,而不是根算错。保留原始输入的一份冻结副本,有助于避免复制过程中悄悄改了某行。
本例全部为构造样本:年初投入一万元,四月一日追加二千元,九月一日收回一千元,下一年一月一日完整期末资产一万二千五百元。假设所有金额同币种、无额外费用。以年初为零日,其余日差由日期程序计算,不用月份乘三十近似。
怎样从一笔现金流走到一项现值?
记输入年率为r、某行日差为d,逐项现值为金额/(1+r)^(d/365)。第一行日差为零,分母为一,保留负一万元。后续流出仍为负,流入为正,不能在折现以后把负号改成绝对值。
| 日期 | 金额/元 | 距首日/天 | 逐项折现/元 |
|---|---|---|---|
| 2026-01-01 | -10000 | 0 | -10000.000000000 |
| 2026-04-01 | -2000 | 90 | -1938.779587087 |
| 2026-09-01 | 1000 | 243 | 919.487428166 |
| 2027-01-01 | 12500 | 365 | 11019.292158921 |
把未舍入现值相加,结果应接近零。表格显示到九位小数方便观察,求和仍使用内部完整精度;若把每项先缩到分再相加,最后可能留下几分钱残差,那属于展示处理变化,需要与未舍入核验区分。
利率只显示两位百分点,为什么代回可能不为零?
本例完整年率约为百分之十三点四三七四一三四九九;若按百分数两位显示,就变成百分之十三点四四,对应小数零点一三四四。用这个显示值重新计算,残差约-0.254314元。它并不自动意味着完整求解失败,而是代回时使用的参数已经被舍入。
所以保存结果时,既保存完整数值,也保存展示格式。读者复制短百分数再复核时,应知道输入精度已降低。若报告只需要到分的金额准确度,却把利率压得太粗,就不能要求残差仍然低于一分钱;要么保留更多利率位数,要么解释显示值造成的残差。
金额尺度与容差应怎样一起说明?
本文教学复核采用绝对残差低于一百万分之一元,并查看相对现金流规模的残差。这个阈值只是本实验数值测试条件,不是金融业务的统一审计标准。对于大规模金额,仅看固定绝对阈值可能受浮点误差影响;对于很小金额,只看百分比又可能掩盖实际业务可接受的单位。
将所有现金流同时放大一百倍,根保持不变,程序仍得到同一年率,因为现值方程只是整体乘了一百。候选利率固定时,残差金额也会按比例放大。这个条件变化说明容差必须注明金额单位和尺度,不能把元与万元的残差数字直接比较。
一套可解释的做法是同时记录绝对残差、残差除以现金流绝对值合计的相对量,以及业务展示单位。计算近似误差与现金到账的最小单位不是同一个概念:程序能算到很小的数,不代表现实资金能够以同样精度支付。
残差很小,仍有哪些事情没有被验证?
漏掉现金余额、把内部转账当外部投入、使用错误币种或缺一笔费用,都可能形成另一套自洽方程并产生很小残差。回代只证明结果符合这组输入,不证明输入代表真实账户。原始凭证、评价边界与期末资产完整性必须另行核对,不能被一个接近零的数替代。
多根也有同样限制。两个不同年率都可能让残差很小,单点回代无法证明唯一性。若现金流多次变号,应进一步检查扫描曲线与求解范围。本文这份四行表用于演示逐项复核流程,不把它包装成所有复杂账户的完整诊断工具。
复核结论怎样写才不会过度承诺?
可以写「在所列日期、金额和固定日计数基准下,给定年率回代残差低于本次阈值」,再附上使用精度与是否检查多根。不要只写「完全正确」而省掉输入限制。别人需要能从表格重新生成结果,而不仅知道某个程序显示通过。
对应公式可再查Microsoft XNPV说明,核对日二〇二六年十月二十三日。本文逐项计算与求解脚本独立保留,便于将错误利率、舍入利率和完整利率放在同一组输入上比较;它验证过去或构造数据的算术,不预测未来回报。
两个程序给出相同结果,就算独立复核了吗?
如果两个程序都复制同一段有误代码,结果相同并不能提供很多新证据。可以把求根与逐项现值展开分开实现,并用两笔现金流的闭式解、零收益样本或同日合并恒等式交叉检查。不同实现还要共享清楚的口径,否则差异只是来自模型定义而非程序质量。
在电子表格里,把日差、指数、分母和现值分别展开,比只再填一个复杂函数更便于人工检查。逐项结果能够指出从哪行开始偏离,尤其适合发现某个日期没有随金额一起排序、某个百分数被多除一次一百的问题。可解释的中间量不是额外装饰,而是帮助定位错误的证据。
保存完整精度时还要记录数据单位,例如元、千元或万元;后续若仅为了展示改变单位,就同时改变残差单位,不能沿用旧表头。
到哪里核对口径与基础计算?
概念背景见本站基础文章;相关计算工具可辅助做基础核算。本文扩展情景由上面的独立账表复现,使用工具前请检查它实际提供的参数,不把表格中的全部功能视为工具已有功能。
道积君编辑组|AI辅助起草,构造算例经程序复算。全部数字是教学构造,不是真实产品、历史行情或实盘记录;仅用于投资教育,不构成投资建议,也不预测未来收益。
公式资料:Microsoft XIRR函数、Google Sheets XIRR。核对日:2026-10-23。上述资料用于现金流与日期公式核对,不作为任何具体产品交易规则的依据。
复算资料
本篇编号为DJ018。可下载Python核算脚本(文本)与完整输入输出JSON,对照文中表格复算。脚本文件改存为.py后可用Python运行;数据均为构造教学样本。