交易系统 · 第 10 节

参数优化与过拟合

把规则写死 · 第 10 页。

一句话速览 参数每多一个,搜索空间是乘上去的。就算策略无效,也几乎必然能搜出一组漂亮参数。
这节课要你带走的 为什么参数越多越容易过拟合、一个能算出来的假阳性概率,以及怎么判断参数被优化过头了。

回测跑出来的策略,参数一改结果就变。 于是很自然地去找「最好的那组参数」。 这一节讲为什么这个动作本身就在制造问题。

交互 · 参数搜索的假阳性概率
总组合数 0
至少一组假阳性 0
期望假阳性个数 0
 
这个组件算的不是「策略好不好」, 而是「就算策略完全无效,你也几乎必然能搜出一组漂亮参数」。 参数每多一个,组合数是乘上去的,不是加上去的。

这在美股上的两个加重因素

一、长期上行让基线本身就是正的

U4-5于是「跑出正收益」这个标准太容易达到你需要的对照不是零,是同期一直持有的结果。

二、可用的数据维度太多

财务指标、技术指标、市场结构数据, 组合起来的搜索空间极大。

搜索空间越大,搜出漂亮参数的概率越高, 而这跟策略本身有没有效无关。

怎么判断参数被优化过头了

参数敏感性检查

把最优参数上下各挪一点(比如 ±20%),看结果变化多大。

如果最优参数是个孤峰,稍微一动就崩,那是拟合噪音。

真实的规律应该是一片平原: 附近的参数结果都还行,只是没那么亮眼。

样本外检验

用一段数据优化参数, 在另一段完全没参与优化的数据上验证。

参数个数上限

让参数个数远少于你有的独立样本数。

三个参数的策略比八个参数的策略更可能是真的, 哪怕后者回测更好看。

一个更根本的角度

参数优化在回答「哪组数字在过去表现最好」, 但你真正想知道的是「这个逻辑成不成立」。

如果一个策略的有效性依赖于参数精确到某个值,那它多半没有逻辑,只有数字。

所以更好的顺序是: 先说清楚这个策略为什么应该有效 (它捕捉的是什么行为、什么结构), 然后用参数去表达那个逻辑, 而不是反过来用参数去发现逻辑。

逻辑先行的策略,参数通常是拍出来的整数, 而且换个附近的值也一样能用。 这不是巧合,是逻辑成立的表现。

今天就做这一件事

用组件按你实际试过的参数量算一遍假阳性概率。

然后做敏感性检查:把最优参数各挪 20%,看回测结果掉多少。

如果掉得很惨,你找到的不是规律,是这段历史的噪音形状。

带走这一条:参数每多一个组合数是乘上去的,所以就算策略完全无效也几乎必然能搜出漂亮参数。美股的两个加重因素是长期上行让基线本身为正、以及可用数据维度太多。判断方法是敏感性检查(最优参数应该是平原不是孤峰)、样本外检验、参数个数上限。更根本的是顺序:先说清逻辑再用参数表达它,而不是用参数去发现逻辑。