超参优化 vs 过拟合 · hyperparameter optimization vs overfitting
Hyperopt 是个超参优化器。你告诉它"RSI 周期在 7~21 之间、阈值在 20~40 之间",它用贝叶斯优化(TPE 算法)扫几百几千组组合,每组跑一次回测,找收益最高(或夏普最高)的那组参数。
听起来很美——但问题在于:回测收益高 ≠ 未来收益高。你扫的参数越多、范围越大,越容易"恰好"找到一组对历史完美但对未来无意义的参数。这就像考试前背了历年真题的答案——模考满分,真考砸了。
Hyperopt 的正确用法不是"找最优",是"找稳健":用 walk-forward(滚动训练测试),看参数在不同时段是否都稳定,而不是只在一个时段最优。一组在 2020 最优、2021 也好、2022 还行的参数,比一组只在 2020 完美的参数,实盘可靠得多。
下面模拟 Hyperopt 调参。横轴是"调参力度"(扫多少组参数),纵轴是夏普。绿线是训练集(历史)夏普——调参越多越高。红线是测试集(未来)夏普——先跟着涨,到某个点后开始崩。这就是过拟合的拐点。
判断过拟合的硬指标:训练集和测试集的表现差距。如果训练集夏普 3.0、测试集夏普 0.5,几乎肯定过拟合。健康的表现是两者接近——训练集略高(因为参数是在它上面调的),但不该差几倍。
三个实操方法:
记住:调参的目标不是找到那组最优,是找到一片都还行的参数区域。平台比山峰可靠,因为实盘的参数总会漂移。