其实这个问题可以这么问更好,拿到免费分享的程序化源码真的可以进行程序化实战么?怎样利用这些免费的资源可以进行程序化快速的入门以及实战?其实这个对于新手来说更有借鉴意义。
第一,拿到的源码真的可以进行实战么?我觉得肯定是不可以的,虽然源码给你看,但是对于新手来说是无法知道写出源码的人的水平的,也许也是一个菜鸟随便写一下,就发上来给大家看,那么对于自己或者对于自己的金钱来说也是来说,是不负责任的行为。所以我们要先了解程序化交易写代码的几个比较大的坑。
1,未来函数,因为程序化交易的建模以及策略的回测都是基于历史数据,那么站在历史的某一天你是可以向“后”看的,因此其实做这么个策略就可以在测试环境中所向无敌:“如果明天的 收盘价大于今天的收盘价,那么我就以今天的收盘价买入,明天的收盘价买出。”这个写成交易开拓者 这个平台的伪代码就是IF(CLOSE[-1]>CLOSE){BUY(1,CLOSE )} IF(MARKETPOSITION=1){SELL(0,CLOSE)}。这样回测的曲线就如下图一样,是没有意义的。
2,偷价,这个因为回测价格你可以随便要,例如,你做一个趋势策略的模型,如果是突破类型的,那么突破了你设定的一个阈值,例如是昨天的最高价,但是你的买入记录写的买入记录价格并非是最高价而是今天的收盘价,现实生活中价格涨上去,你在低位挂单,那么是要运气很好价格回下来才能成交的,但是在回测系统中只是发现今天到达过这个价位就算你成交,会记录下来。那么也是随便写随便赚的策略。例如IF(HIGH>HIGH[1]){BUY(1,OPEN)},那么回测下来也是非常好如下图,但是这个钱你赚不到。拿到有这样问题的策略那么就完全不能用的,所以一定要自己检查,并且也要学习怎样使用。
第二,怎样利用这些资源更好的入门,如果确定没有以上提到的源码问题之后,假如我们拿到一个没有问题的源码,我们要怎样进行学习,很简单,做好任何一个事情都不容易何况门槛比较高的量化投资。拿到一个好的源码之后,我们要完全读懂源码的意思。我们可以根据该源码所使用的语言,读明白每一句表达的意思,最后串起来,明白策略研发者他的核心思路是什么。然后明白这个策略是什么风格的策略,趋势还是震荡?做的是突破还是指标类的策略等等,等明白这个之后我们在讨论策略。
第三。怎样用拿到的策略进行实战,我认为既然源码已经开源,起码许多人都有这样的策略,那么你在直接进行实战我认为不是明智之举。一定要进行一定的改造,根据第二部你已经对这个策略的大体逻辑有一定的了解了,所以可以根据自己对市场的理解进行改造来使得这个策略起码在下单的时间点和价位上面和大家不一样这样来规避实战的一些风险。但是有人会问“我是刚入门的新手 如果上来就让我改策略我怎么会?”,那么量化侠教大家最简单的一招,就是和别人用不一样的参数,那么久对策略的参数进行一些 调整,这样在实战中也能和大家用到不一样的入场点。具体参数怎样优化,怎样得到可以实战的参数,量化侠可能考虑在自己的平台出一期专栏来讲这个问题,这里就不多说了。
第四,来正式回答一些楼主的问题吧,其实程序化平台那么多,平台间的策略源码又不通用,那么怎么样去找不同平台的源码进行入门学习呢。其实这里有个小技巧,就是去各个程序化交易的平台的官方论坛上面,搜策略 或者 源码等关键字,就有许多愿意交流和分享的人进行分享。我以交易开拓者为例。
程序化实战
别的例如Multicharts,Tradestation也是一样的。最后在强调一句,投资没有捷径,如果只是要找到一个好的策略,那么付出是必不可少的,加油!