返回首页
量化投资,高频交易,程序化交易学习必备~900+个(200G+)培训视频持续更新中!!!
当前位置: 主页 > 新手入门 >

程序化交易忌讳之过度优化

时间:2017-10-13 08:58来源:未知 作者:admin 点击:
程序化交易 的策略在我们设计完成之后总会考虑到的问题的就是这个程序化交易策略是否优化过度了? 现在的程序化交易策略的开发方式一般就是根据历史数据套用逻辑语言来进行测试。这种策略的目的就是可以预测未来的走势。这样的方式其实属于一种找规律,而规律

  程序化交易的策略在我们设计完成之后总会考虑到的问题的就是这个程序化交易策略是否优化过度了?

  现在的程序化交易策略的开发方式一般就是根据历史数据套用逻辑语言来进行测试。这种策略的目的就是可以预测未来的走势。这样的方式其实属于一种找规律,而规律也是有概率性的,我们回测的胜率一般就是规律的胜率。

  但是如果将不同的逻辑条件疯狂的加入到我们的模型之中,就会对数据的细节描述的越来越详细,测试的时候也会出现越来越漂亮的数据。但是这种方法必然会丧失一些对未来预测的能力。举个考试的例子来说,我们进行古诗文考试,我们将所有要考的古诗文全都背下来了,那么考上句填下句我们一定可以答对,但是根据释义来填古文的题我们就不会做了。

程序化交易过度优化的结果图片

  对于指标参数我们必须要做出选择。选择参数的个数及个别的范围还有更大的考量是,要怎么判断是否也用了太多指标以致于过度优化了? 或许它真的就是这么准,也没什么不可能。那如何来解决这个问题呢?

  目前并没有主动正向的建议或准则说明该使用多少参数或指标个数,只有被动的再去测试,常用的方法是forward backtesting,就是把数据切两部份,一部份测试合适参数,另一部份作为未知数据来测试结果。假设同一组参数在这两部份的运作情形差异不大,那很可能表示这组参数是够稳健的,若在两部份的差异很大,那好险有先作测试…

  以上,是针对单一策略作forward backtesting来判断是否过度最佳化,但作了也评估过了,能表示未来绩效会和测试时一样好吗? 当然,还是不一定的,唯一可以确定的是对这支策略的信心和了解更加提升了,这也是很重要的。

  除了forward backtesting之外,避免程序化交易策略过度最佳化是从策略组合的角度来设计,简单的说,就是让各策略专注。专注在目标上,目标是长波段10%行情、中波段3%行情、当冲策略、极短线策略、震盪盘策略或是针对只作多空单方向的特殊策略等等。

  在设计程序化交易策略时,首先单一的目标一定要明确,假如我们想要去设计一个专吃大行情的策略,那么这个策略我们就不要去顾及小行情,甚至说在小行情中能做到不亏损就可以了。做大行情就是做大行情,不要贪得无厌想要通吃,因为这样极有可能是我们自己陷入多重逻辑的陷阱,从而导致亏损。

  再举个例子来说:动物界举办了铁人三项比赛,项目是飞行、短跑和游泳,老鹰在飞行项目得了第一名,但是短跑和游泳都不行,猎豹在短跑得了第一名,但是另两项不行,海豚则是游泳第一名,但另外两项也不行。最后这项比赛的冠军是鸭子,三项都会一点,虽然都不怎样。

  那么这个故事想要表达什么呢?就我们的策略来说如果我们想要去设计一个通吃的模型,那么很可能做成了上面故事的和鸭子相似的模型,样样通样样松,这样的模型会给我们带来多大的利润?那么我们需要什么样的模型呢?我们需要的是一个团队,由老鹰、猎豹和海豚组合的超级战队。

  那么这个和程序化交易过度优化有什么关系呢?我可以告诉大家鸭子类模型就属于过度优化。我们需要做出的是老鹰、猎豹和海豚类模型的拟合。

(责任编辑:admin)
量化投资,高频交易,程序化交易学习必备~900+个(200G+)培训视频持续更新中!!!
------分隔线----------------------------
云量化商城
如果您会开发策略,请进!大量项目等待与您合作!
推荐内容
量化投资培训