(四)参数优化让模型达到最优

交易过程中有时会发现在一段时间内表现很好的模型,过了一段时间就好像失效了一样,这种情况是由于模型参数不再适应当前行情引起的,我们需要尽快寻找新的最优参数,而在海量的历史数据中仅凭人工去寻找如大海捞针,费时费力,机会渺茫。 "参数优化",可在指定的参数范围内让计算机很快筛选出最适合当前行情的参数。

1、案例:利用参数优化,让止损参数顺势而为

下图是对螺纹品种跟踪止损策略模型的回测资金曲线。结束了小半年的单边上涨行情后,市场极速下跌进入调整形态,从图上可清楚的看到资金曲线在近下半年不再保持稳定上升形态,说明原来的止损价差参数已经不能适应现在的市场,模型已经失效。我们可以利用参数优化功能,对当前的参数进行优化,筛选出符合当前行情的参数组合。

下图是利用参数优化对模型的参数进行枚举和遗传后的结果,在使用新参数后,黄色资金曲线更平滑稳定,新的参数更能适应市场行情,使模型真正达到顺势而为的效果。

2、进行参数优化的操作步骤

(1)先使用枚举功能,进行大范围海选,如下图所示是如何进行枚举:

设置参数关系如何减少参数优化时间:

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

MA5:MA(C,N1);

MA10:MA(C,N2);

CROSSUP(MA5,MA10),BPK;

CROSSDOWN(MA5,MA10),SPK;

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

AUTOFILTER;

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

(2)参数优化计算完会以排序的方式显示优化出来的参数组,可按下图步骤将优化后的参数保存至备选参数组或直接替换为默认参数组。

(3)如需对枚举的结果进一步精调,可在参数优化列表选择要优化的参数组->预览主图,如下图,用枚举出来的新参数对K线图回测,再对新参数进行遗传。

(4)如下图所示设置好优化的精调范围,参考标准的比重后,点击“确定”按钮,开始进行精调。

(5)按照和枚举同样的方法来保存精调后的结果,以便进行回测(如下图所示)。

(6)如下图,在编写平台上选择保存好的“备选参数组1/2/3/4”,加载到主图计算,软件可自动使用新参数进行回测。

相关常见问题解答

1、参数优化中枚举和遗传是什么意思?

答:参数优化的计算实际上就是将所有参数的全部排列组合都计算一遍,找到最优的结果。但是在参数较多的情况下,即使是在较高的计算机硬件水平下,也可能需要几个小时,甚至几天时间才能计算完成,这样效率实在太低了。
参数优化中的“枚举”是一个初选的过程,通过设定计算步长、参数关系表达式,降低计算量、提高优化效率。虽然是初选,但实际不影响优化效果,因为量化交易要选择的参数是需要具备一定适应性的,不能是极值。一个“孤岛”型的参数,往往会带来过度优化的问题。
当从软件里以排序的方式显示出的参数组中选择好了参数以后,可以继续使用遗传功能进行精调,通过对比不同参数的收益、胜率、盈亏比等信息,最终确定最佳参数组合。

2、“枚举”和“遗传”两种参数优化方式的原理是什么?

答:枚举是在每个参数最小值与最大值之间抽选几个效果最好的参数值,是对参数的初步海选;遗传是在枚举好的参数值基础上进行微调,让参数达到最优。
(1)枚举:
根据设置的"步长"挑选出所有满足条件的参数,进行全排列,在其中挑选出最优参数值。
(2)遗传:
使用枚举得到的参数组,按步长1上下变动每一个参数,分别与剩余参数组合找到最优参数组。

3、参数写在模型源码中和写在参数列表中有什么区别?

答:两者对模型的运行没有区别,但参数列表中的参数可进行参数优化,写在源码中的参数则不能。

4、参数优化页面上的参考标准表示什么含义?

答:参考标准是用于投资者在参数优化后,根据个人的分析需求对各项指标按权重划分,对优选出的参数进行排序显示。权重数值大小根据个人偏好来设置,可以对关注度高的指标设置大一点的权重。比如,设置总盈利率权重为60,平均盈亏为40,优化后的参数组将按照总盈利率排名*60%+平均盈亏排名*40%的加权排名来排序显示。