策略参数空间:参数类型、边界设定与依赖关系
大家好,我是你们的老朋友。今天我们来聊聊策略参数空间——说白了,就是你的AI策略有哪些“旋钮”可以调,以及这些旋钮之间有什么门道。
我刚开始做参数优化那会儿,总觉得参数越多越好。后来被现实狠狠教育了一顿——参数多了,搜索空间呈指数级膨胀,优化器直接跑死。嗯,从那以后我学会了先理清参数空间再动手。
参数类型:连续、离散与条件
参数类型就三种,但很多人搞混。我一个个说。
连续参数
连续参数就是可以在某个区间内取任意值的参数。比如学习率0.001到0.1,或者止损比例1%到5%。
我在项目中遇到过最典型的连续参数是移动平均线的周期——理论上你可以设成20.5天,虽然实际交易中没人这么干,但优化器会这么尝试。
离散参数
离散参数只能取有限个值。比如均线类型(SMA、EMA、WMA),或者持仓周期(1天、3天、5天)。
你想想看,离散参数其实更好处理——因为候选值就那么几个,暴力搜索都行。但要注意,离散参数的粒度不能太粗,否则容易错过最优解。
条件参数
条件参数是最容易踩坑的。它只有在某个条件满足时才生效。
举个例子:如果你选择了“突破策略”,那么“突破阈值”这个参数才有意义。如果你选了“均值回归策略”,那“突破阈值”就是个废参数。
参数边界设定
边界设定是个技术活。设得太宽,搜索空间太大;设得太窄,可能错过最优解。
我个人习惯用“业务含义+历史数据”双重约束。比如止损比例,业务上不可能超过20%(否则一次亏损就爆仓),历史数据也显示最优值通常在3%-8%之间。那我就把边界设为[0.03, 0.08]。
| 参数名称 | 类型 | 下界 | 上界 | 设定依据 |
|---|---|---|---|---|
| 学习率 | 连续 | 0.0001 | 0.1 | 经验值+文献参考 |
| 均线周期 | 离散 | 5 | 200 | 步长5,覆盖短中长线 |
| 止损比例 | 连续 | 0.01 | 0.15 | 业务约束+历史回测 |
参数依赖关系
参数之间不是孤立的。它们有依赖关系,而且这种关系会严重影响优化效果。
最常见的依赖关系有三种:
- 层级依赖: 参数B只有在参数A取某个值时才有意义。比如“止损类型”选了“移动止损”,那么“移动止损幅度”才生效。
- 互斥依赖: 参数A和参数B不能同时取某些值。比如“做多”和“做空”不能同时开启。
- 线性依赖: 参数A和参数B之间存在线性关系。比如“仓位比例”和“最大回撤容忍度”通常是负相关。
我记得有一次做CTA策略优化,发现“入场阈值”和“出场阈值”总是同时变大或变小。后来一分析,原来它们之间存在强相关性——入场阈值高了,出场阈值也得跟着高,否则策略会频繁进出。这就是典型的线性依赖。
搜索空间可视化
光靠脑子想,很难理解高维参数空间长什么样。所以可视化是必须的。
我个人最常用的方法是:
- 二维热力图: 固定其他参数,只变化两个参数,看目标函数的变化。
- 平行坐标图: 展示多个参数与目标值的关系,适合高维空间。
- 散点矩阵: 两两参数组合,快速发现依赖关系。
下面我画了一张参数空间的结构图,帮你理清整体逻辑:
这张图把参数空间的三个核心维度串起来了。你从顶部往下看,先确定参数类型,再设定边界,然后理清依赖关系,最后用可视化验证。这个流程我用了好几年,基本没出过问题。
好了,关于参数空间的内容就这些。记住一句话:参数空间设计得好,优化就成功了一半。剩下的,就是耐心和运气了。
公众号:蓝海资料掘金营,微信deep3321