ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

量化概念 11:未来函数(回测结果最常见的失真来源)

量化概念 11:未来函数(回测结果最常见的失真来源) 回测结果的可信度取决于一个容易被忽略的前提计算过程中不能使用信号发出时刻之后才存在的信息。一旦用了回测就会系统性高估收益——这不是策略有效的证据而是数据污染。这种污染在量化里叫未来函数look-ahead bias是回测结果失真最常见的来源。它不报错、不告警只是安静地让曲线变好看直到实盘无法复现时才被察觉。什么是未来函数定义很直接决策用到了信号发出时刻之后才有的数据。信号 T 日收盘后才产生成交假设却落在 T 日收盘价上因子描述历史统计量却取自含未来样本的整段数据。每引入一处回测就偏离真实收益一分。这不是策略强是数据被污染了。它藏在哪里成交价按 T 日收盘价成交——信号收盘后才产生却买在收盘价上T1 那篇的坑一本质就是未来函数。前复权用未来的除权事件反推历史价格。下一次分红之后此前的全部历史价格都会被改写——历史序列中混入了未来信息。数据清洗去极值、标准化使用全样本的中位数、均值等于用整段历史含未来的统计量去修正过去的每个样本点。幸存者偏差样本只包含当前仍上市的股票退市股被排除回测天然高估下一篇详述。财报对齐用当前已披露的财报计算历史某日的因子值。财报披露存在滞后当时市场可用的还是旧报表。成分与分类用当前的指数成分、行业分类回测历史——成分与分类随时间是变化的。参数选择在整段历史上搜索最优参数再回测属于数据窥探data snooping与过拟合同源后续文章详述。为什么难以发现未来函数不产生任何错误信号。浮点误差会崩溃数据缺失会有提示而未来函数只是让结果偏乐观。更隐蔽的是它的累积性当回测与实盘不一致时多数人先怀疑执行、再怀疑参数很少会逐项审计数据管线中的时点假设——问题恰恰可能出在这里。如何检查时点审计对每个输入逐一确认——该数值在信号发出时刻是否可得。不可得即存在未来函数只用当时数据信号、因子、清洗统计量一律取 T 日及之前的滚动窗口。我的系统有一条硬校验信号只允许使用当日及以前的数据违反即判失败时移测试将信号整体延后一日重跑结果应基本稳定若收益大幅下降说明原收益中包含未来信息逐笔核对抽取若干交易用当时的公开信息手工复盘能对上才算可信小结未来函数是回测结果失真的隐蔽来源常见于成交价假设、复权处理、数据清洗、幸存者偏差、财报对齐与参数选择。检查原则只有一条每个输入在信号发出时刻是否真实可得。遇到显著优于预期的回测结果优先怀疑数据与口径而非策略本身。
返回列表