TL;DR
回测是对历史数据和一组假设的计算,不是未来收益的证明。排查实盘差距,应先检查当时能否知道这些数据、订单能否按假设成交,以及测试区间是否已经被反复用来选参数。
先分清:回测到底证明了什么?
回测回答的是:在指定数据、规则、撮合与成本假设下,历史结果如何。它无法单独证明未来市场保持相同结构,也不能把模拟成交变成真实成交。把结果和假设一起保存,才有条件复核。
数据有没有越过当时的时间边界?
每个字段都应记录何时可获得。用整段数据做标准化、先看测试集再选特征,或把晚到的信息回填到早期决策中,都会污染验证。scikit-learn 的官方文档将数据泄漏列为常见方法问题,建议训练与测试处理保持隔离。
信号产生时,订单能按这个价格成交吗?
如果信号依赖当根收盘价,是否还能按同一个收盘价成交,需要另外说明执行机制。逐笔核对提交时间、价格类型、滑点、手续费和未成交订单。限价条件被触及,也不自动证明你的订单全部成交。
样本外是否仍然“独立”?
先保留测试区间,再在开发区间设计规则。反复根据测试结果改规则后,这段区间已参与研究,不能继续当作从未看过的样本外证据。保留每次尝试和版本,比只保留最佳曲线更有用。
上线前保留哪些记录?
保存数据版本、代码版本、规则说明、每笔订单、成本模型和失败情形。先做参数邻域、成本压力与时间分段检查,再决定是否继续验证;任何一步通过都不构成收益保证。
常见问题
回测好看能说明策略有效吗?
只能说明它在该数据与假设下得到这样的历史结果,还需要独立验证。
样本外表现下降就一定无效吗?
不能只凭一个指标决定。应先检查样本、成本和市场条件是否可比,并记录下一步验证。
来源与口径
外部来源用于支持定义与方法讨论,不代表它们核验了维明科技的研究结果。
内容仅用于教育与研究,不构成投资建议,不承诺收益。回测不代表未来表现。实盘演示至少延迟一个交易日发布,并标注为历史记录。