过度自信
回测年化 40%,实盘亏了 15% — 我以为我找到了圣杯
我以为我找到了圣杯
2025年10月,我用 Backtrader 写了一个量化策略,回测5年数据,年化收益40%,最大回撤12%。看着那条漂亮的上扬曲线,我激动坏了。
我连夜把策略发给了三个朋友,说"我可能找到了一个年化40%的策略"。他们的反应都是:"真的假的?先小资金试试。"
我没听。11月开始实盘,一个月亏了15%。
后来我才知道,这个错误有个名字——过度自信。而且我不是特例,60%的投资者都表现出过度自信(Arditi, 1995),尤其是在信息不充分的环境下。详见投资日志里的完整踩坑记录。
数据打脸:你以为你行,其实你不行
深交所2025年的调查显示:散户自评投资能力平均7.4分(满分10分),但实际盈利者仅占18.9%。76.3%的散户觉得自己能跑赢市场,实际只有12.8%跑赢沪深300。
这不是A股独有的现象。全球范围的研究都指向同一个结论:投资者系统性高估自己的能力。
- 美国 — 1998年对81,000个散户账户的研究(Barber & Odean)发现,交易最频繁的投资者年化收益比市场低6.5%。他们不是不自信——恰恰相反,他们太自信了,觉得自己每次交易都能赚。
- 台湾 — 对台湾证券交易所的研究发现,散户平均每年因过度交易损失3.8%的收益。
- 全球 — 多国研究一致发现,约60%的投资者认为自己的投资能力在平均水平以上——这在数学上是不可能的。
如果60%的人认为自己高于平均水平,那至少有10%的人在说谎——不是故意说谎,是他们真的这么认为。过度自信最阴险的地方在于:你不知道自己过度自信。如果你知道,你就不会过度自信了。这是一个认知盲区,你站在盲区里面看不到盲区。
达克效应:越不懂越自信
1999年,心理学家 David Dunning 和 Justin Kruger 做了一个经典的实验:让康奈尔大学的学生参加逻辑、语法和幽默感测试,然后让他们预测自己的排名。
结果令人震惊:排名倒数25%的学生,预测自己的排名在前60%——他们不仅做得很差,还完全意识不到自己做得差。而排名前25%的学生,反而低估了自己的排名——他们觉得别人应该也做得不错。
这就是达克效应(Dunning-Kruger Effect):能力低下者因缺乏判断自身水平的认知基础,无法识别自己的错误与不足,反而高估自身能力。而真正的专家因为知道事情有多复杂,反而会低估自己。
在投资中,达克效应的典型表现是一条曲线:
- 愚昧之巅 — 刚学了PE、ROE、DCF,觉得自己已经掌握了投资的精髓。"这还不简单?低PE买入,长期持有,稳赚不赔。"
- 绝望之谷 — 实盘亏了,发现自己什么都不懂。"我可能根本不适合投资。"
- 开悟之坡 — 开始承认自己的无知,建立规则和框架。"我知道我不知道什么。"
- 平稳高原 — 谦虚但自信,知道自己的能力圈边界。"我能在能力圈内做出合理判断,圈外的事我不碰。"
我2019年刚入市时就在"愚昧之巅"——觉得价值投资就是"买低PE的股票长期持有",简单得很。2022年跌到"绝望之谷"——上海封城、俄乌冲突、美联储暴力加息,三重打击下我开始怀疑一切。2024年底爬上"开悟之坡"——读完巴菲特致股东的信,建立了安全边际/护城河/能力圈的框架。现在大概在"开悟之坡"的半山腰——知道自己还有很多不懂的,但至少知道不懂什么。
为什么越不懂越自信?神经科学给出了部分答案。前额叶皮层的背外侧区域(dlPFC)负责元认知——评估自己判断的可靠性。但这个区域在处理你不太了解的领域时,激活程度反而更低(Kruger & Dunning, 2009的后续fMRI研究)。也就是说,你越不懂,大脑的"自我检查"功能越弱——它不是检查失败后给你发警报,而是根本没启动检查程序。你不知道自己不知道,因为"知道自己不知道"本身就需要专业知识。
自利偏差:赚了是我牛,亏了是市场傻
过度自信的另一个核心驱动是自利偏差(Self-serving Bias):成功归因于能力,失败归因于外部因素。
赚了觉得"我判断对了",亏了觉得"市场不理性"。这种归因方式让你永远觉得自己比实际更强,从而在下一次决策时承担更大的风险。
我的自利偏差记录
我翻了一下2024年的投资日志,数了一下:
- 赚钱的时候,我写的理由是:"选股逻辑正确""安全边际足够""耐心持有得到了回报"——全是内部归因。
- 亏钱的时候,我写的理由是:"市场情绪太差""板块轮动太快""政策突然转向"——全是外部归因。
但回头看,赚钱和亏钱的决策过程其实差不多——都是看财报、算估值、设止损。区别只是结果不同。结果好的时候我归功于自己,结果差的时候我归咎于环境。这不是诚实,是自利偏差在帮我维护自尊。
自利偏差的神经机制
2016年日本理研脑科学中心的研究发现,当人的判断被证明正确时,腹侧纹状体(奖赏中枢)被强烈激活,释放多巴胺。这种多巴胺信号不仅让你感到愉悦,还会强化"我的判断是对的"这个信念——即使你的判断只是碰巧对了。
反过来,当判断错误时,前扣带皮层(ACC)被激活——这是大脑的"错误检测器"。但ACC的信号很弱,很容易被前额叶的合理化机制覆盖。"不是我判断错了,是市场不理性"——这种想法不是你故意骗自己,是大脑自动帮你找台阶下。
更阴险的是,自利偏差会跟确认偏误形成正反馈。你赚了一次 → 自利偏差让你觉得"我判断对了" → 确认偏误让你在下一次只看支持自己判断的证据 → 你更自信地做出更大的赌注 → 如果又赚了,循环加速;如果亏了,"市场不理性"。
控制错觉:我写了代码,所以我控制了风险
过度自信在量化投资者中尤其严重。为什么?因为控制错觉(Illusion of Control)。
控制错觉是指:当你对某个过程有更多控制感时,你会高估自己影响结果的能力。写代码、调参数、跑回测——每一步都让你觉得"我在掌控"。但回测的掌控感是虚假的:你掌控的是历史数据,不是未来。
我的回测踩坑三件套
2025年10月那个"年化40%"的策略,踩了三个经典的过度自信陷阱:
1. 过拟合 — 我以为我发现了规律,其实我在拟合噪音
5年数据,调了20多次参数,每次都让曲线更好看。但这不是在发现规律,是在拟合噪音。换一组数据,策略立刻失效。
过拟合的本质就是过度自信——你相信你的策略捕捉到了市场的真实规律,但市场大部分时候的波动就是噪音。你拟合得越精确,对未来越不适用。
2. 未来函数偷看 — 我以为我的策略很聪明,其实它在作弊
我的策略用了一个"当日最高价"的指标,但回测时这个数据在开盘时是不知道的。等于偷看了未来信息。修掉之后,回测收益直接砍半。
未来函数是最隐蔽的过度自信——你甚至不知道你在作弊。你的策略看起来很聪明,但它聪明的原因是它知道未来会发生什么。
3. 没算滑点 — 我以为交易没有成本
回测里买卖都是按收盘价成交的,但实盘哪有那么好的事?滑点、手续费、冲击成本,每笔交易多吃0.3-0.5%。高频策略这些成本能把利润吃光。
忽略交易成本是另一种过度自信——你假设自己能以理想价格成交,但市场不是你家开的。
修完之后
加了Walk-forward分析、蒙特卡洛模拟、严格滑点计算之后,回测收益从年化40%降到18%。但至少这个18%是诚实的。详见投资日志。
我现在对回测结果的态度变了:回测说能赚20%,我预期10%,实际可能5%。这样心态好很多。
# Walk-forward 回测 — 对抗过度自信
def walk_forward_test(strategy, data, train=3, test=1):
"""用前N年训练,第N+1年验证,滚动前进"""
results = []
for i in range(train, len(data) - test):
train_data = data[i-train:i]
test_data = data[i:i+test]
params = optimize(strategy, train_data)
result = backtest(strategy, test_data, params)
results.append(result)
return results # 样本外收益,通常比全量回测砍一半
能力圈:知道你不知道什么
巴菲特说:"投资者最重要的能力不是评估一个行业的利润率,而是知道自己的能力圈边界。"
我2024年底踩过一个能力圈外的坑。买了一只科技股,理由是"AI芯片是未来"。但我对半导体行业一窍不通——不懂制程、不懂晶圆代工、不懂库存周期。买完之后股价波动剧烈,我完全不知道该加仓还是止损。最后亏了12%割肉出局。
12%不算多,但那种"完全不知道发生了什么"的感觉比亏钱还难受。你在黑暗中做决策,每一个涨跌都是信息噪音——因为你没有解读信息的知识框架。
能力圈为什么这么难守
守能力圈难,不是因为诱惑多,是因为你不知道圈的边界在哪。
达克效应告诉我们:越不懂越自信。所以当你站在能力圈边界往外看时,你不会觉得"我不懂",你会觉得"这也不难嘛"。只有真正走进去亏了钱,你才发现"原来我不懂"——但这时候学费已经交了。
我的经验是:如果你不能用三句话说清楚一家公司靠什么赚钱、为什么能持续赚钱、什么情况下会不赚钱,那你就不在能力圈内。不是"大概知道",是能清晰地说出来。
我的能力圈测试
买入前,我强迫自己回答三个问题:
- 这家公司靠什么赚钱?(商业模式)→ 如果说不清,不买
- 为什么它能持续赚钱?(竞争优势/护城河)→ 如果找不到,不买
- 什么情况下它会不赚钱?(风险点)→ 如果想不出三个以上,说明研究不够深,不买
2024年那只科技股,三个问题我一个都答不好。但我还是买了——因为"AI芯片是未来"这六个字太有说服力了。这就是过度自信:你用一个模糊的信念替代了具体的分析。
我的应对方法
过度自信是最难克服的偏差,因为你不知道自己过度自信。但我试了几种方法,效果还行——至少让我从"愚昧之巅"爬下来了。
方法一:记录预测准确率
我建了一个表格,每次做判断都记下来——"我判断这只股票会涨/跌,理由是XXX"。然后定期回头看,统计正确率。
结果?我的判断正确率大概60%——比扔硬币好一点,但远没有我自以为的那么高。这个数字打醒了我。当你用数据面对自己的判断力时,过度自信就很难维持了。
方法二:找反面证据
研究一家公司时,我强迫自己写"不该买的5个理由"。如果5个理由都站不住脚,再买。我甚至让FinBuddy的AI帮我找反面证据——它比我自己客观,因为它没有"我已经研究了20个小时"的沉没成本。
这个方法来自决策科学里的"预尸检"(pre-mortem)技巧:假设投资已经失败了,倒推失败的原因。如果你能想到很多失败的原因,那你的信心可能过高了。
方法三:24小时冷却期
想买的时候等24小时。如果24小时后还想买,再买。我试过10次冷却期,7次放弃了。那些冲动买入的理由,睡一觉再看就不那么有说服力了。
冷却期的本质是给系统2一个启动的时间窗口。系统1的冲动来得快去得也快——你只需要撑过那几分钟。详见决策科学。
方法四:回测打折
回测说能赚20%,我预期10%,实际可能5%。这不是悲观,是对过度自信的校准。
学术研究给出了具体的打折系数:Walk-forward分析通常把回测收益砍40-60%。所以回测年化40%,诚实预期是16-24%。再算上滑点和交易成本,可能只剩10-15%。
方法五:严格能力圈
不懂的行业不碰。这条规则让我错过了AI行情,但也让我避开了科技股12%的亏损。值不值?我不知道。但至少我睡得着觉。
# FinBuddy 过度自信校准 — 回测结果打折
class OverconfidenceCalibrator:
"""对回测结果进行过度自信校准"""
WALK_FORWARD_DISCOUNT = 0.5 # Walk-forward通常砍一半
SLIPPAGE_COST = 0.003 # 每笔交易滑点0.3%
TRANSACTION_COST = 0.001 # 每笔交易手续费0.1%
def calibrate(self, backtest_return: float,
trade_freq: int) -> float:
"""校准回测收益,对抗过度自信
Args:
backtest_return: 回测年化收益率
trade_freq: 年交易次数
Returns:
校准后的预期收益率
"""
calibrated = backtest_return * self.WALK_FORWARD_DISCOUNT
annual_cost = (self.SLIPPAGE_COST + self.TRANSACTION_COST) \
* trade_freq
return max(0, calibrated - annual_cost)
# 使用示例
raw = 0.40 # 回测年化40%
calibrated = OverconfidenceCalibrator().calibrate(raw, 50)
# 结果约 0.14 — 诚实预期年化14%
我还在纠结的事
过度自信的反面不是谦虚,是瘫痪。如果你永远觉得自己可能是错的,那你永远不敢做任何决策。
巴菲特和芒格极度自信——他们对自己的判断有强烈的信念。但他们也经常说"我们犯了很多错误"。所以问题是:自信到什么程度算过度?
我目前的想法是:自信应该跟证据的强度匹配。如果你研究了一家公司6个月,看了5年年报,算了DCF,理解了商业模式和竞争格局——那你对"这家公司值多少钱"的判断可以有适度自信。但如果你只是因为"AI是未来"就买入——那你的自信就是过度的。
区分的标志是:你能不能说出你可能是错的三个原因。如果能,你的自信可能是合理的。如果不能,你大概率过度自信了。
但说实话,我有时候也分不清"合理自信"和"过度自信"的边界。尤其是当你连续做对了几次之后——你怎么知道下一次不是过度自信?你不知道。你只能用规则来约束自己,然后祈祷规则比你的直觉靠谱。
过度自信速查表
| 维度 | 内容 |
|---|---|
| 定义 | 系统性高估自己的知识、能力和判断准确性 |
| 数据 | 散户自评7.4分,实际盈利仅18.9%;76.3%觉得能跑赢市场,实际12.8% |
| 三大机制 | 达克效应(越不懂越自信)、自利偏差(赚了归己亏了归外)、控制错觉(我写了代码所以我控制了风险) |
| 量化特供 | 过拟合、未来函数偷看、忽略滑点 |
| 我的规则 | 记录预测准确率、找反面证据、24小时冷却期、回测打折、严格能力圈 |
| 核心原则 | 假设自己可能是错的——如果你说不出你可能是错的三个原因,你大概率过度自信了 |