我想用一个简单的类比来解释:为什么一个量化策略里如果存在“未来函数”或未来数据泄露,单纯把最终代码或公式交给 AI,AI 未必能检测出来。
以最简单的拉格朗日插值来举例子。拉格朗日插值的意思是:只要给定一组点,就可以构造出一条曲线,让它精准穿过这些点。
放到量化策略里,假设我已经知道某只股票这一周每天的收盘价,那么我完全可以基于这些已经知道的结果,构造出一个公式 y=f(x),让它在这一周内看起来能够通过某个指标 x 精准算出每天的收盘价。
表面上看,这个公式可能并没有直接写“明天的收盘价”,也没有明显调用未来数据。所以如果只把最终的 f(x) 交给 AI,让它判断里面有没有未来函数,AI 可能会认为没有问题。
但实际上,这个公式本身就是在看过这一周的答案之后倒推出来的。它不是发现了真正可泛化的市场规律,而是把已经发生的数据强行拟合进了一个公式里。它在回测中表现得再完美,也不代表未来能赚钱。
所以,未来函数问题不一定藏在代码表面,而常常藏在策略生成过程里。AI 能发现一些明显的未来函数,比如直接使用未来 K 线、未来收盘价、shift(-1) 之类的写法;但如果策略是通过全样本拟合、事后选参、事后筛选指标,或者用已经知道的结果倒推出公式,那么只看最终代码,AI 很难可靠判断其中是否发生了未来数据泄露。
对于不了解量化的人,尤其是在完全黑箱的 vibe coding 流程里,很容易误以为“AI 检查过代码没问题”就代表策略没有未来函数。但实际上,判断一个策略有没有未来函数,不能只看最终公式,还必须看数据在什么时间可获得、指标是怎么生成的、参数是怎么选出来的、训练和回测有没有严格按时间切分。