在金融领域,投研和交易一向是用户关注的两大核心场景。
过去一年中,DolphinDB 与用户需求深度结合,立足两大核心场景,研发了中高频策略回测插件、因子开发管理平台、PySwordfish、实时曲线拟合引擎与估值定价引擎、交易型内存数据库、复杂事件处理引擎 Octopus 这几大新功能,帮助用户在投研与交易场景中大幅提升数据处理效率。
本文通过对 DolphinDB 解决方案总监唐新海先生在 DolphinDB 2024 年度峰会上围绕新功能的深度解读进行总结与回顾,带大家快速了解这些新功能特性以及它们可以为投研交易带来哪些新的可能。
注:新功能预计将于下一版本正式发布,若想预先了解细节,可以私信 DolphinDB 官方账号。
投研场景
本次新功能预告的投研相关场景提效,主要依托于中高频回测、因子开发管理平台、以及嵌入式分析型数据库 PySwordfish三大功能展开,基本涵盖了投研中策略开发的全链条场景。
中高频策略回测插件
目前,市面上已经有一些成熟的 python 回测框架。但随着行业的发展,用户对回测框架提出了更高的要求,大致可以总结为四点:速度更快、精度更高、支持品类更全面、触发规则更灵活。为了给用户带来更好的回测体验,DolphinDB 推出了功能更完善、性能更强大的中高频策略回测插件。
在回测中,提升性能无疑是用户一致的目标。在以期货 RU 主力连续合约为标的物的测试场景下,我们将时间跨度设置为 3 个月,提取了近 200 万条 tick 数据进行性能测试。测试通过 VNPY、DolphinDB、DolphinDB-JIT 三种形式的对比,得到了以下结果:
测试中,通过 jit 优化后的 DolphinDB 回测框架将原生的 python 回测性能提升了近70倍。在其他场景测试中,这一性能优势还会随着数据量扩大而增加。总体而言,在大多数常见场景中,DolphinDB 回测框架较 python 可以提速 10-100 倍。
在精度方面,DolphinDB 开发了模拟撮合引擎,其作为中高频策略回测插件的一部分,力求实现与交易所实际订单撮合情况保持一致的高精度撮合。例如,在沪深市场的模拟撮合中,该引擎实现了基于逐笔数据还原订单簿的功能,注重深交所市价单、上交所逐笔行情中的特殊处理细节;在银行间债券市场,该引擎模拟了两笔快照行情之间的成交行情;考虑到成本冲击、系统时延,该引擎还提供了灵活的参数配置,尽可能模拟真实的交易过程。
在支持品类方面,DolphinDB 模拟撮合引擎目前已经支持沪深股票、基金、可转债,银行间债券,各大期货交易所的期权和期货,以及外汇和数字货币。
在触发规则的制定方面,DolphinDB 中高频回测插件不仅支持常见的事件触发,还支持时间触发,可以在特定时间点触发策略回测。用户可以轻松完成开盘前的初始化预热准备,以及开盘前定时触发集合竞价相关因子计算等操作。
因子开发管理平台
因子挖掘与特征工程构成了投研场景下的核心工作流程。
从数据处理到评价、发布因子,工程师通常面临着一系列繁琐的任务,例如下载数据厂商采购的行情数据、进行数据清洗和入库操作,以及执行各类因子的计算任务。这些工作往往需要耗费大量时间和人力。通过 DolphinDB 因子开发管理平台,用户可以实现上述复杂流程的自动化流水线处理,提升整体开发效率。
除此之外,它还支持因子开发的协作模式,既简化了“审批——查看评价报告——进行同质性检验”的流程,又确保了数据的安全性和隐私性。在策略构建方面,用户可以通过平台上的 B-S 架构,在浏览器中实时编辑策略,快速验证投资想法。而且,平台还内置了参数寻优等功能,帮助用户寻找更优的策略参数组合,提高策略的收益表现。在策略结果分析上,平台内置了 Brinson 和 Campisi 绩效归因模型,用户可以通过这些工具对策略表现进行深入分析,进一步优化投资决策。
因子开发管理平台已于去年发布,在本次新功能预告中,即将推出的中高频回测插件也将集成于该平台内,为用户提供了一套从数据处理、因子构建、因子评价到策略回测的完整投研解决方案。
PySwordfish
Python 以其便捷易学与生态丰富的特点,受到数据分析研究者的广泛青睐。但其多线程能力不足与性能不佳的问题,也一直困扰着广大用户。
DolphinDB 即将推出的嵌入式分析型数据库 PySwordfish 很好地解决了上述问题,将 Python 与 DolphinDB 进行了深度融合,使工程师在不花费额外学习成本的前提下,享受 DolphinDB 的高性能数据处理和丰富功能。
PySwordfish 通过将 DolphinDB 中 1000+ 高性能金融计算函数与 Python 结合,再对接口进行易用化处理,使得用户可以像使用 pandas、polars 等 Python 第三方库一样,直接引用 PySwordfish。

通过以上测试可以看出,PySwordfish 不仅使用便捷,而且较 Python 有着显著的性能优势。在大规模数据分析场景下,PySwordfish 的优势还会更加明显。
交易场景
与投研场景不同,交易场景侧重于实时性和高并发处理,要求系统能够在瞬息万变的市场中快速响应。为此,DolphinDB 推出了适用于 FICC 程序化交易的实时曲线拟合引擎和估值定价引擎,以及交易型内存数据库和复杂事件处理引擎 Octopus。
实时曲线拟合引擎与估值定价引擎
针对 FICC 业务诉求,DolphinDB 推出了两个业务中间件——实时曲线拟合引擎和估值定价引擎,为 FICC 业务提供更加高效和精准的计算支持。实时曲线拟合引擎专注于利率和波动率曲线的拟合。这一引擎能够使用多种曲线拟合和插值算法,根据不同的标的资产,结合资产类别、清算速度、产品类型等多个维度的信息,实时计算出最优曲线。在动态市场环境中,这一功能对于快速构建精确的曲线模型具有重要意义。

估值定价引擎通过实时市场行情数据和拟合出的曲线,进行高效的估值和风险指标计算,例如久期、凸性等。同时,它还提供多种可选的参数和优化选项,帮助用户实时捕捉市场定价偏差,寻找交易机会。

这两个引擎将为 FICC 业务用户提供强大的算力支持,大幅提升交易决策的准确性和效率。
交易型内存数据库
DolphinDB 在积极与客户的现有交易系统融合时发现,权益和固收类资产的程序化交易对内存数据库有较强的需求。为了有效存储交易系统返回的成交回报数据,存储引擎必须具备高并发、低时延和强事务处理能力。
因此,IMOLTP 内存存储引擎应运而生。这一引擎能够将实时交易产生的相关数据存储在内存中,省去了磁盘 I/O 的开销,支持纳秒级别的数据读写响应。同时,配套研发的数据同步工具 SyncPulse 能够便捷地将实时写入 IMOLTP 的数据,低时延同步到 PKEY 主键引擎和流计算引擎中。其中,PKEY 主键引擎是 DolphinDB 为满足用户在进行复杂分析计算时,将数据快速迁移需求而研发的全新存储引擎。
对于进入流计算引擎的数据,工程师可以通过流式增量计算,完成实时风控指标和交易监控指标的计算,响应时间可以达到微秒级别。应用案例主要包括旁路风控系统和交易监控系统。
对于进入 PKEY 主键引擎的数据,工程师可以充分利用 PKEY 的分布式架构优势,实现对大规模数据集的高效实时复杂分析。应用案例主要包括实时指标平台和风险绩效系统。
IMOLTP 交易型内存数据库和 SyncPulse 有效打通了风控、监控及投后分析系统之间的数据连接,切实解决了用户多系统间数据同步的难题。
复杂事件处理引擎 Octopus
为了更好地满足用户在交易策略、交易风控等场景下复杂的数据处理需求,DolphinDB 在流数据框架中增加了复杂事件处理引擎——Octopus。该引擎可以在大规模的、复杂的实时事件流中快速找出匹配规则的事件,并进行实时分析和决策。
以下是这一引擎的架构图:
它专注于各类事件流的实时处理,包括基于行情事件的因子和指标加工、交易信号生成,以及基于委托和成交事件的交易逻辑处理等。用户还可以将数据回放引擎、模拟撮合引擎、仓位管理引擎等组件与 Octopus 进行组合,快速落地各类业务场景。以下是基于 Octopus 落地的一些实际场景:基于 Octopus 开发的外汇趋势策略回测系统,此处展示了模拟盘的实时策略执行情况:
基于 Octopus 开发的盘中交易实时监控系统,此处展示了一部分指标的监控界面:
基于 Octopus 开发的股票策略回测系统,此处展示了 1 个策略多套参数寻优的回测结果:
由此可见,通过和 DolphinDB 可视化插件的结合,用户可以轻松管理引擎信息、监控其运行状态,也可以将策略信号可视化展示,实时响应市场动态。
DolphinDB 将于下个版本上线以上功能,敬请期待!
此外,为了帮助用户更加系统全面地掌握 DolphinDB,《DolphinDB 从入门到精通之数据分析》现已出版,大家可以前往官网进行购买。也欢迎大家联系小助手加入 DolphinDB 技术交流群,共同学习、共同进步!