回测里的未来函数,是怎么混进你的代码的
发布时间:1小时前阅读:27
回测曲线漂亮得不真实,八成是未来函数。它不是某一行的错,是一类思维习惯的错。
最常见的来源是用当天的收盘价做当天的决策。你在写代码时想的是收盘后计算信号、第二天开盘执行,但代码里如果不做偏移,信号和成交就发生在同一根K线,等于用当天收盘价买入当天收盘的股票。改法很简单:信号用上一根K线的数据,成交用当前K线的开盘价。
第二个来源是用了当天才知道的信息。比如用当天的最高价判断是否突破,然后以突破价成交。实盘里你不知道当天最高价会是多少,这种写法就是标准的未来函数。正确做法是用前一根K线的高点作为阈值。
第三个来源是数据的复权处理。用后复权数据回测,历史价格里包含了未来的分红信息,看起来一切正常,实际每根K线都带着未来。这条最隐蔽,因为数据本身没错,错的是使用方式。
第四个来源是标的池。用今天的成分股去回测三年前,等于提前知道了哪些股票会进入指数。这种偏差叫幸存者偏差,它会让任何策略都显得比实际好。
检验方法有一个:把回测的结束日期往前挪一段,重跑,看结果是否还成立。如果只在特定区间有效,说明那段区间里有你没注意到的东西。
回测的第一原则是,任何一根K线只能看到它之前的信息。
还有一个检查手段:把你的信号往前推一根K线,重新回测。如果收益大幅下降,说明原策略依赖了当期信息,未来函数坐实。这个测试很粗暴,但极其有效,几秒钟就能做完。
建议把这几项做成回测前的固定检查:信号是否用上一根数据、成交是否用下一根开盘、标的池是否按当时可得信息构建、复权方式是否一致。四项都过,结论才值得看。
宁可回测难看,也不要在实盘里发现自己在骗自己。
股票/量化开户欢迎找我!满足条件股票佣金万0.854、etf 可转债佣金万0.5、国债逆回购一折(百万分之一)!期权1.8元一张全包价!量化软件QMT+ptrade免费使用!还有888、999资金靓号等你选!
温馨提示:投资有风险,选择需谨慎。



问一问
从业认证

+微信
分享该文章
