策略参数空间:参数类型、边界设定与依赖关系

大家好,我是你们的老朋友。今天我们来聊聊策略参数空间——说白了,就是你的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策略优化,发现“入场阈值”和“出场阈值”总是同时变大或变小。后来一分析,原来它们之间存在强相关性——入场阈值高了,出场阈值也得跟着高,否则策略会频繁进出。这就是典型的线性依赖。

搜索空间可视化

光靠脑子想,很难理解高维参数空间长什么样。所以可视化是必须的。

我个人最常用的方法是:

  1. 二维热力图: 固定其他参数,只变化两个参数,看目标函数的变化。
  2. 平行坐标图: 展示多个参数与目标值的关系,适合高维空间。
  3. 散点矩阵: 两两参数组合,快速发现依赖关系。

下面我画了一张参数空间的结构图,帮你理清整体逻辑:

策略参数空间结构图 策略参数空间 参数类型 边界设定 依赖关系 连续参数 离散参数 条件参数 业务+历史约束 层级依赖 互斥依赖 线性依赖 搜索空间可视化 二维热力图 平行坐标图 散点矩阵

这张图把参数空间的三个核心维度串起来了。你从顶部往下看,先确定参数类型,再设定边界,然后理清依赖关系,最后用可视化验证。这个流程我用了好几年,基本没出过问题。

核心要点: 参数空间设计不是一次性的。先粗后细,先少后多,逐步迭代。我见过太多人一上来就搞50个参数,结果优化了两个月还在原地打转。

好了,关于参数空间的内容就这些。记住一句话:参数空间设计得好,优化就成功了一半。剩下的,就是耐心和运气了。


公众号:蓝海资料掘金营,微信deep3321