← 返回文章库

XIRR换一个guess就变了:用一组现金流展示多个解

2026-10-23 · L0

换一个初值就出现不同结果,可能是同一现金流方程存在多个根。本例负一百、正二百三十、负一百三十二,三个日期各间隔三百六十五天,年化百分之十与百分之二十都能让现值求和等于零。只检查某个输出的残差很小,还不足以证明它是唯一可解释的收益率,更不能挑高的一个对外展示。

怎样构造一个能完整验算的多解样本?

我们故意选用整数金额与整三百六十五天间隔,排除复杂日期影响。三笔现金流有两次符号变化,中间一次收回后,期末又发生支出。这是方程实验,不代表某个真实投资的交易记录,也不推荐用这种现金流结构安排资金。

日期构造现金流/元
2025-01-01-100
2026-01-01230
2027-01-01-132

设增长因子为一加年化,乘去分母后,现值方程成为「负一百乘增长因子的平方,加二百三十乘增长因子,减一百三十二,等于零」。将整式变号,令增长因子为x,可分解为100×(x−1.1)×(x−1.2)=0。所以两个增长因子为一点一与一点二,对应两个正年率。

符号多次变化只是提示可能多解,并不保证一定有多个正根;根的数量还取决于金额与日期。这里之所以能明确下结论,是因为构造样本可以直接因式分解,且两个根都在年率大于负百分之百的定义域内。不能把这篇结论机械推广成所有频繁申赎账户都有两个解。

现值曲线怎样显示两次过零?

下面按多个候选年率计算现值,并绘出从零到百分之三十的曲线。曲线在百分之十与百分之二十处穿过零线;百分之十五处现值略正,两侧又回到负值。这也是仅看区间两端符号会漏根的示例:零与百分之三十两端都为负,中间仍然有两个交点。

候选年率现值求和/元
0.000000%-2.000000000
5.000000%-0.680272109
10.000000%-0.000000000
15.000000%0.189035917
20.000000%0.000000000
25.000000%-0.480000000
30.000000%-1.183431953
50.000000%-5.333333333

0%10%20%30%0元

图形是本例方程的数值采样,不是收益历史走势图。横轴是尝试代入的年率,纵轴是由这组三笔现金流得到的现值金额。它帮助理解求解地形,但确认两个根仍要依靠代数推导与回代检查,不能只凭像素判断。

不同初值究竟会把求解带到哪里?

这里运行的是本文标准库脚本中的牛顿法:从初值计算现值及导数,再更新候选率,直到残差足够小。它展示数值求解可能落入不同根,不声称逐行复制某个电子表格版本内部未公开的实现细节。

牛顿法初值迭代次数找到的年率残差/元
0.05510.000000%-8.53e-14
0.15720.000000%-3.55e-13
0.3520.000000%-4.12e-13
0.8620.000000%-1.99e-13

初值靠近某个根时,可能更容易收敛到那个根,但「更接近」不是所有方程下的可靠保证。导数过小、一步越出定义域或达到迭代上限,都可能打断过程。本文还用区间二分分别夹住两个已知根,得到约百分之十与百分之二十,并检查代回残差,因此不是只记录一轮求解成功的偶然结果。

多解时为什么不能把两个根平均?

两个根只是同一现值方程的两个零点,平均值并不自动继续满足方程。表中百分之十五处现值就不是零。它们也不是上半年与下半年的回报,不能相加或平均成另一种整体收益。更高根不意味着真实赚了更多钱,金额现金流始终完全相同。

解释这种账户时,应明确披露多根事实,提供现金流原表和研究区间。如果为了业务报告改用其他收益口径,需说明新口径的定义与它回答的问题,不能悄悄挑一个看起来更好看的根继续称为唯一真实年化。本文不替特定业务选择绩效标准,只指出单个年化在这个样本中缺少唯一性。

找到一个残差很小的结果后,还要检查什么?

先确认现金流与日期没有遗漏,再查看符号变化与现值曲线。有限扫描找不到其他根不能证明不存在,尤其是可能相切或落在扫描范围以外的情形。本例有代数结构,可以完整说明两个根;一般不规则日期样本则需要明确搜索范围、精度与尚未排除的可能。

保存求解初值、算法、停止条件和回代残差,别人才能理解为什么两次运行得到不同输出。若不同工具给出两个数,先查是否都是同一方程的有效根,再讨论实现差异,避免把数学上的多解误诊为某个工具必然算错。这个核验过程帮助识别指标局限,不产生交易信号。

如果按正负号次数预报根数,会不会过度推断?

会。现金流符号变化可以提示需要检查复杂性,却不能替代实际求解。金额稍作改变,二次式可能变成没有实根、只有一个重根或根落在定义域外。日期不再等间隔时,也不能直接沿用这道整数二次式的因式分解。读者若想复现实验,应先完整复制金额与日期,再逐项改变条件,而不是只复制三个正负号。

本例根两侧的现值绝对值很小,图形看上去可能接近零线,但这与现金流只有百元量级有关。把所有金额同时放大,曲线纵轴数值会按比例放大,根的位置不变。故不能以曲线离零线看起来近,便认为整段利率都同样有效;验证要使用具体金额尺度和明确残差容差。

还有一种常见误读是把求解初值理解成投资者预期收益。初值在这里是数值算法的起点,不是新增现金流,也不改变方程中的历史日期。改变初值并没有改变投资经历,它只是让迭代走了不同路径。因此报告时应把初值列在求解设置中,而不与投入金额、产品回报混在同一栏。

到哪里核对口径与基础计算?

概念背景见本站基础文章;相关计算工具可辅助做基础核算。本文扩展情景由上面的独立账表复现,使用工具前请检查它实际提供的参数,不把表格中的全部功能视为工具已有功能。

道积君编辑组|AI辅助起草,构造算例经程序复算。全部数字是教学构造,不是真实产品、历史行情或实盘记录;仅用于投资教育,不构成投资建议,也不预测未来收益。

公式资料:Microsoft XIRR函数、Google Sheets XIRR。核对日:2026-10-23。上述资料用于现金流与日期公式核对,不作为任何具体产品交易规则的依据。

复算资料

本篇编号为DJ015。可下载Python核算脚本(文本)与完整输入输出JSON,对照文中表格复算。脚本文件改存为.py后可用Python运行;数据均为构造教学样本。

这个页面有问题?

提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。