量化投资对于数据源、回测、实盘平台的选择

量化投资对于数据源、回测、实盘平台的选择,第1张

量化策略开发第一步:数据源

开发量化策略的第一个重要环节:如何获取数据?

开发量化策略所需要的数据,包括历史数据和实时数据。特别指出,我们只介绍免费的数据源,以帮助大家降低成本。

先从股票开始,股票的历史数据,我们可以借用三方平台回测(例如优矿、聚宽、米筐等),相当于借用了平台的历史数据,但平台历史数据有一个问题:往往不能将全量数据下载到本地。想要自己搭建股票回测框架的话,推荐用tushare的数据,如果你是学生,tushare是可以免费使用的;而如果你有写blog的习惯,也可以写一些tushare相关的技术文,向tushare申请免费的积分以获取数据权限。

一个tushare获取数据的小栗子

对于实时数据,目前新浪财经、腾讯股票可以通过爬虫抓取实时数据,我们曾分享过如何通过新浪财经,以及Easyquotation(包含新浪、腾讯财经接口)获取数据的文章,传送门:

实时获取股票数据,免费!——Python爬虫Sina Stock实战

股票数据爬虫:进阶免费、开源的股票爬虫Python库,亲测真香

然后再看期货,期货数据根据数据周期可以分为K线数据和tick数据。期货的三方平台例如tbquant,提供了tbpy的接口。我们可以通过Python将平台提供的全量历史k线数据下载到本地,来进行本地的回测,可以说是极为友好了。此外,比如tqsdk(快期天勤的Py接口),以及上文提到过的tushare,也能提供期货的k线的历史数据接口。

对于高频策略需要用到的tick数据,就只能通过自编软件来收集了,目前我们没有看到三方平台或数据商有这一类免费的数据源提供。期货的实时数据,由于有ctp api这个完全免费、高度成熟的期货接口,任何人都可以通过这个接口接收交易所推送的标准行情数据,与此同时,我们可以配合mysql或mongodb,将数据落地,就形成了本地的tick级数据回测来源。

tick数据落地范例

量化策略开发第二步:回测平台

开发量化策略的第二个重要环节:选择合适的回测平台/框架

量化策略的回测,我们既可以借助成熟的三方平台,也可以用例如Python等语言自行编写搭建回测框架。

先说三方平台,股票回测的三方平台,以聚宽、优矿、米筐这3个最常见,这3个平台都是Python API的结构,并且有完善的测试结果的可视化工具。

对于期货的回测,K线策略同样可以借助4大三方平台:tbquant、文华财经、金字塔、multicharts来实现,如果对于Python比较熟悉,也可以选择天勤的tqsdk或者vn.py来回测,其中vn.py需自行对接历史数据。

三方回测平台的优势与劣势

然后,我们来分析一下三方平台的优势、劣势。首先是优势,第一点,三方平台把回测的基础框架都搭建好了,用户只需要专注最核心的策略逻辑部分,而不需要关注其他的底层;第二点,三方平台往往回测和实盘代码是同一套,回测、实盘的逻辑由三方平台自建的底层代码来做切换,给予用户编程最大程度的方便。

说完优势,我们再来看一下劣势,第一,三方平台封装好了底层,是一个双刃剑,在提供编程便利的同时,也把底层变成了黑盒,有些指标计算、开平仓价格的细节,无法通过代码去定位是否有潜在错误,导致回测结果变得不十分可信。代码控制的不好,很容易产生未来数据或偷价格等错误,导致回测出上帝视角的策略效果。第二,三方平台的回测速度,往往不如自编更快,因为三方平台需要兼顾许许多多客户的不同需求,增加越多通用性的功能,往往意味着性能上的妥协。第三,使用三方平台会产生一定的费用,例如需要购买历史数据、服务器磁盘空间、实盘权限等等(毕竟免费的三方回测,也不是做雷锋,总有其需要变现之处)。

总结一下,如果有一定的Python编写能力,或是对于策略的回测精度细节要求很高,基本上只能自己搭建框架来回测;而如果测试一些通用的策略,且编程是刚刚上手的,那么三方平台能尽快地帮助你去实现一些想法,并验证这些想法在历史上是否可行,以及是否有应用到实盘的价值。

我们在此前的直播中,分别分享了基于K线策略的自编Python回测框架,以及基于横截面策略的自编Python回测框架,感兴趣的朋友可以参考

【系列培训第三讲】魔改经典策略:变种肯特纳通道策略(完整录播版)

【系列培训第四讲】量价之外:期货基本面量化策略(完整录播)

量化策略开发第三步:实盘平台

开发量化策略的第三个重要环节:选择合适的实盘平台/API

首先是股票,股票目前监管较为严格,比较有名的像XTP,接入门槛在300万-500万起步;此外,市面上有一些类似外挂的接口,极不稳定,实盘请注意风险,不建议大资金使用,上述接口都是基于C++语言的。也有部分“科学家”用Python开发了类似按键精灵功能的伪接口,不算是完善的接口,实盘同样需要注意风险。

再说期货,期货入门门槛最低的是4大三方平台:tbquant、文华财经、金字塔、multicharts,这4个平台采用编程极为友好的easylanguage,建议编程初学者使用,但有需要支付额外手续费、速度慢等缺点;再难一点的是vn.py,开源的python平台,对于熟悉python的同学比较友好;然后更为复杂的就是C++ API了,大家用的最多的是ctp,速度更快的还有ctp mini、盛立、艾克朗科、恒生等。对于平台的选择,如果做的是中低频的策略,优选4大平台或vn.py,但如果做高频策略,C++是必须配置,ctp是起步要求,如果策略对于速度要求更高的话,选用盛立等以FPGA作为底层的平台更合适。FPGA为底层的交易系统(下图是一个典型的FPGA通路),可以将交易系统的响应速度提升到极致。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/715601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存