华夏基金对市面上多家数据库进行调研测试,从性能、语言学习成本和技术服务等多方面进行综合考量,最终选择高性能时序数据库 DolphinDB。本文将分享华夏基金使用 DolphinDB 的业务实践。
华夏基金 金融科技部高级副总裁 杨雪松
华夏基金 高级工程师 李乾鹏
目前我们主要研究日频或日频以下的中低频因子,需要日常维护、管理和计算公共因子或用户自定义的因子,同时进行因子的策略回测。实际生产数据已超过1TB。在使用 DolphinDB 前,我们的研究员需要自己编写大数据的回测系统,手动改换参数和进行压力测试。比如进行10年沪深300的日频调仓回测需要2个小时,研发效率低下、较难满足实际业务需求。
为了有效提升策略回测效率、改善研发环境,我们想要搭建一套全新的系统。在对比测试国内外多家数据库后,我们选择了高性能的时序数据库 DolphinDB。
使用 DolphinDB 研究策略和开发引擎
我们主要使用 DolphinDB 解决策略研究的相关问题。
首先使用 DataX 将异构原始数据导入 DolphinDB,再借助 DolphinDB 的分布式计算框架和丰富的金融函数库生成技术指标,在提升效率的同时大大缩短了开发周期。然后基于技术指标生成公共因子和用户自定义因子,同时根据股票数据进行策略回测。最后分析回测结果如收益分析、归因分析等。
目前我们已经使用 DolphinDB 研发出数百个公共因子,利用 module 功能将其形成一个因子库,供研究员和基金经理使用。
以下为策略研发流程图:
此外,我们借助 DolphinDB 研发了指标选股引擎、单因子分析引擎和策略回测引擎。其中,我们使用 DolphinDB 成功开发的基于事件和向量融合的策略回测引擎,性能非常优秀,在业务方面得到了极大的认可。
数据库选型
我们在选型时从多方面对比 InfluxDB、ClickHouse、KDB+、DorisDB 和 DolphinDB。
- InfluxDB 不支持量化金融的常用函数,在性能测试中相比 DolphinDB 差了一个数量级。
- KDB+ 语言晦涩,价格昂贵,缺乏国内的技术支持团队。
- ClickHouse 的性能不及 DolphinDB,函数的共通性较弱,并且作为开源软件对集群的支持性并不是很好。
- DorisDB 的性能未能完全满足我们的业务需求。
同时,我们对 DolphinDB 进行以下综合考量:
- DolphinDB 在海量存储、实时计算、查询等方面的性能表现极佳。
- DolphinDB 提供丰富的金融常用函数。
- 不管在 windows 还是 linux 系统中,轻量级的 DolphinDB 部署起来都很方便。
- DolphinDB 的语言是 SQL 和 Python 结合,学习成本低,我们的正式员工经过1-2周的学习就可以基本上手。
- DolphinDB 有丰富的文档资料和国内专业的技术支持团队,我们在使用时遇到问题,不仅可以查阅手册,也可以寻找技术团队支持,及时解决问题。
DolphinDB 带来的业务效果提升
使用 DolphinDB 加快了许多业务的周期,尤其是策略回测、指标计算和因子计算等方面的提升效果很明显。相比使用传统数据库,DolphinDB 的速度可以提高一个数量级。开头提到,我们之前进行10年沪深300的日频调仓回测需要花费2个小时,但是在使用 DolphinDB 后整个过程不超过1分钟,提升效率超过100倍。
与 DolphinDB 的未来合作计划
我们计划借助 DolphinDB 搭建一个量化相关的数据平台,把第三方数据源的数据都导入到 DolphinDB 中,这样业务员在使用时可以调用统一的对外暴露接口查询各个数据库的相关数据。同时我们在研究 level2 的高频因子。在预演中,每天的新增数据量接近40GB,加上历史数据总计几十 TB,这对数据库的性能提出更高的要求。希望和 DolphinDB 继续保持友好合作。