价格周期 · 知识库
什么是未来函数? 为什么澄澜量化的每个标记都有"可知日"
一句话定义
未来函数是指在计算历史某一天的指标或信号时, 用到了当天之后才能知道的数据, 使结果在事后看起来比实际可用时更准。
未来函数长什么样
- 用后面的 K 线确认前面的点: 顶分型、转折点需要后几根 K 线才能确认, 却被画在顶点那天, 回看时每个顶都"刚好"被抓到。
- 会改写过去的指标: 例如部分软件中的 ZIG 之字转向等函数, 会根据后来的价格修改之前的拐点; 在 TradingView 等平台上这类现象常被称为"重绘"。
- 用当天收盘决定当天开盘的动作: 回测里用收盘价判断信号, 却假设在同一天开盘成交。
- 用当周最终数据画本周的周线: 周三的日线图上出现了周五才知道的周线数值。
为什么危险
带未来函数的指标在历史图上几乎总是很漂亮, 但这种准确率在实盘中不存在。更麻烦的是它很难被肉眼发现, 因为看历史图的人本来就知道后来发生了什么。
澄澜量化怎么避免
- 可知日: 每个标记都记录最早能确认它的交易日, 例如周线分型记在第三周收盘。
- 回放: 打开回放后, 图上只出现截至当天已经可知的标记, 可以逐日检查。
- 周线数值按当下可知计算: 日线图上的周线关键位用"本周到目前为止"的价格计算。
- 自动检验: 把数据截断到某一天重新计算, 那一天的结果必须与用全部数据计算的结果完全一致; 规则修改后都要重新通过检验。
常见问题
怎么判断一个指标有没有未来函数?
最直接的办法是把数据截断到历史某天重算, 看那一天的结果是否和用全部数据算的一样; 不一样就说明用到了之后的数据。
没有未来函数, 就代表指标有效吗?
不代表。没有未来函数只是诚实的前提, 指标是否有用还要看它在样本外的表现。