实时行情难处理睿凝资本选择解决流数据难题

核心提示为解决对冲基金业务中的流计算难题,应对每日海量数据的存储、计算和查询需求,睿凝资本经过对多家数据库选型调研,最终选择了 DolphinDB。本文将讲述睿凝资本使用 DolphinDB 的具体实践。最初了解到 DolphinDB 是知乎的一条

为了解决对冲基金业务中的流量计算问题,满足海量数据的日常存储、计算和查询需求,睿宁资本经过多次数据库选型考察,最终选择了DolphinDB。本文将描述毁资使用DolphinDB的具体做法。

一开始在知乎上了解到DolphinDB是一个评测贴。作为KDB+多年的老用户,我对这个国内时间序列数据库非常感兴趣,基准KDB+和评测结果都非常优秀。看完帖子后不久,前一家公司刚刚邀请了DolphinDB创始人周小华博士做了一次路演,让我对DolphinDB有了更深入的了解。告别前公司后,结合多年的量化投资经验和数学专业知识,与合伙人共同创办了北京瑞宁私募基金管理有限公司。

瑞宁的业务需求

瑞宁是一家专注于通过数学建模和程序化交易进行量化投资的对冲基金公司。主要从事对冲基金的多元化策略交易,研究开发投资策略,为客户提供具有差异化收益和风险特征的资产管理产品。

在研究策略的过程中,每天要面对大量的交易数据和报价数据,每天需要处理20GB左右的新数据和几十TB的历史数据。这是非常大的数据量,对系统的性能要求也非常高。考虑到性能和成本,我们尝试构建一个系统,希望满足以下要求:

查询:分区灵活方便,实现毫秒级响应。

写:系统吞吐量高,延迟低,实现毫秒级批量写。

计算:计算引擎强大,实现毫秒级实时计算。

成本:最大限度降低开发和运营成本。

为什么是DolphinDB?

我们根据业务需求,按照DB-Engines的排名,将InfluxDB、KDB+和DolphinDB列入了选择列表,从数据批量写入、查询和实时计算等方面进行了测试和比较。从实际结果来看,DolphinDB作为当时国内排名第一、全球排名第十二的时间序列数据库,其性能远远好于其他排名更高的数据库。

除了在批量编写、查询、实时计算等方面的出色表现,DolphinDB已经超越了传统数据库简单的存储和查询功能,内置了很多量化金融常用的数据分析功能,完全可以满足我们编程和建模的需求。

从学习成本来说,DolphinDB支持标准SQL的语法,脚本语言类似于Python。相比学习KDB+晦涩难懂的脚本语言,我们的技术人员尤其是新人可以更快的上手DolphinDB,大大节省了技术人员的培训成本和使用成本。

在流计算方面,DolphinDB有自己优秀的流数据引擎,非常有利于生产环境下策略的开发。

在技术服务方面,DolphinDB在国内有专业的技术支持团队,可以及时解答我们的疑问,并根据我们的需求开发新的功能。综合考虑后,我们选择了性能强劲的国产数据库DolphinDB。

我们对DolphinDB做了什么

我们借助DolphinDB内置的流数据计算引擎,实时采集市场数据,包括股票交易和委托数据,逐一采集快照数据,然后对数据进行清洗、统计、计算和存储。在使用DolphinDB计算我们的因子数据库指标的众多应用中,让我以k线衍生的资金流指标和价量指标为例,用下面的流程图来说明部署DolphinDB的流数据计算引擎的技术流程。

计算资本流动指数

订阅买卖方向流量数据表,使用时间序列聚合引擎计算不同时间窗口的自定义资金流指标。生成资金流指示器流数据表。

计算从k线导出的量价指数

订阅买卖方向流水数据表,使用时间序列聚合引擎分别计算不同时间窗口的k线,并与响应式状态引擎级联形成多引擎流水线,使用增量计算方法高效计算收益率派生的量价指标,生成量价指标流水数据表。

交易和回溯测试

一方面,通过Python API订阅将计算后输出的流量数据表中的数据推送到实盘交易系统;另一方面,上述所有流数据表都通过本地或远程订阅写入数据库表,便于后续通过历史数据回放进行策略验证和优化。根据半年来生产环境的运维情况,通过计算DolphinDB流数据引擎的因子,可以实现毫秒级响应,整体性能稳定,延迟低,吞吐量高。

总结

在这一年多的合作中,我对DolphinDB在性能和技术服务方面都非常满意。DolphinDB给瑞宁的业务带来了很高的价值。作为多年的KDB+老用户,我觉得DolphinDB的性能已经超越了KDB+,而且还在前进。另外,在接触的众多软件提供商中,并不是所有的企业都能真正听客户的,但DolphinDB做到了。我喜欢和DolphinDB互相倾听和反馈的过程。无论是新的需求,还是corner case上的小bug,DolphinDB都会第一时间响应,很快提供解决方案。

九万峰鹏正在全力以赴,希望未来DolphinDB能成为量化金融行业的标准!

 
友情链接
鄂ICP备19019357号-22