跳转至

前视偏差与幸存者偏差

定义

前视是用决策当时还不知道的价格或财报。幸存者偏差是样本里只留下活到今天的证券或基金。

公式

\[ r^{\text{lookahead}}_{t}=w(p_t)\,r_t,\qquad r^{\text{honest}}_{t}=w(p_{t-1})\,r_t \]

同一条 SPY 10 个月均线:诚实延迟的夏普是 0.51,用当月收盘决定当月收益的夏普是 1.77。基金生存偏差大约每年 0.9 个百分点,这是基金样本的数量级,不是股票公式。

直觉

后视镜里每条规则都更聪明。把还没公布的收盘写进信号,等于允许自己在收盘之后改早晨的决定。

实务要点 / 常见误区

  • 引擎已经把成交放到下一期时,策略里不要再 shift 一次。
  • 复权要向前累加。后来的分红不能改写更早的信号。
  • 财务信号用可用时间戳,不用报表期间的最后一天。

相关概念

代码

def honest_position(signal: list[float]) -> list[float]:
    # 今天的仓位只能用昨天已经收盘的信号。
    return [0.0] + signal[:-1]

教材:M03 数据与回测工程