第26章:参数调优的常见误区
参数调优这事儿,我做了快十年了。说实话,踩过的坑比吃过的饭还多。
很多人觉得调参就是跑个网格搜索,找个最优组合就完事了。嗯,要是真这么简单,那期货市场早就被机器人统治了。今天我就把那些常见的坑,一个一个给你扒开看看。
误区一:过度优化——你是在拟合历史,还是在预测未来?
过度优化,说白了就是你把策略调得太“完美”了。完美到只适合过去那段行情,一到实盘就露馅。
我记得有个学员,把均线参数从5到200全部跑了一遍,最后选了个在回测里夏普比率最高的组合。结果呢?实盘一个月亏了15%。为什么?因为那个参数组合恰好抓住了过去三年的某几次大行情,但那些行情特征在当下根本不成立。
你想想看,一个策略如果对参数特别敏感,稍微动一点就变脸,那它大概率是不稳定的。真正稳健的策略,参数在一定范围内波动,表现应该差不多。
误区二:数据泄露——你偷偷看了未来的数据
数据泄露是个很隐蔽的问题。很多新手甚至老手都会在不经意间犯这个错。
举个例子:你在计算某个技术指标时,用了未来几天的数据来做归一化。或者你在回测时,用到了当天的收盘价来决定当天的开仓信号。这些都是典型的数据泄露。
怎么避免?很简单:回测时,每个时间点的计算只能用到该时间点之前的数据。 如果你用到了当天的数据,那就是在作弊。
误区三:参数过拟合——模型记住了噪声
参数过拟合和过度优化有点像,但更严重。过拟合是指你的模型不仅学到了信号,还把随机噪声也学进去了。
我见过最夸张的一个案例:有人用了一个20参数的神经网络来预测螺纹钢的日内波动。回测夏普3.5,实盘直接腰斩。为什么?因为那20个参数里,有15个是在拟合随机噪声。
| 指标 | 回测表现 | 实盘表现 | 说明 |
|---|---|---|---|
| 夏普比率 | 3.2 | 0.8 | 过拟合导致实盘失效 |
| 最大回撤 | 5% | 25% | 历史噪声被当成规律 |
| 胜率 | 65% | 42% | 信号被噪声淹没 |
怎么判断过拟合?一个简单的方法:把你的回测数据分成三段,用前两段调参,用第三段验证。 如果第三段的表现远差于前两段,那基本就是过拟合了。
误区四:忽略交易成本——你以为赚了,其实亏了
交易成本包括手续费、滑点、冲击成本等。很多人回测时把这些忽略掉,结果实盘一算,利润全被吃掉了。
我个人习惯:回测时至少按实际成本的1.5倍来算。 为什么?因为实盘中的滑点往往比你想的要大。尤其是在行情剧烈波动时,你挂单的价格可能根本成交不了。
误区五:忽略滑点——你挂单的价格,不一定能成交
滑点和交易成本是两回事。滑点是指你预期成交价和实际成交价之间的差值。
举个例子:你看到螺纹钢现价3800,你挂单3800买入。但等你下单时,价格已经跳到3802了。这2个点的差价,就是滑点。
我记得有一次做股指期货,行情瞬间跳水,我挂单的价格根本成交不了,最后成交价差了5个点。那一单直接亏了1万多。从那以后,我回测时都会加上至少1个tick的滑点。
误区六:忽略流动性——你买的品种,可能根本卖不出去
流动性是个大问题,尤其是在小品种或者非主力合约上。
你想想看,如果你的策略在回测中每天交易100手,但实际市场上每天只有500手的成交量。那你一进场,价格就被你推高了。等你平仓时,价格又被你砸下去了。这就是流动性风险。
知识体系总览
下面这张图,是我对参数调优常见误区的总结。你可以把它当成一个检查清单,每次调参前都过一遍。
最后说几句
参数调优不是玄学,但也不是科学。它更像是一门手艺,需要经验积累。
我个人习惯是:每次调参后,都问自己三个问题——这个参数组合在逻辑上说得通吗?它在不同市场环境下都稳定吗?如果实盘表现差20%,我能接受吗?
如果这三个问题的答案都是肯定的,那这个参数组合才值得你上实盘。否则,还是再想想吧。