参数优化与过拟合
一句话速览
参数每多一个,搜索空间是乘上去的。就算策略无效,也几乎必然能搜出一组漂亮参数。
这节课要你带走的
为什么参数越多越容易过拟合、一个能算出来的假阳性概率,以及怎么判断参数被优化过头了。
回测跑出来的策略,参数一改结果就变。 于是很自然地去找「最好的那组参数」。 这一节讲为什么这个动作本身就在制造问题。
这在美股上的两个加重因素
一、长期上行让基线本身就是正的
见 U4-5。 于是「跑出正收益」这个标准太容易达到, 你需要的对照不是零,是同期一直持有的结果。
二、可用的数据维度太多
财务指标、技术指标、市场结构数据, 组合起来的搜索空间极大。
搜索空间越大,搜出漂亮参数的概率越高, 而这跟策略本身有没有效无关。
怎么判断参数被优化过头了
参数敏感性检查
把最优参数上下各挪一点(比如 ±20%),看结果变化多大。
如果最优参数是个孤峰,稍微一动就崩,那是拟合噪音。
真实的规律应该是一片平原: 附近的参数结果都还行,只是没那么亮眼。
样本外检验
用一段数据优化参数, 在另一段完全没参与优化的数据上验证。
参数个数上限
让参数个数远少于你有的独立样本数。
三个参数的策略比八个参数的策略更可能是真的, 哪怕后者回测更好看。
一个更根本的角度
参数优化在回答「哪组数字在过去表现最好」, 但你真正想知道的是「这个逻辑成不成立」。
如果一个策略的有效性依赖于参数精确到某个值,那它多半没有逻辑,只有数字。
所以更好的顺序是: 先说清楚这个策略为什么应该有效 (它捕捉的是什么行为、什么结构), 然后用参数去表达那个逻辑, 而不是反过来用参数去发现逻辑。
逻辑先行的策略,参数通常是拍出来的整数, 而且换个附近的值也一样能用。 这不是巧合,是逻辑成立的表现。
做
今天就做这一件事
用组件按你实际试过的参数量算一遍假阳性概率。
然后做敏感性检查:把最优参数各挪 20%,看回测结果掉多少。
如果掉得很惨,你找到的不是规律,是这段历史的噪音形状。
带走这一条:参数每多一个组合数是乘上去的,所以就算策略完全无效也几乎必然能搜出漂亮参数。美股的两个加重因素是长期上行让基线本身为正、以及可用数据维度太多。判断方法是敏感性检查(最优参数应该是平原不是孤峰)、样本外检验、参数个数上限。更根本的是顺序:先说清逻辑再用参数表达它,而不是用参数去发现逻辑。