中国期货市场量化交易(R与C++版)
上QQ阅读APP看书,第一时间看更新

1.4 本节介绍

本节主要介绍本书的编程语言及主要研究的策略,也跟其他主流的编程语言做了对比,并且介绍了本书要讲的策略类型,以及其他一些策略类型。

1.4.1 为什么使用R语言

很多人会问为什么使用R语言?因为现在国内最受欢迎的分析类语言是Matlab,国际上Python越来越流行,而且介绍Matlab和Python的书喜欢用R语言作为反面例子。整体而言,一个语言是否适合做量化交易,有以下几个方面原因。

  • 运算速度。其实这几个都是解释性语言,或许有一定的速度差异,但一般是10%~20%这个幅度,对于计算量大的处理,要么已经封装了软件包,里面是C++写的,要么自己可以写成C++编译,然后用分析语言调用,整体速度就差不多。本书会介绍如何使用Rcpp来在R语言里面使用C++。
  • 研究与交易结合。客观说这不能算是优势,因为绝大多数正规的量化团队还是会用C++把交易程序重新写一遍,Python在国内期货也需要调用C++的CTP接口才能交易,其实正规的团队不大喜欢用第三方的接口,因为有错误的话难以调试。
  • 研究效率。其实这是R语言的优势,在可视化方面R语言应该是最好的,而且R语言很多package都是开源的,网上可以搜到代码,有不懂的可以上stackoverflow上面问,一般作者都会在24小时内回答,非常方便。
  • 其他方面。国内使用Matlab多是因为可以免费试用,但国外Matlab是收费的,而R语言是免费的,且没有版权的问题。很多学术界的书籍都是基于R语言的,Python更多是复杂的机器学习模型上有优势,但统计学领域的时间序列、非参数统计等基本上只有R语言才会有对应的package。

基于上述的理由,加上本人在研究生阶段就是学习R语言为主,而且并没怎么使用深度学习模型,因此本书使用R语言作为研究的语言。

1.4.2 重点介绍中低频趋势

本书重点介绍的是中低频策略,基于5分钟K线,持仓三五天。如果是更高频率的策略,比如基于分笔数据的策略,数据量比较大,回测、优化时间较长,不适合初学者。如果是更低频的日线数据,最好结合基本面数据才能研究出好的策略,因此这里也没有涉及。基于5分钟K线的数据,一般不需要基本面数据,也不会对交易速度有很高的要求,各项都比较适中,而且容量也比较大,10~15亿都没问题,适合中小型私募和个人投资者。