2. 参数调优概述:参数空间、过拟合与欠拟合、回测与实盘的差异
做市策略写好了,参数怎么设?
说实话,这是整个系统里最磨人的环节。代码写得再漂亮,参数不对,实盘就是送钱。我见过太多团队,策略逻辑没问题,结果死在参数调优上。今天咱们就把这块硬骨头啃下来。
2.1 参数空间:你的策略有多少种可能?
先问个问题:你的策略有几个参数?
假设一个简单的做市策略,只有三个参数:
- 订单簿深度(比如取前5档还是前10档)
- 报价偏移量(比如在中间价上下0.1%还是0.2%)
- 更新频率(比如每100ms还是每500ms)
每个参数取10个值,那组合数就是10×10×10 = 1000种。听起来不多?
但实际做市策略的参数远不止这些。我记得有个项目,策略参数有8个,每个取20个值,组合数直接飙到20的8次方——256亿种。你想想看,这怎么穷举?
核心概念:参数空间
参数空间就是所有参数可能取值的笛卡尔积。说白了,就是你的策略有多少种「配置」。
参数空间越大,找到最优解就越难。但更麻烦的是——
参数之间往往有交互效应。比如报价偏移量和更新频率,单独调可能效果都不错,但组合在一起反而变差。我在项目中遇到过,一个参数单独优化时表现很好,但放到整个系统里就崩了。原因就是忽略了参数间的耦合。
我的习惯:先做敏感性分析,找出对收益影响最大的3-5个参数,重点调优。其他参数用经验值固定住。别一上来就搞全参数搜索,那是给自己挖坑。
2.2 过拟合与欠拟合:两个极端都要命
调参最怕什么?
怕回测曲线漂亮得像假的一样。嗯,它很可能就是假的。
欠拟合:策略太「笨」
欠拟合就是策略没学到市场规律。回测表现差,实盘也差。这种情况反而好办——说明你的策略逻辑本身有问题,或者参数范围没选对。
举个例子:你把报价偏移量设成固定值0.01%,但市场波动率从1%变到5%时,这个参数完全跟不上。这就是欠拟合。
过拟合:策略太「聪明」
过拟合才是真正的杀手。回测曲线完美,实盘一塌糊涂。
为什么会这样?因为策略把回测期间的「噪音」当成了「信号」。比如某段时间内,某个参数组合恰好踩中了市场节奏,但换个时间段就完全失效。
避坑指南:我曾经花了两周时间,把一个做市策略的回测年化收益从15%优化到35%。结果实盘第一周就亏了8%。后来发现,那个「最优参数」完全是在拟合回测期间的特定波动模式。从那以后,我再也不信单一时间段的回测结果了。
怎么判断是否过拟合?三个方法:
- 样本外测试:把数据分成两段,一段用来调参,一段用来验证。如果样本外表现远差于样本内,大概率过拟合了。
- 交叉验证:把数据切成多段,轮流做训练和验证。我习惯用5折交叉验证,效果比较稳定。
- 参数稳定性检查:最优参数附近的表现是否平滑?如果参数稍微变一点,收益就剧烈波动,那这个「最优」很可能是假的。
2.3 回测与实盘的差异:为什么回测赚钱,实盘亏钱?
这个问题我几乎每次做课程都会被问到。说实话,原因太多了,但核心就三点:
| 差异点 | 回测中的假设 | 实盘中的现实 |
|---|---|---|
| 成交延迟 | 订单立即成交 | 有网络延迟、撮合延迟 |
| 流动性 | 订单簿深度不变 | 大单会吃掉流动性 |
| 手续费 | 固定费率 | 可能有返佣、阶梯费率 |
| 市场冲击 | 忽略 | 大额订单会推动价格 |
| 滑点 | 按最优价成交 | 实际成交价可能更差 |
你看,回测里我们假设的是「理想世界」。但实盘里,每一笔成交都有成本,每一个延迟都在侵蚀利润。
我个人习惯在回测时故意加入一些「惩罚因子」:
- 成交延迟加2ms
- 滑点按0.5个tick计算
- 手续费上浮20%
如果加了这些惩罚后策略还能赚钱,那实盘才有戏。
一个残酷的事实:回测年化20%的策略,实盘能跑到10%就算不错了。我见过太多人拿着回测曲线去募资,结果实盘直接腰斩。所以,永远对回测结果打五折。
2.4 知识体系总览
下面这张图是我自己整理的参数调优知识框架,你可以对照着看:
2.5 一些实操建议
说了这么多理论,来点实际的。我总结了几条调参时的铁律:
- 先粗后细:先用大步长搜索,找到大致区域,再缩小范围精细调。别一上来就搞网格搜索,计算量太大。
- 多时间段验证:至少用三个不同市场环境的时间段做验证——趋势行情、震荡行情、高波动行情。如果参数只在一种行情下有效,那风险很高。
- 参数不要太多:我个人的经验,做市策略的核心参数不要超过5个。超过这个数,过拟合的概率指数级上升。
- 实盘模拟跑一跑:在正式实盘前,先用模拟账户跑一周。虽然模拟盘也有差异,但至少能暴露一些明显的问题。
一个小技巧:调参时把回测结果打印成热力图。一眼就能看出哪些参数区域表现稳定,哪些区域是「孤岛」——孤岛区域大概率是过拟合。
好了,参数调优的框架就这些。说白了,调参不是找「最优解」,而是找「稳健解」。一个参数组合,能在不同市场环境下都表现尚可,比某个环境下表现极好、其他环境下崩盘要强得多。
嗯,这个道理我花了两年才真正理解。希望你能少走些弯路。
公众号:蓝海资料掘金营,微信 deep3321