长周期实测:换一个起点,结论就变了
同一只基金、同样持有 10 年,起点差两年,年化从 23.25% 变成 2.33%——差 20.92 个百分点
"过去十年年化 X%"是所有长期收益率宣传的标准句式。
这一节只做一件很简单的事:把所有可能的起点都跑一遍,看这个 X 的范围有多宽。
同一只基金(复权净值口径),同样持有 10 年:
最好起点 2005-06-02 → 2015-05-26 年化 23.25%
最差起点 2007-10-11 → 2017-10-09 年化 2.33%
差 20.92 个百分点
同一个市场、同样的持有时长、同样什么都不做——起点差两年,结果差 20.92 个百分点年化。
而"挑一个好起点"这件事,完全合法:它不是造假,是选择性汇报。
两个人同一天进赌场,一个待 3 小时,一个待 3 小时零十分钟。
赌场的规则一模一样,但他们的战绩可以完全相反。
区别只在于:他们各自的那 3 小时,恰好覆盖了哪一段。
长期收益率的"起点",就是这个"哪一段"。
一、样本与口径
三个对象,口径已在 p6.1 / p6.2 处理干净:
| 对象 | 区间 | 年数 | 全程累计 | 全程年化 |
|---|---|---|---|---|
| A股基金(复权净值) | 2004-07 ~ 2026-07 | 21.9 | 1157.3% | 12.23% |
| 沪深300(价格指数) | 2010-01 ~ 2026-07 | 16.0 | 30.1% | 1.66% |
| 美股 SPY | 2007-01 ~ 2026-07 | 19.5 | 637.8% | 10.77% |
沪深300 是价格指数(不含成分股分红),按 p6.2 的实测量级,换成全收益口径大约要加回 2% 左右的年化。这里保持价格指数是为了与本课前面各节口径一致,但读的时候要记得这一点。(另:本节年数按交易日数/252 计,约 16.0 年;p6.2 按日历年约 16.5 年,故同一区间沪深300 年化在两节间有 1.61%~1.66% 的口径差。)
二、所有起点的分布
逐日滚动、重叠窗口,把每一个可能的起点都算一遍:
持有 3 年
| 对象 | 样本数 | 最差 | 中位 | 最好 | 极差 | 为负占比 |
|---|---|---|---|---|---|---|
| A股基金 | 4623 | -9.47% | 8.85% | 85.72% | 95.19 pp | 23.9% |
| 沪深300 | 3267 | -15.36% | 4.82% | 26.71% | 42.08 pp | 37.6% |
| 美股 SPY | 4167 | -10.52% | 12.93% | 28.50% | 39.03 pp | 6.8% |
持有 5 年
| 对象 | 最差 | 中位 | 最好 | 极差 | 为负占比 |
|---|---|---|---|---|---|
| A股基金 | -8.39% | 9.86% | 38.27% | 46.66 pp | 13.3% |
| 沪深300 | -4.42% | 3.63% | 15.18% | 19.59 pp | 23.6% |
| 美股 SPY | -1.56% | 13.72% | 25.01% | 26.58 pp | 1.3% |
持有 10 年
| 对象 | 最差 | 中位 | 最好 | 极差 | 为负占比 |
|---|---|---|---|---|---|
| A股基金 | +2.33% | 9.92% | 23.25% | 20.92 pp | 0.0% |
| 沪深300 | -1.52% | 4.52% | 7.08% | 8.60 pp | 3.7% |
| 美股 SPY | +6.76% | 13.17% | 17.62% | 10.85 pp | 0.0% |
持有期从 3 年拉到 10 年,三件事同时发生:极差收窄、为负占比下降、中位数变化不大。
🔧 动手做:"过去 10 年年化 X%"这句话有多不可信(5 分钟)
跑 python start_bias.py,把所有可能的起点都跑一遍,看 10 年年化的范围。
你会看到(实测):同一只基金、同样持有 10 年,起点差两年,年化从 2.33% 到 23.25%(极差 20.92pp)。
想明白:"过去十年年化 X%"是所有收益宣传的标准句式,但那个 X 完全取决于你哪天开始——同一个市场,能是 2.33%,也能是 23.25%。单一起点的年化数字基本没有信息量,要看所有起点的分布。
三、时间确实降低了亏损概率——但没有消除
"长期持有一定赚钱"这句话,在这份数据里只有一半成立。
| 持有期 | A股基金为负 | 沪深300 为负 | SPY 为负 |
|---|---|---|---|
| 3 年 | 23.9% | 37.6% | 6.8% |
| 5 年 | 13.3% | 23.6% | 1.3% |
| 10 年 | 0.0% | 3.7% | 0.0% |
时间确实在降低亏损概率,但沪深300 持有 10 年仍有 3.7% 的起点是负的——而且这还是价格指数口径下的 3.7%。
更重要的是:"为负占比 0%"不等于"一定赚钱"。它只说明在这段历史里没出现过,而样本只有 22 年、且高度重叠(逐日滚动的 2915 个窗口,实际独立信息远少于 2915)。
这与 p5.6 的教训相同:样本内没发生过的事,不等于不会发生。
四、分年起点表:同一个市场,逐年买入持有 5 年
A股基金(复权净值),每年年初买入并持有 5 年的年化(%):
2005: 37.2 2006: 34.7 2007: 8.9 2008: -6.4 2009: 10.5 2010: 0.6
2011: 5.9 2012: 12.8 2013: 15.6 2014: 10.4 2015: 16.4 2016: 14.2
2017: 12.5 2018: 6.2 2019: 7.5 2020: 1.5 2021: -0.6
沪深300 价格指数:
2011: 1.7 2012: 7.8 2013: 10.1 2014: 5.0 2015: 2.7 2016: 8.7
2017: 8.0 2018: -1.0 2019: 2.7 2020: -1.7 2021: -2.2
美股 SPY:
2008: 2.4 2009: 16.9 2010: 14.9 2011: 11.9 2012: 14.4 2013: 15.3
2014: 8.6 2015: 11.8 2016: 15.1 2017: 18.3 2018: 9.1 2019: 15.4
2020: 14.2 2021: 14.7
2006 年初买入 A股基金持有 5 年:年化 34.7%。2008 年初买入:年化 -6.4%。相差两年,差 41 个百分点。
五、看到长期收益率宣传,问三个问题
- 起点是哪一天?换成前后各一年,数字变多少?
- 有没有给所有起点的分布,而不只是一个数?
- 用的是价格指数还是全收益指数(p6.2)?单位净值还是复权净值(p6.1)?
第 ③ 条现在应该已经形成条件反射了:这门课里同一个"口径"问题已经出现四次——股票复权(p1.3)、基金净值(p6.1)、指数含不含分红(p6.2)、以及这一节的起点。
本节这张分布表,就是"所有起点"的诚实版本。
六、这一节给后面两节铺的路
起点敏感性直接决定了下一节的题目:
如果一次性投入的结果这么依赖起点,那"分批投入"能不能把这个依赖降下来?
这正是定投被反复宣传的理由。下一节用同一批数据,把这个说法做成可检验的实验。
📌 免责:本课为技术教学,样本按代码取样(非精选),不推荐任何基金、指数或市场;历史模拟不构成投资建议。
四件事:
- 起点决定结论。同一只基金同样持有 10 年:最好起点年化 23.25%、最差 2.33%,差 20.92 pp;沪深300 差 8.60 pp、SPY 差 10.85 pp。"挑一个好起点"完全合法——它不是造假,是选择性汇报
- 持有期拉长确实有效,但没有消除风险。为负占比:A股基金 3 年 23.9% → 10 年 0.0%;沪深300 3 年 37.6% → 10 年 3.7%(而且这还是价格指数口径)
- "为负占比 0%"不等于"一定赚钱":样本只有 22 年,且逐日滚动窗口高度重叠,独立信息远少于窗口数。样本内没发生过的事,不等于不会发生(p5.6)
- 分年表最直观:A股基金 2006 年初买入持有 5 年年化 34.7%,2008 年初买入 -6.4%——相差两年,差 41 个百分点
看到任何长期收益率宣传,问三个问题:起点在哪(换前后一年变多少)、有没有给所有起点的分布、用的是什么口径(价格指数还是全收益、单位净值还是复权)。
而起点敏感性这么大,正好引出下一节的题目:分批投入能不能把这个依赖降下来?
这是定投被反复宣传的理由。下一节用同一批数据,把这个说法做成可检验的实验——并且我先说清楚,结论不会是宣传里那个版本。
🔎 来源与核验· 5 条,点开核对
