基神总结得特别到位,我也补充几点关于减少策略过拟合的看法,供大家参考:
第一,时间周期越短的策略,越容易出现过拟合。
举个简单的例子:假设在桌面上画10个圈并编号1-10,每年往每个圈里各扔10次硬币——正面代表“涨”,反面代表“跌”。如果回测10年,每个圈的涨跌概率基本会围绕50%波动,符合随机规律;但如果只截取某一年的数据,可能会出现极端情况,比如10号圈全年10次全是“涨”。
这时若把“包含10号圈”加入策略回测,短期收益会非常亮眼,但本质上只是偶然事件——下一次硬币的涨跌概率依然是50%,这样的策略根本无法实现持续盈利。
可见,时间周期越长、数据量越充足,越能稀释偶然因素的干扰,让策略更贴近真实规律。
第二,策略中不应设置“排除个别下跌股票或特定已知涨跌标的”的参数。
比如看到个股000XXX近期下跌,就直接在策略里加“非000XXX”;或是觉得近几年医药板块涨幅不佳,就简单设置“非医药类股票”——这类参数毫无逻辑支撑,本质是用已知结果倒推策略,完全无法应对未来的市场变化,过拟合风险极高。
第三,能否有效使用“非”字句排除条件,关键看是否有明确逻辑支撑。
基神提到的“非”字句思路很实用,但核心是“排除某类大概率不涨的股票”,而非针对单个标的。
- 有效用法:像基神说的“非今日首板且开盘涨跌幅大于9.8%”,背后有清晰的逻辑(排除短期极端情绪标的),能筛选出更具稳定性的范围,这类排除是有效的。
- 无效用法:比如“非量比1.1-1.2”“非上影线1.1-1.2”——这类限制过于死板,既没有逻辑支撑,也无法排除某类股票,只能精准剔除策略回测中“恰好表现差”的个别标的,和“非000XXX”的本质一样,都是典型的过拟合操作。
以上只是我的个人观点,欢迎大家分享其他减少过拟合的思路,也随时欢迎对我的看法提出修正意见~