私募基金构建量化交易平台已经不是什么新鲜的事情了。本文是笔者对私募基金如何逐步建立量化交易平台的浅识,文中不足之处,请各位批评指正。
1. 业务规划#
私募量化基金的发展建议遵从单一资产到多资产,单一策略到多策略,低频段到中高频段的思路。
首先,单一资产到多资产。私募量化基金的交易标的可以从业务简单,风险相比较低的债券和股票开始。债券和股票的业务比较容易上手,而且因为没有使用杠杆,业务的风险相对比较低,可以作为量化投资策略的试验品。一般而言,一只量化投资产品可以大致设置在 5000 万 - 1 个亿的规模。在比较熟悉量化投资策略及了解背后市场规律之后,可以尝试着扩大资产的种类。此时可以考虑引进商品期货或期权,股指期货或期权。随着这些金融衍生品的引入,从而大大地丰富了资产的种类,形成良性的轮动或对冲机制。有了这种规避风险的轮动或对冲机制后,募集资金的规模也可以继续扩大,比如一只量化投资产品至少要扩大到几个亿左右的规模,并且可以根据风险的不同,针对不同的风险偏好客户,设置不同的产品,从而丰富自己的产品系列。
其次,单一策略到多策略。在平台构建初期,可以考虑单一或者较少的策略。就如前面所提到的,平台构建的初期仅仅考虑简单的交易标的即可。对于债券或股票而言,量化交易策略相对来说发展比较成熟。以股票多因子策略为例,策略原理和策略的实现步骤已经经过很多年的积累,已经非常标准化。对于私募量化基金经理来说,其精力可以更多地放在因子的挖掘和比较上。相对于债券和股票的量化策略,商品期货及股指期货,期权的发展在国内发展比较晚,可供选择的交易标的比较少。随着金融衍生品在国内的发展,其对应的量化策略也是层出不穷。最近几年,面向商品期货的 CTA 策略,面向股票和股指的统计套利策略等等得到了迅速的发展和不断的完善。随着平台的不断扩大,可以配合产品的扩大,扩大策略的种类。
最后,低频段到中高频段。量化交易平台是需要不断进行完善的平台。越是高频的交易,对系统或平台的要求越高,而高频交易的重要度和热度也高于低频交易。最近几年比较热门的 T+0 交易,CTA 策略等都是属于高频交易的范畴。高频交易平台的精髓在于把单机的软硬件外加网络系统的性能发挥到极致(譬如把服务器搬到上海证通机房或者深圳滨海机房),而不是像互联网那样强调高负载和延展性。电商平台常见的动辄用上百台甚至上千台的服务器集群的做法并不适合私募的量化投资平台的要求。随着交易频率的提高,一方面是软硬件的性能需要不断地提高,另一方面算法的智能化和系统稳定性也需要不断优化。私募量化交易平台如果一开始就定位于高频交易策略,由于知识和经验的积累不足,对于高频交易所需的环境的认识不充分,导致交易的失败甚至无法执行。另外一方面,高频交易由于人为干预的空间比较少,从而导致风险性较高。所以,私募量化交易平台应遵从低频段到中高频段的成长过程。
2. 平台功能设计#
完整的量化交易平台应该包含以下几个系统:1,数据中心。2,策略中心。3,交易中心。
首先,数据中心是量化交易平台的基础。所有的量化交易策略不管是回测还是实盘交易,都需要数据的支撑。数据中心的建设相对业务比较简单,但比较繁琐,主要是数据库的构建和数据的保存和清洗。该过程涉及的业务较少,主要的精力在数据的清洗上。如何提供有效的数据,减轻后续业务流上对数据处理和判断的压力是该系统主要任务。
对于基础行情数据的某些属性如除权公式,不同数据提供商的计算方式有所差异,这方面需要使用统一的数据源。然而鉴于所用数据提供商的限制以及分析的需要,必然从多个数据源采集不同的数据来保证证券信息的完整性。而对于大多数类型的数据,可以将收集过程分为两个阶段,即首次采集与增量采集。采集时应该使用简单可靠的策略,使得数据源发生变化时能够方便调整策略,数据更新的过程可靠健壮性强。目前而言,由于数据的来源既可以来自比较权威的数据服务商,比如 Wind,Choice,Tushare 等,券商也有自己的行情系统,但专业性没有专业的数据服务商好。最近今年,随着行为金融学的关注度上升,也有利用爬虫获取行情与交易以外的数据,比如博客的人气指数,新闻的关键字等。量化投资与机器学习公众号曾经出过一篇《利用 Twitter 情绪去预测股市》的文章,有兴趣的朋友可以去学习。
其次,策略中心是量化交易平台的心脏。策略中心包含策略的编写、回测及评价。其中,回测的优劣对私募基金的尤其重要。回测的主要目的在于尽量还原真实交易条件而贴合实际的交易过程,来检测策略的表现。回测过程中需要考虑避免使用未来的数据,也就是不能使用 T 日之后产生的信号影响进而 T 日之前的数据来进行 T 日的交易。常见且必须的回测评价应该包括收益与最大回测的评价,交易明细的展现,交易成本和持仓记录的变化。当策略在选定的时间区间完成回测时,用户可以查看此策略的各项盈利与风险指标,用户能够看到整个策略运行期的收益率曲线图等相关图表。用户可以导出一个策略的回测报告和具体交易日志,回测报告包括各项指标及回测结果分析图。更高级的回测评价可以增加归因分析,收益分析类的功能。对于基金的绩效进行归因分析的目的是为了获取影响私募基金收益的主要因素,如资产的配置方式,股票选择过程中的行业偏好等等。将当前的目标基金与选定的市场基准进行绩效的分析,从不同的方面对两者收益的差异进行 “切割”,不同的 “切面” 则反映了不同的关注点,如上述的资产的配置方式,股票选择过程中的偏好。
最后,交易中心是量化交易平台的最终目标。交易中心可分为模拟交易和实盘交易。在策略中心经过回测验证的策略可以先进行模拟交易。在模拟交易中心经历实时数据的验证,以确定量化交易策略模型的泛化能力。模拟中心主要通过第三方服务商的接口,接入第三方的模拟柜台实现。当量化交易策略模型的泛化能力较高时,可以转为实盘交易。实盘交易主要通过与券商的 PB 交易系统的接口实现。在私募发展初期,对于低频策略,也可以考虑手动进行模拟盘和实盘交易。
3. 非功能性设计#
非功能设计主要包括两个方面:一是响应速度。二是易用性。
响应速度主要是指在回测过程中,尤其是回测时间区间较长的时候,系统应保证一定的回测响应速度。随着交易模型的日趋复杂化和回测时间区间的加长,用户应能尽快地得到回测结果用于研究,判断及决策。最近几年,机器学习的导入虽然大大地方便了模型的构建过程,但是机器学习所需的调参过程对系统的响应速度也提出了更高的要求。
易用性主要是指用户能否快速地上手。目前国内互联网量化平台,比如聚宽,优矿等都提供了面向初学者的教育板块,既包含量化投资的金融知识,也包括了数学,统计,编程等必备技能,以此来帮助初学者尽快使用量化交易平台。作为面向私募的量化交易平台,可以不必像互联网量化平台一样考虑诸多不同用户,但至少在页面流转,平台术语等方面要符合私募的业务习惯。除此以外,私募量化投资平台应建立属于自己的函数库。
4. 前台技术#
用户交互需要提供一个方便的界面接口,而 B/S 模式是目前主流的用户交互方式,量化投资平台采用 B/S 架构为用户提供交互功能,WEB 服务器通过 TOMCAT 进行布属,使用 SSH 框架实现。前台与后台的数据交互主要使用 REST 和 WebSocket 技术。REST 架构是 RoyThomas Fielding 提出的一种软件架构风格。REST 架构以资源为中心,资源是由 URI 标识的唯一实体,客户端通过在 PUT、POST 请求里附加一个表示来对资源状态进行修改,而服务器通过响应客户端 GET 请求时附上的表示来推进应用状态。对于非实时的数据请求,比如历史价格的查询,财务数据的查询等,可以通过 REST 架构来实现。
与服务器端的中层引擎进行交互的方法可使用 WebSocket 技术。传统的要求实时性的 Web 应用通常采用轮询机制来实现:客户端保持固定的频率,每隔一段时间就向服务器发送一次请求,以此来保持客户端和服务器端的数据同步。轮询有实现简单的优点,在网页中使用 JavaScript 定义一个定时函数就可以;但同时这种方式也有问题,就是当客户端频繁地发送请求时服务器端的数据可能并没有更新,此时的所有请求都是做了无用功,为服务器带来访问压力的同时也浪费了带宽资源。WebSocket 就是为了解决这一问题而提出的一种浏览器与服务器间进行全双工通讯的网络技术,它可以实现客户端和服务器端的长连接和双向实时通信。对于实时数据请求,比如实时股价,可以通过 WebSocket 架构来实现。
5. 后台技术#
量化投资平台的实现中,后台的数据处理模块 (ETL 模块,逻辑运算模块,回测模块等),因模块的相对独立性,且主要以数据处理与运算为主,所以分别做为独立模块独立开发,可使用 JAVA 语言或者 C++ 语言。最近几年,随着 Python 语言的普及,也可以考虑使用 Python 技术。
对于后台中最为核心的回测模块,目前用Zipline来搭建策略中心比较常见,此外由国人开发的vn.py、rqalpha在 Github 上也饱受好评。
回测平台的建设既可以考虑独立定制,也可以考虑用第三方平台,目前国内比较知名的量化平台有聚宽、优矿、米筐等。对于刚刚起步的私募基金,可优先考虑用第三方平台。对于相对小一些的公司或者个人投资者来说,借助一些外部的平台,也是很有必要的。一些回测平台也跟券商进行了合作,后续如果能把信号生成与券商柜台自动交易连接起来,也是好事(深南,2019)。
6. 可视化技术#
在 B/S 架构下的可视化方面,可选择 Echarts 或 Highcharts 等图形库。以 Highcharts 为例,Highcharts 是用纯 JavaScript 编写的图表库,能快捷的在 web 网站或是 web 应用程序添加有交互性的图表,并且无偿提供给个人网站、学习和非商业用途使用。HighCharts 支持的图表类型有区域图、曲线图、饼状图、柱状图、综合图表和散状点图。HighCharts 界面美观,因使用 JavaScript 编写,所以运行起来,不需要像 Flash 和 Java 一样需要插件,而且运行速度快。另外 Highcharts 还有很好的兼容性,能够完美支持当前大多数浏览器。
参考文献:
[1] 孔令潇。量化选股回测平台的设计与实现 [D]
[2] 曹义。多因子量化投资管理系统设计与实现 [D]
[3] 刘宁。基于 Web 的量化交易平台的设计与实现 [D]
[4] 沈士忠。量化策略研究平台的设计与实现 [D]
[5] 温从华,王佳林,林岳龙,等。基于大数据技术的量化交易策略及金融监管 [J]
[6] 深南。一文读懂量化系统接入及相关平台 [J]