您现在的位置:程序化交易>> 程序化交易>> 程序化新手>>正文内容

程序化交易中的参数优化是否能提升你未来获利概率及空间[程序化新手]

 

在程序化交易中,最佳化参数是乎是必要的恶,一个程式策略的产生,必定会用历史资料去检测这个策略的可行性,在检测的过程中,很难不会作参数最佳化,希望能由过去的历史资料,归纳出市场的趋势特性与参数,而能在未来的市场中获利。

当然我们都知道,过去的最佳化参数,并不能代表未来会有最佳的获利,但也不能排除最佳化参数完全有可能提昇未来的绩效,对同一策略而言,若是一组参数在过去历史的绩效比较好,另一组参数在过去历史的绩效比较差,在没有其他的辅助讯息下,应该都会选绩效比较好的参数。

因此,我们不一定要排斥参数最佳化,而是要问,参数最佳化是真的可以提昇未来的绩效,还只是过度的curve fitting,造成绩效的假象,一般来说,要避免 curve over-fitting 的问题,通常是看是否为参数孤岛,可参考文章(http://www.cxh99.com/2012/09/19/7314.shtml)。

在这一篇文章中,我们从另外一种分析方法,来探讨参数最佳化是否能提昇你未来获利的绩效,假设我们有十组参数,经过backtesting,一定可以排出第一名到第十名,但是第一名的参数,是不是在未来还会是第一名呢? 因此我们可能不止看每个参数最后绩效的总排名,我们可能也要看每一年的排名。(www.cxh99.com

若是每一年,这组参数都是第一名(超级资优生),我们大概可以有很高的期望,明年还是会考第一名。 但若是今年第一名,次年第5名,再次年最后名,后来又回到第2名,即使最后总排名是第一名,我们对它在明年的表现还是会有比较多的疑虑。因此我们要检测我们的系统是属于前一种,还是后面这一种。

概念讲完了,在来说明如何量测,基本上是参考 Lars Kestner 在 Quantitative Trading Strategies (中译本:计量技术操盘略)中衡量最佳化程序的方法,方法是将每一年最佳化绩效的排名与下一年的排名,排成一个 array,如1990年排名第三,1991年排名第八,就在 (3,8) 标一点,标示所有年份与所有参数的组合后,我们可以判断今年与隔年表现,利用迴归分析,检测是否存在线性关性。 若是45度斜上表示最佳化参数一致性,今年第一名的绩效,次年还是第一名,今年最后一名的绩效,次年还是最后一名,表非「参数最佳化非常有助于隔年的绩效」,若是近于水平则表示参数最佳化没有助于隔年的绩效,另外若是一由左上到右下,表示去年最差绩效的参数,在今年表现反而不错,这种参数不一致的现象,可能要特别小心,可能要检讨策略与参数的关系。(www.cxh99.com 整理)

接下来,我们以一个实例来说明,使用的是 YG (小黄金) 过去7年的资料(2002/7-2009/7),time frame = 30 min,策略是用 Price Channel Breakout ,参数 Length 从102 - 198,间格为 4,共 25 组,我们记录每一个参数在每一年与次一年的绩效排名,可以得到下图的结果,经过迴归分析,可得到紫红色的迴归直线,slope=0.188,相关系数也是 0.188,在检测上是为显著,代表这个策略的最佳化今年绩效与次年绩效有一定的相关,因此最佳化在某种程度上有助于未来的绩效。
 


另外,我们将每一个参数的历年的平均排名(蓝线)与历年的获利(紫红线)画成下图,从这个图来看,参数 180 附近是最佳的参数选择,因为这个区域有最佳的获利,而且是一个参数高原,另外历年的平均排名也是相当低,表示每一年都考前几名的次数比较多。


基本上,经过上面的分析,我们可以知道参数最佳化对策略的影响,并且由历年的绩效排名,在选择参数上,有更客观的参考,但最后还是要提醒大家,所有这些都只是过去历史资料的统计分析,「在统计上过去的最佳的投资策略,还是不能代表未来会有最佳的获利」,我们将平均排名前三名与平均排倒数第二名(第24名)的过去7年的排名画出。


我们可以看到前三名在2003-2005表现都非常好,但在2006年表现都是20名以上(倒数5名内),反而倒数第二名在2006年表现是第一名,但在其他年的表现却不是很好,历年资料的分析,只能给我们一些客观统计数字,但也不能完全规避市场风险。

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198   点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容