回测曲线漂亮得不像话时,优先怀疑过拟合和未来函数。后者更隐蔽:规则看着「当时能算」,实际偷看了未来价格、公告或指标,历史上稳赚、实盘一碰就散。
一、概念:信号时刻用不该知道的信息
未来函数(与前视偏差同族)指:生成买卖信号时,用到了当时尚未可知的数据。
典型例子:用「当日最高价」在盘中触发却按开盘价成交;用「当日收盘涨停」当盘中条件却按开盘买入;用「当季净利润」在报告期结束当天选股(财报常晚几周披露);用「当日换手率排名」做早盘交易;把事后最终的ST/成分股状态回填到历史。
判据只有一句:信号触发那一刻,每个字段是否已经可知?
二、怎么识别
- 1. 给字段标注「开盘可知 / 收盘可知 / T+1披露」。
- 2. 收盘才确认的信号,默认次日开盘成交。
- 3. 不要用整根K线极值做「更早时刻」的触发,除非按穿越价撮合。
- 4. 财务与事件用公告日,不用报告期截止日。
- 5. 动画复盘抽「过于完美」的买点,问:那天上午10点我是否真知道?
修好未来函数之前,谈参数优化没有意义。
三、常见误区
- 1. 以为「用了收盘价就非法」:收盘确认、次日开盘成交通常合法;非法的是「收盘才可知」却「当日更早成交」。
- 2. 只盯价格字段:公告、成分股、停牌、涨跌停状态同样会漏。
- 3. 复权价乱判涨停:涨停识别应对未复权涨跌幅。
- 4. 修一处就当干净:要按字段清单逐项勾。
四、默认躲开写法
信号确认点写死、成交点写死、过滤器只用确认前可知字段;报告注明费用与涨跌停不可成交;改规则先做时点审计,再看收益。
青柠量化 适合把「收盘确认 / 次日开盘」写成明确假设并用复盘核对;策略与结果保存在本地。
下载与说明见产品页:
https://www.zpyztech.com/product/qingquant/
免责声明: 本文仅作量化研究方法科普,不构成任何投资建议。历史回测不代表未来表现,请独立判断并自行承担投资风险。
读到这里,不如自己验证一次
文章里的逻辑,你可以在青柠量化里用真实数据重新跑一遍。免费,零代码。