枚举

枚举,是一种全排列计算的调参方式,适用于策略研发阶段,帮助研究员了解模型参数的收益分布,寻找稳定的参数区间。

场景:寻找稳定的参数区间

在策略研发初期,研究员可以通过参数优化了解参数,例如,看看参数能带来的赢面有多大、参数落在更大的区间好还是更小的区间好...在确定了参数的有效区间后,再进一步寻找能让模型表现更稳定的参数。

如下图,研究员可以使用枚举功能对区间内的所有参数组进行计算,从海量参数中进行初选,初步了解参数的收益空间,结合收益率、权益最大回撤比率等参考标准综合排序,筛选出具有长期正收益且低回撤的参数区间,确定参数的有效范围。

通过参数稳定性分析热力图,可以从收益、回撤风险以及盈利能力等方面进一步分析参数的稳定性。以收益率为例,热力图中一个方格代表一组参数,颜色的深浅反应了参数对应的收益率高低,结合权重分布条形图可以直观的了解参数和收益率的分布情况,快速选出收益分布稳定的组合。

操作方法

主图回测后点击右键菜单->枚举;

枚举计算后点击按钮->【寻找稳定参数】,进入参数分布热力图进一步寻找稳定参数。

枚举的原理

枚举是按照设置的步长大小对所有参数组全排列计算,是一个初选的过程。步长是指计算该参数时每次的变动幅度,参数关系是指参数间的逻辑关系,合理设置步长和参数关系,可以节省优化时间,让参数之间的关系更加合理。

由于枚举需要遍历范围内所有参数组合进行计算,所需的计算时间相对较长,当参数多、步长小计算量很大的情况下,计算的时间也会相对拉长。因此,枚举更适用于参数组范围小计算量不大的定参场景。

1、设置参数关系减少参数优化时间

有些模型各个参数间有严格的逻辑管理,以下面的模型为例:

MA5:MA(C,N1);

MA10:MA(C,N2); 

CROSSUP(MA5,MA10),BPK;

CROSSDOWN(MA5,MA10),SPK;

MONEYTOT<=INITMONEY*(1-10/100),SP; // 权益回撤10%多头止损

MONEYTOT<=INITMONEY*(1-10/100),BP; // 权益回撤10%空头止损

AUTOFILTER;

模型中的两个变量必然遵循一大一小规则,这样的模型我们可以首先为他们设置参数关系,如N1<N2,这样在优化时,所有比N2大的N1值都不用参加计算,运算量可以减少1/2.这样每配置一个参数关系,计算次数就减少一半;配置4个,就减少到原来的1/16,以此类推,有效减少了参数优化时间。

2、根据参考标准占比综合筛选参数组

枚举计算后可对各项指标按权重划分,对优选出的参数进行排序显示。权重数值大小根据交易偏好来设置,可以对关注度高的指标设置大一点的权重。

比如,设置收益率权重为60,盈亏比率为40,优化后的参数组将按照收益率排名*60%+盈亏比率*40%的加权排名来排序显示。

寻找稳定参数的原理

参数分布热力图采用逐步收敛法原理寻找稳定参数:

第一步,点击热力图,寻找两两组合中表现最优的一组参数,确定参数组合的整体表现;

第二步,寻找使模型表现更优的剩余参数;

确定两个参数后,其余参数的取值不会使模型变得不稳定,即锁定了模型的最佳和最差表现,再确定剩余参数的值,使得模型表现更优。

根据颜色分布快速定位参数高原:

可以根据参数热力图颜色分布情况快速筛选参数组,一般来说,颜色渐变越不明显的方格参数组表现越稳定,方格颜色越深则收益率/胜率/盈亏比率/夏普比率越高或权益最大回撤比越低。

但需要注意的是,寻找参数高原还要结合参数组个数来分析,若只有极少的参数组,则不具有代表性,同样存在不稳定的风险,如下图,这种参数组也要规避。