← 返回目录
p6.1动手⏱ 约 16 分钟

基金数据管线:三种净值,三个完全不同的收益率

同一只基金 22 年——单位净值口径 61.8%,累计净值 367.8%,复权净值 1157.3%

🔎 最后验证 2026-07📚 来源:5 只公募基金 2004-2026 的净值口径对比与分红/拆分自检,2026-07-31 于 ECS 实测,输出见 code/outputs/🧰 akshare 1.18.81、pandas 3.0.5、Python 3.12.13
为什么学这个

一只基金有三个"净值",而只有一个能用来算收益率

同一只基金、同一段 21.9 年、期间分红 22 次:

单位净值口径     61.8%      年化  2.22%
累计净值口径    367.8%      年化  7.28%
复权净值口径   1157.3%      年化 12.23%

三个数都能在软件里查到,而其中两个是错的。

这是 p1.3「复权口径」在基金上的版本,而且错得更隐蔽:股票不复权你还看得出跳空,基金单位净值分红后掉下来,页面上就是一条平滑曲线。

💡 打个比方

你有一棵果树。

单位净值看的是树本身值多少钱——摘了果子卖掉,树的估值就掉了

累计净值是"树 + 历年卖果子的钱",但那些钱一直放在抽屉里。

复权净值是"树 + 卖果子的钱又买了新树苗、新树苗也结果"。

只有第三个,回答的才是「这些年我到底赚了多少」。

一、三种口径的定义与实测

口径定义隐含假设
单位净值每份当前值多少分红后下跌——等于把分红当成亏损
累计净值单位净值 + 历史累计分红分红一分钱没再投,躺在活期账户
复权净值分红按除息日净值再投唯一能回答"我赚了多少"

5 只样本(按代码取样,非精选,不构成任何基金推荐):

代码起始年数单位净值%累计净值%复权净值%分红次数
0000512009-0717.075.075.075.00
1000382009-1216.488.4147.0167.43
1100032004-0322.2121.3325.3638.210
2700022004-0721.961.8367.81157.322
5193002006-0420.311.8205.0324.39

第一行是对照组:000051 期间没有分红,所以三种口径完全相同。

分红次数越多,三个数差得越远。

二、以分红最多的那只为例

样本 270002,21.9 年,期间分红 22 次,累计分红 3.06 元/份:

单位 → 累计   差 306.0 个百分点     (把分红当亏损的代价)
累计 → 复权   差 789.5 个百分点     (分红再投的复利)
⚠️ 避坑

"我买的基金这些年才涨了 61.8%"——这句话大概率是看错了口径。

  • 用单位净值算收益率,等于假设每次分红你都把钱扔了。
  • 用累计净值算,等于假设分红全部躺在活期账户里,一分钱没再投。

而更麻烦的是:很多平台默认展示的就是单位净值曲线。它平滑、连续、看不出任何异常——分红那天的下跌,混在正常波动里。

对照 p1.3:股票不复权,除权日会留下一个肉眼可见的跳空;基金单位净值不会

越是看不出问题的口径错误,越危险。

🔧 动手做:同一只基金,涨了 61.8% 还是 1157.3%?(5 分钟)

python div_audit.py,看同一只基金 22 年的三种净值口径。

你会看到(实测):同一只基金、同一段时间——单位净值 61.8%、累计净值 367.8%、复权净值 1157.3%,差了近 1100 个百分点。

想明白:"这只基金涨了多少",答案完全取决于你用哪种净值口径。单位净值扣了分红(看着最差),复权净值把分红再投资加回去(唯一能和股票比的口径)。拿错口径比,能差出一千个百分点。看任何基金收益,先问:哪种净值?

三、复权净值怎么算(以及为什么必须先自检)

分红当日:单位净值下跌 D,而累计净值把它加了回去。所以:

D_t   = Δ累计净值 − Δ单位净值                    # 反推当日分红
adj_t = adj_{t-1} × (nav_t + D_t) / nav_{t-1}   # 按除息日净值再投

但这条推断有个前提必须验证:当日净值下跌是分红造成的,不是拆分造成的。

两者在数据里长得不一样,可以区分:

单位净值累计净值
大比例分红大跌基本不动(它把分红加回去了)
基金拆分大跌同比例跟跌(份额翻倍,每份都摊薄)

自检结果(取每只基金占比最大的 3 笔):

110003  2007-05-18  分红 1.5500/份  占单位净值 57.3%
        当日单位净值 -57.6%   而累计净值 -0.3%    分红
270002  2006-12-11  分红 0.8000/份  占单位净值 43.4%
        当日单位净值 -41.9%   而累计净值 +1.2%    分红
519300  2007-04-11  分红 0.6100/份  占单位净值 36.0%
        当日单位净值 -35.9%   而累计净值 +0.1%    分红

全样本疑似拆分事件:0 

占净值 36%~57% 的那几笔,全部是 2006–2007 年的"净值归一"式大比例分红,不是拆分。

拆分会让 Δ累计 − Δ单位 ≈ 0,本推断天然不会把它当分红。但换一只基金、换一个数据源,这张表都必须重跑再用。

四、费率:唯一一个你永远看不见的成本

管理费与托管费按日计提,和收益一起复利。相对零费率还剩多少:

年费率10 年后20 年后30 年后30 年少赚
0.5%95.1%90.5%86.0%14.0%
1.0%90.4%81.8%74.0%26.0%
1.5%86.0%73.9%63.5%36.5%
2.0%81.7%66.8%54.5%45.5%

1.5% 的年费率,30 年吃掉 36.5%。

而它从来不出现在净值曲线上——因为公布的净值本来就是扣费后的。

你看不见它,不代表它没发生。这与 p4.2 的交易成本是同一类:不出现在报表里的成本,才是最容易被漏算的成本。

五、T 日规则:定投回测该用哪一天的净值

场外基金申购的确认规则与股票完全不同:

15:00 前提交当日收盘后公布的净值确认(T 日)
15:00 后提交下一交易日净值确认
赎回到账普遍 T+2 ~ T+7(货币基金除外)

对回测的三条直接影响:

  1. 定投日的成交净值 = 当日收盘净值,不是开盘也不是任何盘中价——这与 P4 事件引擎"次日开盘成交"的股票口径不同,不能照搬
  2. 你下单那一刻不知道成交净值是多少(净值当晚才公布)。所以"净值跌破 X 就多投"这类规则,只能用昨日净值判断(p1.2)
  3. 赎回到账有 T+2~T+7 的空档,期间资金不在场内也不计收益
⚠️ 避坑

很多定投回测把第 ② 条弄错了:用当日净值判断、又用当日净值成交。

那不是定投,那是每天都能看到收盘价再决定买不买。

这是 p1.2「未来函数」在基金场景的具体形态——而且比股票更容易犯,因为申购确实是按当日净值成交的,很容易顺手把判断也放在当日。

成交用当日净值(),判断用当日净值()。同一天的同一个数,一个能用一个不能用。

❓ 测验
某平台显示你持有的基金「近 10 年涨幅 45%」,而另一个平台显示同一只基金「近 10 年涨幅 130%」。最可能的原因是?
✏️ 填空
分红当日,单位净值大跌而 ___ 净值基本不动,这是区分「大比例分红」与「基金拆分」的判据。

📌 免责:本课为技术教学,样本按代码取样(非精选),不推荐任何基金;所有数据为历史披露净值,不构成投资建议。

✅ 小结

四件事:

  1. 三种净值,三个完全不同的收益率。同一只基金 21.9 年:单位 61.8%、累计 367.8%、复权 1157.3%;而分红 0 次的对照组(000051)三者完全相同——分红次数越多,差得越远
  2. 复权净值靠 Δ累计 − Δ单位 反推分红,用之前必须自检:大比例分红时累计净值基本不动,拆分时累计净值同比例跟跌。本样本自检 0 笔拆分,最大的几笔(占净值 36%~57%)全部是 2006–2007 年的"净值归一"式分红
  3. 费率是唯一一个你永远看不见的成本:1.5% 的年费率 30 年吃掉 36.5%,而它从不出现在净值曲线上——因为公布的净值本来就是扣费后的
  4. T 日规则不能照搬股票口径:定投成交用当日收盘净值(与 P4 的"次日开盘"不同),但判断必须用昨日净值——因为下单时净值还没公布。同一天的同一个数,成交能用、判断不能用

下一节看指数与基金的机制:指数是怎么编的、基金为什么跟不上指数(跟踪误差从哪来)、以及非传统资产(黄金/加密/房产)的可回测边界在哪。

下一节 → 指数与基金机制:跟踪误差与费率复利
🔎 来源与核验· 4 条,点开核对
本节每个关键论断都对应一个可追溯的来源 —— 这是本课程"靠谱、不过时"的底线。
「三种净值口径实测(5 只基金,按代码取样):000051(0 次分红)三口径均 75.0%;100038 88.4/147.0/167.4%;110003 121.3/325.3/638.2%;270002 61.8/367.8/1157.3%;519300 11.8/205.0/324.3%」
📚 本节 code/nav_convention.py,2026-07-31 于 ECS 实测(数据落盘于 _shared/fund_nav.parquet,数值哈希 e11601811a14),输出见 code/outputs/stdout.txt✓ 已核验 2026-07
「样本 270002:21.9 年、22 次分红、累计分红 3.06 元/份;单位净值年化 2.22%、累计净值 7.28%、复权净值 12.23%;单位→累计差 306.0 pp,累计→复权差 789.5 pp」
📚 同上实测✓ 已核验 2026-07
「分红/拆分自检:全样本 0 笔疑似拆分;最大的三笔分别为 110003 2007-05-18(占单位净值 57.3%,当日单位净值 -57.6% 而累计净值 -0.3%)、270002 2006-12-11(43.4%,-41.9% vs +1.2%)、519300 2007-04-11(36.0%,-35.9% vs +0.1%)」
📚 本节 code/div_audit.py,2026-07-31 于 ECS 实测,输出见 code/outputs/div_audit.txt✓ 已核验 2026-07
「费率复利侵蚀(相对零费率的剩余比例):年费率 0.5/1.0/1.5/2.0% 在 30 年后分别剩 86.0/74.0/63.5/54.5%,即少赚 14.0/26.0/36.5/45.5%」
📚 同上实测(按年简化计提的算术演示)✓ 已核验 2026-07
复权净值由「Δ累计 − Δ单位 = 当日分红」反推并按除息日净值再投;费率表为按年简化计提的示意,实际管理费与托管费按日计提。样本为按代码取样的公募基金,非精选,不构成任何推荐。
智图软件的赞赏码
都看到这了,打个赏呗!
接下来 · p6.2
指数与基金机制:指数基金"跑赢"指数,是常态不是本事
继续读下一节 →