投资理财

XIRR 真实年化换算

按实际买卖日期算真实年化收益率,支持多笔加仓/减仓,可对比宣传年化验真。

  • 免费免注册
  • 结果可分享链接
  • 浏览器本地计算

提示:最后一行通常填"当前市值"(尚未赎回的持仓按今天估值,金额为正);已赎回/已收回的资金同样填正数。

3.84%
真实年化 XIRR
¥15,000.00
累计投入(元)
¥17,000.00
现值 / 收回合计(元)
¥2,000.00
绝对收益(元)

本工具按 XIRR(考虑现金流实际发生时间的真实年化)计算,多笔不规则现金流用牛顿法求根、极端情形自动切换二分法兜底。计算结果仅为测算演示,不构成投资建议。

链接带当前参数,发给别人打开就是同一份结果。

怎么用

5 步
  1. 逐笔录入现金流:每一行填一笔:左边填实际发生的日期,右边填金额。买入、申购、转入填负数,卖出、赎回、分红到账填正数。顺序不必排序,工具按日期换算。
  2. 最后一行填当前市值:还没赎回的持仓要按今天的估值补一笔正数,否则等于告诉工具「这笔钱有去无回」,算出来会是一个很难看的负年化。
  3. 按需增删行:点「+ 添加一笔现金流」可以无限加行,加仓减仓有几笔就填几笔。至少要保留两行,且必须一负一正才算得出来。
  4. 填宣传年化做验真对比:如果产品对外宣称过一个年化数字,填进下方的对比框,工具会把实算 XIRR 和宣传值并排显示,直接给出差了几个百分点。
  5. 看结果并留存:结果区给出真实年化、累计投入、现值合计与绝对收益。算完可以复制结果链接留档,或把现金流台账导出成 CSV。
深入讲解

XIRR 到底在算什么

XIRR 的全名是不定期现金流内部收益率。它要找的是这样一个年化利率 r: 把你所有的现金流按各自距首笔的天数折现回首笔那天,正负相加恰好等于零。 写成式子就是「Σ 现金流 ÷ (1+r) 的 t 次方 = 0」,其中 t 是这笔现金流距首笔的天数除以 365。

这个定义听着抽象,换句话说就好懂了:r 是让你所有投进去的钱和所有收回来的钱在时间价值上恰好扯平的那个速度。 它不关心你分几次买、买了什么、中途涨跌如何,只关心「哪天出去了多少钱、哪天回来了多少钱」。 正因为只看这两件事,它算出来的才是属于你这个人的收益率,而不是属于某个产品的统计数字。

为什么「总收益÷年数」会算错

举个能手算的例子。2023 年 1 月 1 日投 10 万,2024 年 1 月 1 日又投 10 万,2025 年 1 月 1 日全部赎回, 拿回 22 万。按最朴素的算法:总投入 20 万,赚了 2 万,跨了两年,于是「2 万 ÷ 20 万 ÷ 2 年 = 每年 5%」。

但真实答案是 6.52%。差在哪儿?朴素算法把分母当成了「20 万占用两年」, 而实际上第二笔 10 万只占用了一年。真正被占用的资金-时间是「10 万×2 年 + 10 万×1 年」, 比 20 万×2 年少了整整四分之一,分母虚大了,算出来的收益率自然偏低。

反过来也成立:如果你早早就赎回了大部分本金、只留一小笔尾巴挂到最后,朴素算法会把分母算小, 结果反而虚高。所以它不是「大概差不多」,而是方向都不固定的错——只要你的买卖不是一进一出,就别用它。

它衡量的是你,不是产品

这是最值得说清楚的一点。XIRR 属于资金加权口径:你在某个时点投得多, 那段时间的涨跌对结果的影响就大。而基金公司披露业绩用的是时间加权口径, 它刻意剔除了申购赎回的影响,衡量的是基金经理的操作水平。

两个口径回答的根本不是同一个问题。同一只基金、同一段时间,基金经理干得很好(时间加权年化 15%), 而你因为追高进场、下跌时又加了一笔在半山腰,自己的 XIRR 可能只有 3%。这不矛盾, 它恰恰说明了择时的代价。所以拿 XIRR 去横向比较两只基金的好坏是用错了工具—— 比产品用时间加权收益率,比自己用 XIRR。

几个容易踩的坑

忘了补当前市值这一笔。 如果持仓还没卖,必须在最后加一行「今天 + 当前市值」的正数。漏了这一行,等于告诉工具钱有去无回, 算出来会是一个接近 −100% 的年化。这是新手最常见的翻车点。

把分红重复记两遍。 现金分红到账要记一笔正数;但如果你选的是红利再投资,钱压根没离开账户,就不该记—— 它已经体现在当前市值里了。记两遍会让收益凭空翻倍。

用交易确认日以外的日期。 场外基金申购当天下单、次日确认份额,赎回还有 T+1 到 T+7 的到账周期。 按实际扣款日和到账日填才对得上你的银行流水。差个三五天对长期持仓影响很小, 但对只持有一两个月的短线来说,年化能差出好几个点。

拿短期 XIRR 当预期收益。 年化是外推出来的,持有期越短放大得越狠。持有 30 天赚 2%,年化约 27%; 持有 7 天赚 1%,年化能飙到 68%。这些数字在数学上没错,在决策上毫无意义。

「验真」那一栏该怎么用

填入宣传年化之后,工具会给出实算与宣传的差额。要提醒的是:差额大不等于对方骗人, 两个数字口径不同,本来就该有差。真正值得追问的是差得离谱的情形,比如宣传写年化 8%, 你自己算出来是 −3%,而这段时间你既没有频繁进出、也没在明显的高点接盘。

这时候可以问三句话:这个 8% 是哪一段区间算出来的,是年化还是累计,扣没扣申赎费和管理费。 多数时候答案就藏在这三句里。把差额摆出来的意义不是抓谁的把柄, 而是让你在下一次听到一个漂亮数字时,本能地先问一句「按什么口径算的」。

边界情况与本工具的假设

日期口径按实际天数除以 365(Actual/365),闰年不做特殊处理,因此跨闰年的结果会有零点几个百分点的量级差异, 这是行业里常见的简化。求根用牛顿法从 0.1 起步、最多迭代 50 次,不收敛时自动切换到二分法兜底, 搜索区间是年化 −99.99% 到 1000%,落在这个区间外的极端现金流会返回 0。 至少要有两笔现金流、且必须一负一正才有解;若所有现金流日期完全相同,方程与 r 无关, 工具会判为不可行而不是给你一个假年化。还有一个数学上的老问题:当现金流的正负号变化超过一次时, 理论上可能存在多个解,本工具返回的是搜索到的那一个——对绝大多数「先买后卖」的实际场景不会遇到, 但如果你的现金流反复大进大出,结果值得多留个心眼。 最后,工具算的是你录入的现金流本身,费用如果已经从扣款金额里体现就自然算进去了, 没体现的部分(比如从净值中日常计提的管理费)不会单独扣除。

风险提示:XIRR 反映的是历史现金流的真实年化,不代表未来收益,过往业绩不代表未来表现。本工具仅为测算演示,不构成投资建议。

延伸阅读

想弄清楚为什么简单的「总收益÷年数」在分批买入时会算错、以及 XIRR 具体怎么帮你避开这个坑,可以读一读 《你的基金真实年化是多少?别被宣传数字骗了》

常见问题

6 条
XIRR是什么,跟普通年化收益率有什么不一样?
XIRR(内部收益率)是把每一笔现金流实际发生的日期都算进去的年化收益率,而很多产品页面写的"年化",往往是按一个固定期间(比如成立以来)粗略折算的统计口径。如果你是分批买入、分批卖出,或者中途加过仓、减过仓,普通的"总收益÷年数"根本反映不出你真实的资金使用效率,只有按实际日期算的 XIRR 才对得上你自己的钱包。
我这笔基金/理财的真实年化到底怎么算?
把你每一笔实际发生的买入、卖出按日期和金额录进去:买入(申购、转入)填负数,卖出、赎回或者"现在还没卖、按当前市值算"都填正数,日期用实际交易日或今天。工具会按这些现金流反推出唯一那个能让净现值为零的年化利率,这就是你这笔投资真实的资金加权年化,跟你分几次买、买了多少年、中间加没加仓都无关,算出来的就是"你的钱"实际滚动的速度。
产品宣传的年化收益率是真的吗?
宣传年化本身未必是编的,但它和你自己的真实年化经常对不上——原因通常是统计口径不同:产品宣传可能按"成立以来累计收益折算"或者只取某段区间,而你实际是分批买入、可能还在中途加过仓减过仓。把你自己的现金流填进这个工具算出真实 XIRR,跟宣传数字放在一起比一比,差距不一定说明有问题,但如果差得离谱,值得去问一句"这个年化到底是怎么算出来的"。
为什么我算出来的 XIRR 比基金页面上写的年化低不少?
最常见的原因是买入时机。如果你不是在成立日就一次性买入,而是后来才分批进场,尤其是追高之后买的,你个人的持有期收益天然会比"从成立日算到现在"的官方口径低,这不是工具算错了,而是你和"从头持有"的假设持有人,本来就经历了不同的价格路径。这也是 XIRR 存在的意义——它只对你自己的现金流负责,不对产品的历史平均数负责。
中途加仓、减仓也能算吗?
可以,而且这正是 XIRR 相对普通年化最大的优势。每一次加仓按发生日期填一笔负数,每一次减仓或分红到账按发生日期填一笔正数,笔数不受限制。工具会把所有这些现金流按各自距首笔的天数换算成年,一起反推出一个统一的年化利率,不需要你自己去手工加权平均,也不用担心笔数太多算不过来。
才持有一个多月,算出来年化二十几个点,这数字能信吗?
算是对的,但不能当预期用。XIRR 的输出永远是年化口径,它会把你这段时间的收益按复利外推成一整年。持有 30 天赚了 2%,年化出来大约是 27%——这不是说这笔投资一年能赚 27%,只是说"如果接下来十一个月都按这个速度走"才会是 27%,而短期的这 2% 里往往有很大一块是运气。持有期越短,年化的放大倍数越离谱,几天的收益率年化出来动辄三位数。看短期结果时,直接看绝对收益比看年化更诚实。

本工具仅为测算演示,不构成投资建议。计算结果受输入假设影响,实际情况请以官方规定与金融机构公布为准。

回到计算器