原创私募工场12-11 02:17

摘要: 私募工场(ID:Funds-Works,微信:guo5_guoguo):专注致力于为资产规模在千万以上的个人或企业客户提供资产配置、财富保值、增值、传承等服务。

私募工场(ID:Funds-Works,微信:guo5_guoguo):实名注册会员数万,深度尽调私募三百多家分类策略长期跟踪,独立基金多维度筛选,资产/策略专业配置。专注致力于为资产规模在千万以上的个人企业客户提供资产配置、财富保值、增值、传承等服务

关键词:专业配置 领航私募 精雕细琢 匠心服务 私募FOF 独立客观



私募工场:私募证券投资领域最权威、最独立、最专业化自媒体

果果微信:guo5_guoguo

投顾净值:506743560@qq.com



未经允许转载私募工场所刊文章一律视为侵权(包括非私募工场原创类文章),如需转载请私信果果微信:guo5_guoguo获取授权,转载请在文章开篇处明确注明“来源:私募工场ID:Funds-Works,微信:guo5_guoguo”,未在篇首明确标注,一律视为抄袭。


什么是参数优化


对于一些模型来说会有一些参数,这些参数设置的主要含义可能是为模型提供一个周期,举个例子来说象n日均线上穿N日均线(n为短周期均线参数,N为长周期均线参数,一般短周期的移动平均要比长周期的变化要快,所以我们通过这两个不同周期的均线来制定交易计划),n和N参数的意义就是指定周期,一般来说参数的意义都与时间有关系(周期),但也有其他的用途。参数优化实际上就是利用计算机的处理能力对参数的各个值进行一次测试,找到盈利最大的那次值,如上面函数的n和N,我们利用系统的参数优化功能就可以把n(1~10),N(10~30)都测试一遍,找到最好的那个值。


参数优化的基本矛盾

参数优化的基本矛盾在于,我们选取出的最优的参数数值只是在我们历史数据上成立的,就是说我们是往回看用这个或这组参数能够获得最大的收益,但行情的发展却是无法完全预料的,我们可以找到历史上表现最好的参数,但是这个参数未必在未来是最好的。因为每种系统设置参数的用意不同,更有甚者可能历史上最好的参数在未来可能就是一组很糟糕的参数。比如一个参数的设置刚好让你抓住了一波大行情,在参数优化取到这样的值时很有可能对未来没有任何帮助。当然有些参数优化是由于减少了平均的亏损率使你的系统的效果更好,这种参数优化可能对未来会有一定意义,但也不是绝对的,因为行情的发展有其不可预知的一方面。

所以参数优化的基本矛盾在于历史统计结果和行情未来发展之间的矛盾。我们写本文的主要目的就是为了在这样的问题面前,我们该如何处理,如何辩证的看待参数优化带来的利与弊,更重要的是提供一个方法让大家面对参数优化的时候知道该怎么办。

统计研究

为了研究这个问题,首先我们自己使用的一个很成熟的模型的各个参数值进行了测试,并把一些关键的数据如收益率,交易次数进行了统计。首先介绍一下我们的交易系统,我们的交易系统是属于趋势跟随型的一个交易系统,跟所有趋势跟随型的交易系统有着同样的特点。就是趋势形成的时候进入头寸,当权益回吐一定程度的时候认为是是趋势结束了轧平头寸,胜率不高,但在趋势市中能够赚钱来弥补在盘整震荡市中必然要赔的钱。这个系统只有一个参数,其设置的目的是为了给系统中所使用的计算公式和技术指标提供周期。

这里需要提到的一点是,很多人说模型最好不要设置参数,做好了模型应该把参数固定在模型内部不再改变,我们对这个观点持有不同的看法,我们认为市场总是在变化的,而我们使用模型就是为了抓住这种变化中的规律,当然这种规律也是会变的,我给我自己的模型留有一个参数就是为了调节这种变化,比如使用均线系统,这几年因为这个品种总是大起大落,那么我们使用短一点的周期就可以了。


因为行情变化的总是比均线走的快,不会总触发平仓或者开仓条件,但是过了几年发现这个品种不是那么活跃了,那么我们就应该调整参数把周期调长一些,以适应市场。而不是以一刀切的观点认为没有参数就不再面对参数优化的问题了。这个观点之所以错误,是他看到了参数优化的矛盾,而没有意识到我们做交易的最根本目的是什么。


我们做交易最根本的目的是在于获取利润,而不是逃避仅仅一个参数优化的问题。不过这里还需要提醒的是,参数固然要设置,但是不能设置过多,设置最多两个足矣,自己必须搞清楚设置这个参数的意义是什么。参数设置过多一方面代表的是你的交易思想的不成熟,因为成熟的交易思想是抓住市场中本质的东西,而本质的东西并不需要太多的变量来对其进行描述;另一方面,过多的参数等于说给程序更大的灵活性,以适应更多情况的行情,但你在选择参数的时候会面对更大的困惑,因为多参数的模型经优化后的一组参数值很有可能是让你灵活的系统最符合历史行情的情况,这就是所谓的“参数拟合”。


既要通过参数优化改进模型,又要防止对参数优化过度拟合


参数高原与参数孤岛
 
参数优化中一个重要的原则就是要争取参数高原而不是参数孤岛。所谓参数高原,是指存在着一个较宽的参数范围,模型在这个参数范围内都能取得较好的效果,一般会以高原的中心形成近似正态分布状。而所谓参数孤岛,是指只有在参数值处于某个很小的范围内时,模型才有较好表现,而当参数偏离该值时,模型的表现便会显著变差。


图为参数高原


以参数高原示意图和参数孤岛示意图为例,假设某交易模型内有两个参数,分别为参数1和参数2,当对两个参数进行遍历测试后,得到一张三维的绩效图。好的参数分布应当是参数高原示意图,即使当参数的设置有所偏移,模型的获利绩效依然能够得到保证。这样的参数因稳定性强,可以使得模型在未来实战中遇到各类行情时,具有较强的因应能力。但如果遍历参数后的绩效结果如参数孤岛示意图,当参数发生小的偏移时,模型的获利绩效就发生较大变动,那么这样的参数因适应性能差,往往难以应对实际交易中变化多端的市场环境。


图为参数孤岛


一般来说,如果附近参数系统的性能远差于最优参数的性能,那么这个最优参数有可能是一个过度拟和的结果,在数学上可以认为是奇点解,而不是所要寻找的极大值解。从数学角度来说,奇点是不稳定的,在未来的不确定行情中,一旦市场特征发生变化,最优参数可能会变为最差参数。

过度拟合与选取的样本有关系,如果选取的样本不能代表市场总体特征,只是为了使测试结果达到正的期望值而去调整参数,这种做法无疑是自欺欺人,所得到的参数值是过度拟合的无效参数值。例如,通过分析参数过度拟合,交易模型分别在数值35和63出现了收益率突增现象,如果模型中的相应指标选用35和63做参数,则模型的收益看上去很完美,但实际上却是典型的参数孤岛效应。

过度拟合与参数优化的主要矛盾在于,模型参数优化得到的最优参数只是建立在已经发生过的历史数据样本上,而未来的行情是动态变化的,与历史行情相比既有相似性,也有变异性。模型设计者可以找到模型在历史上表现最好的参数,但是这个参数在未来模型实际应用中未必表现最好,更有甚者历史上表现最好的模型参数,在未来模型实战中可能是表现很糟糕的参数,甚至带来大幅亏损。比如,筛选出了一个能抓住历史上一波大行情的一个参数,但设置这样参数值的模型,并不意味着模型在未来实战中也能有如此好的表现,这个历史上较佳的参数值可能在未来模型的应用中没有起到任何帮助。


图为参数过度拟合分析


此外,参数高原与参数孤岛往往还与交易次数存在较大关系。如果模型的交易次数较少,往往能找到一个合适的参数点,使得模型在这几次交易中都盈利,这种参数优化后的模型获利体现出较强的偶然性。如果模型的交易次数较多,模型获利的偶然性就会下降,更多地体现出获利的必然性和规律性,也就会存在一个参数高原。而这种参数优化模型才是进行参数优化的目的所在。


二、 优化参数的方法


在了解完参数高原与参数孤岛之后,优化参数的方法显得很重要,特别是模型中存在多个参数(下称参数数组)时,往往一个参数的取值会影响到另外一个参数高原的分布。那么如何对参数数组进行优化呢?

一种方法为逐步收敛法。即先单独对一个参数进行优化,取得其最佳值后固定下来,然后再对另外一个参数进行优化,取得其最佳值后固定下来。如此循环,直到优化结果不再变动。例如,一个均线交叉买卖交易模型,两个独立参数分别是均线短周期N1和长周期N2。首先固定N2为1,对N1在1到100的数值范围内进行测试筛选,寻找最佳数值,最终得到最佳参数为8并固定;其次对N2在1到200之间进行优化,得到最佳值26并固定;再次对N1进行第二轮优化,得到新的最佳值10并固定;最后对N2进行优化得到最佳值28并固定。如此循环的筛选下去,直到优化结果不再变动。假如最终得到的最优参数值分别是N1为10,N2为30。至此,参数优化工作结束。

另外一种方法是利用带有较强计算功能的程序化软件设计平台,直接算出目标函数与参数数组之间的分布,进而求多维差分的分布,定义一个差分阈值,差分绝对值小于阈值范围内对应的多维体积最大、多维内切球半径最高者,入选为最稳定参数取值。

除了参数优化方法,数据样本选取也是个重要因素。以趋势跟踪为交易思想的模型在出现趋势行情时表现较好,以高卖低买为交易思想的策略在振荡行情中表现较好。因此,在参数优化时,需要适当剔除吻合交易思想的行情来考虑盈利,增加不吻策略思想的行情数据来考虑亏损。

以股指期货为例,上市之初的2010年以及出现极端大牛市行情的2014年下半年至今,股指期货都是单边行情。毫无疑问,所有的趋势模型都会取得不错的效果。然而如果我们把这种极端行情数据也放进样本中进行参数优化,得到的模型参数未必是最优的。

例如,假设某个模型有两个参数,参数A的测试结果在单边行情时段效果非常好,在其他的时段表现一般;另一个参数B的测试结果在单边行情时段效果不如参数A,在其他时段的表现优于参数A,各个时段之间的分布较参数A均匀。即使参数A在整个样本数据测试的综合指标如风险收益高于B参数,我们也更倾向于选用参数B,因为参数B相对更加稳定,不依赖于特定样本。

总之,在构建程序化交易模型时,一方面,可以通过参数优化改进模型,让模型更好地适应价格波动的模式,提高投资收益;另一方面,又要防止对参数优化的过度拟合,导致模型对行情变化适用性的大幅降低。


风险提示:私募工场ID:Funds-Works所载信息和资料均来源于公开渠道,对其真实性、准确性、充足性、完整性及其使用的适当性等不作任何担保。在任何情况下,私募工场ID:Funds-Works所推送文章的信息、观点等均不构成对任何人的投资建议,也不作为任何法律文件。一切与产品条款有关的信息均以产品合同为准。私募工场ID:Funds-Works不对任何人因使用私募工场ID:Funds-Works所推送文章/报告中的任何内容所引致的任何损失负任何责任。

来源:交易开拓者