OptiNod 学院

后见之明偏误:过去的图表一目了然,最右端却看不见

回测图表之所以清晰,是因为结果已经看过;后见之明偏误可以用回放复盘一致率和事后追加规则数来衡量。

在已经走完的图表上,入场点看起来很清晰。这种清晰来自已经看过结果,把最右端遮住后,同样的信号就会变得模糊。


后见之明偏误(Hindsight Bias)由Baruch Fischhoff于1975年通过实验确认并命名,指的是知道结果之后,把当时的判断重新构建成“这个结果一开始就可以预见”的倾向。英语中也把这种倾向称为“早就知道效应”(knew-it-all-along effect)。一旦确认了结果,人们回忆起结果未知时自己感受到的不确定性,会比实际低。


大多数人把它当作事后聪明,轻轻带过。日常生活中问题不大,但在交易里不同。看着完整的回测图表判断“这次入场很明确”时,就是把后见之明偏误误当成了自己的分析能力。这种清晰并不来自读图能力,而是因为结果已经确定。


代价分两步累积。第一步,完整图表上的入场点显得显而易见,于是高估自己在实盘中能实时抓住这个点的能力。第二步,回头审视亏损区间,事后加上“只要有这个过滤条件就能避开”的规则。第二步会把回测拟合到过去,也就是过拟合。偏误的大小可以用一个比值来衡量。如果在完整图表上回溯标记了10个入场点,而在遮住最右端的回放中实际入场的只有3个,一致率就是30%,其余70%是看过结果之后才变清晰的部分。


知道结果之后,判断被重新构建


Fischhoff 1975年的实验向受试者给出某个事件的若干种结果,比较被告知实际结果的一组和未被告知的一组各自给每个结果估计的发生概率。被告知结果的一组回答说,自己一开始就给实际发生的结果打了较高的概率。知道结果之后,记忆中自己过去如何判断的内容发生了改变。


这种重新构建分为三类(Roese和Vohs,2012)。第一类是记忆扭曲,对结果揭晓前自己的预测,记得和实际不一样。第二类是必然性认知,觉得发生的事情只能是这样。第三类是可预见性认知,相信自己本来可以提前知道这个结果。三者叠加,就会确信“我早就知道”。


在交易中,这种重新构建发生在复盘阶段。一轮大涨结束后再看图,“本该在低点买入”的判断会变得很清楚。但站在那个低点时感受到的不确定性,在记忆中已经变少了。这就是复盘无法准确还原实时判断的原因。


过去的图表入场点清晰,最右端模糊


完整图表上,每个转折点的两侧都看得见。低点左边的下跌和右边的上涨同在一屏,所以这个低点看起来就是明确的买点。实时图表没有右边这一部分。最右端的K线,其最高价、最低价和收盘价尚未确定,下一根K线的方向是开放的。


2025年4月7日,比特币跌至74,508美元,之后到8月14日涨至124,474美元,涨幅约67%。在完整图表上,4月7日的低点是四个月上涨的起点,十分醒目。回头看,在那个低点买入是理所当然的。但如果当时实时站在4月7日,屏幕上的样子并不一样。价格从1月20日109,588美元的高点下跌了约32%,最右端看上去像是下跌途中的一段。清晰的低点,是在看到直到8月的上涨之后才形成的。


反方向也一样。10月6日126,200美元的高点,在完整图表上是明确的卖点,因为之后到11月21日跌至80,600美元,跌幅约36%。站在10月6日当时的最右端看,这个高点只是上涨过程中出现的若干高点之一。K线回放工具能把最右端恢复成实时状态。把图表右侧遮住,一根一根向前推进,完整图表上显而易见的入场,在实时中就会动摇。


过去的图表与实时的不确定性
过去的图表与实时的不确定性

事后规则加得越多,越接近过拟合


复盘亏损区间时,后见之明偏误会转化为添加新规则的行为。回头看某次亏损,判断“只要加这个条件就能避开那次入场”,于是把这个条件放进回测。放进去之后过去的业绩变好,是因为这个条件正是针对那段过去挑选出来的。


这与过拟合的结构相同。增加参数去贴合过去的曲线,回测收益会上升,实盘业绩却不会同步上升。事后规则也是如此。看过结果之后追加的条件,在没有该结果的未来数据上,不会带来同样的收益。


再往前一步,事后规则还和前视偏差有关,因为设计规则时用到了决策时点并不存在的信息,也就是之后发生的结果。重绘是把未来K线的值拉进信号,事后规则则是把未来发生的结果拉进规则。两种情况下,回测期望值都会上升,而实盘期望值不变。


后见之明可以用两个数字衡量


仅凭复盘时的感觉,很难诊断后见之明偏误。把回放复盘和实际复盘对照,就能得到两个数字。


第一个是回放一致率。对同一段区间复盘两次:一次完整地看整张图表并标记入场点,另一次用K线回放遮住最右端,从左到右一根一根推进,只标记当下实际会入场的点。两份清单重合的入场数除以完整图表上的入场数,就是一致率。完整图表上标了10个,回放中只入场了3个,一致率就是30%,其余70%是看过结果之后才变清晰的入场。


第二个是事后规则数。分别统计策略最初设计时确定的规则数,以及之后复盘亏损区间时追加的规则数。追加的规则越多,回测就越被拟合到过去,这些规则在样本外是否带来同样的收益,需要另行确认。从最初的5条规则经过复盘变成12条,增加的7条就是过拟合的候选。


用回放逐根验证,后见之明会减少


后见之明偏误在看到结果之后起作用。如果在复盘中还原结果未知的状态,偏误就没有插入的余地。K线回放可以创造这种状态。


  • K线回放复盘:把要验证的区间右侧遮住,一根一根向前推进,只用当时的信息决定是否入场。不要看着完整图表做判断。
  • 记录决策时点:写下决定入场那根K线的日期、价格和当时的依据。确认结果之后,不修改这份记录。
  • 隔离事后规则:复盘亏损时想到新规则,不要马上放进回测,先记在单独的清单里。这些规则只有在样本外验证之后才采用。
  • 样本外与滚动前推验证:对追加的规则,确认它在设计时没有用到的时间段以及滚动前推中是否带来同样的收益。
  • 每周检查:每周计算回放一致率和事后规则数,一致率下降或规则数增加时,重新审视复盘方式。

遮住未来的逐步判断
遮住未来的逐步判断

这些规则的目的不是找到完美的入场点,而是仅凭实时信息还原判断,确认回测业绩能否在实盘中重现。


两个陷阱


看着完整图表就断定信号很清晰的复盘。 回头看显而易见的入场,很可能是看过结果之后才变得显而易见。从完整图表复盘得到的确信,不能作为实时判断的依据。把同一区间换成遮住右端的回放再看一遍,这份确信中有相当一部分是后见之明偏误,数字上就能确认。


“本可以避免亏损的规则”这类事后条件。 “只要有这个过滤条件就能避开那次亏损”这样的规则,是针对某一段过去挑选出来的条件。它在避开那次亏损的同时,也可能把其他正常的入场一并过滤掉,拉低未来的期望值。事后规则的净效果,要在样本外比较加入规则前后的表现才能确认。


复盘只有遮住最右端,才与实战相同


后见之明偏误的特点是只在复盘时出现。完整图表上的入场点一目了然,已经发生的亏损,事后也总能想到本可以避开它的规则。这种清晰和规则都是看过结果之后才有的,实时屏幕上并没有这些信息。用遮住最右端的K线回放,从左到右一根一根复盘,并定期测量回放一致率和事后规则数,“当时就该抓住”的感觉就变成了可以测量的指标。用K线回放还原结果未知的状态,是让复盘接近实战的唯一方法。

用你自己的交易记录来确认

上传 MT5 交易历史报告或 TradingView 策略的交易列表(CSV),即可计算盈亏分布和连续亏损区间。无需登录即可分析。

分析我的交易记录 查看分析示例