回测世界里代价最高的一对词,大概就是样本内(In-Sample, IS)和样本外(Out-of-Sample, OOS)。分不清这两段数据的边界,一份看起来收益漂亮的回测报告,本质上可能什么都没证明。
一、通俗的定义
样本内:你用来反复试参数、改条件、挑选出"看起来最好看"那套规则的那一段历史数据。你在这段数据上做的任何调整,本质上都是在拟合这段已知的历史。
样本外:事先划定、在整个选参和调整过程中完全不去看、只是当作"尚未发生的未来"去检验的那一段历史数据。
这里有一个容易被忽略但很关键的边界:只要样本外的数据被拿来参与过一次调参决策,它就不再是真正的样本外了——即便你只是"看了一眼样本外表现不好,于是回去改了个参数",这个动作本身就已经污染了样本外的独立性。
二、为什么必须严格区分这两段数据
因为人的直觉判断和大多数优化算法一样,都会本能地"记住"历史数据里的噪声,而不仅仅是背后真正的规律。样本内挑出来的最优结果,很大概率是对那一段具体行情的过度拟合——它记住的可能是"某几个月里恰好这样操作最赚钱",而不是一个能持续存在的规律。样本外如果表现明显变差,正是在提示你:你所依赖的可能只是一个故事,而不是一条规律。
步进验证(Walk-Forward Optimization, WFO)本质上就是把"划分样本内样本外"这个动作反复重复多次,在时间轴上滚动前进,每一段都用前面的数据定参数、用紧接着的一段做检验,这样可以避免只留最后一小段做单次验证所带来的偶然性。
三、个人研究者应该坚持的最低标准
即便条件有限、无法搭建完整的步进验证流程,也应该至少做到以下几点:
- 1. 用历史数据的前70%左右去确定策略逻辑和参数;
- 2. 后30%完全不参与调整,只用来验证;
- 3. 如果样本外表现明显塌方,正确的应对是回到更简化的逻辑重新出发,而不是继续在现有框架上拧参数去"救"这条曲线——继续拧参数只会让过拟合程度进一步加深。
四、几种常见的自我欺骗方式
看完全区间的结果之后,"忍不住"又回去改了一次入场条件,然后重新划分样本内外,这其实等于让样本外失效重来;把样本外表现不佳的那一两年数据以"这段行情特殊"为理由剔除出统计,只保留表现好的年份;用同一段历史数据既做因子挖掘(发现规律),又做这个规律的最终效果评价,这三种做法本质上都是在悄悄把样本外变成样本内,让验证失去它本来的意义。
青柠量化 免费版可以完成分段回测与逐笔复盘;专业版提供步进验证等更系统化的样本外检验工具。
下载与说明见产品页:
https://www.zpyztech.com/product/qingquant/
免责声明: 本文仅作量化知识科普,不构成任何投资建议。样本外验证通过也不等于未来一定有效,请独立判断并自行承担投资风险。
读到这里,不如自己验证一次
文章里的逻辑,你可以在青柠量化里用真实数据重新跑一遍。免费,零代码。