


01
DolphinDB vs Backtrader
功能对比
DolphinDB 策略回测引擎不仅支持中低频策略回测,还支持逐笔高精度回测,也支持保证金制度,支持A股市场的分红除权以及两融融券等功能的策略回测。此外,DolphinDB 支持多种指标计算,包括 ta、mytt、alpha101 和国泰君安191 指标库,及其他复杂的 m 系列、tm 系列和 cum 系列等自定义指标,使其在回测功能上更为全面。
性能对比
策略介绍
核心逻辑为:利用分钟频数据,计算两个指标变化(MACD、RSI),并设置指标的阈值,一旦越过阈值,触发买入和卖出操作。下面为具体的策略逻辑 。
买入开仓:当 MACD 由负转正时(前一 MACD 为负号,当前 MACD 为正),给出第一个买入信号;如果 RSI 涨破 30 脱离超卖区域,认为市场上涨,给出第二个买入信号。当同时接收到两个买入信号时,以当前收盘价提交委托订单买入。
卖出开仓:当 MACD 由正转负时(前一 MACD 为正号,当前 MACD 为负),给出第一个卖出信号;如果 RSI 跌破 70 脱离超买区域,认为市场开始下跌,给出第二个卖出信号。当同时接收到两个卖出信号时,获取持仓数量,确保有足够持仓可供卖出,然后提交订单,以当前收盘价提交委托订单卖出。
性能对比测试
我们以 2021.01.04 至 2021.12.31 一年内的 3 支股票的 175689 条数据为回测样本进行测试,得到如下结果:

具体测试脚本请见阅读原文
可以看出,DolphinDB 在回测中具有显著的速度优势,有四个主要原因:
Backtrader 在大多数情况下是完全基于 Python 的,相比之下, DolphinDB 的回测框架完全基于 C++ 开发。
DolphinDB 在数据库内实现,有效地降低了数据持续传入所产生的时间成本。
DolphinDB 回测插件引入了响应式状态引擎等增量的指标计算引擎。
DolphinDB 引入了 JIT,降低了解释代码的时间开销。
02
DolphinDB vs MetaTrader4
功能对比
MetaTrader4 是一款外汇交易平台,提供实时货币对报价、图表分析、自动化交易支持及策略回测。MetaTrader4 使用 MQL4 作为回测编程语言,该语言基于类 C 语言,相比 Python 等解释型语言执行速度更快。MetaTrader4 支持 tick 级别的策略回测,但订单不支持高精度的模拟撮合。其指标计算基于 1 分钟、5 分钟、15 分钟、30 分钟、1 小时、4 小时和日等七种固定周期,内置了 20 种常见指标(如移动平均线 MA、相对强弱指数 RSI、布林带和 MACD 等),并支持自定义指标的实现。然而,MQL4 开发自定义指标对策略研究员的编码能力要求较高。
DolphinDB 策略回测引擎不仅支持逐笔高精度回测,还支持高精度的订单撮合,订单成交结果充分考虑市场流动性等因素。DolphinDB 支持全面的指标计算,内置大量 m 系列、tm 系列和 cum 系列函数,使复杂指标的实现更为便捷。
性能对比
我们基于 tick行情,以布林带突破和 RSI 作为开仓信号的外汇 CTA 趋势策略实现进行性能比对。
策略介绍
本策略为外汇交易的布林带突破与 RSI 交易信号策略。该策略以每小时进行指标计算,实时进行风险监控进行止盈止损,下面为具体的策略逻辑:
做多开仓:当前 RSI 大于 70 且布林带正在上移并打破上轨
做空开仓:当前 RSI 小于 30 且布林带正在下移并打破下轨
如果存在多头或空头委托订单,需根据 Tick 行情判断是否撤单、止盈止损。
性能对比测试
以外汇 EUR 对 USD 2029.01.02-2023.12.31 共两年的 1.43 亿行数据和1872 笔委托成交订单为数据集,以下是 MetaTrader 4 和 DolphinDB Backtest 的回测耗时:

具体测试脚本请见阅读原文
从运行结果中可以看出,MT4 基于外汇的分钟频回测比 DolphinDB 更快,这是因为 MT4 采用类 C 的编译型语言,并且在模拟成交时启用了更为简单的见价成交模式。DolphinDB 在启用 JIT 后,尽管使用了更为耗时的高精度模拟撮合引擎,性能已经逼近 MT4。
03
DolphinDB vs VNPY
功能对比
VNPY 是一个量化交易框架,提供了 CTA 策略的回测功能。该回测功能仅支持单标的的 CTA 策略回测,不支持期货等衍生品的实时保证金制度。VNPY 内置共约 40 个指标,包括简单移动平均线 SMA 和指数移动平均线 EMA 等,以及 MACD、 Stochastic 和 RSI 等指标。指标计算支持 1 分钟、1 小时和日周级别的策略实现,但仅限于简单的单标的 CTA 策略回测。
DolphinDB 策略回测引擎是一个支持多标的策略回测的通用策略回测框架,支持中低频策略回测,支持逐笔高精度的策略回测。它支持保证金制度,并支持 A 股市场的分红除权以及两融融券等功能的策略回测。DolphinDB 支持更多指标的计算,包括 ta、mytt、alpha101 和国泰君安191,以及其它自定义的复杂指标,涵盖 DolphinDB 中实现的 m 系列、tm 系列和 cum 系列函数。
性能对比
我们沿用分钟频的期货 CTA 策略作为性能测试的案例,以查看二者在指标计算上的性能差异。
策略介绍
基于 ATR (平均真实范围)和 RSI(相对强弱指数)结合的技术分析指标实现期货 CTA 策略。具体的策略逻辑如下:
买入开仓:RSI 值大于 70 且 ATR 大于其 10 分钟均值
卖出开仓:RSI 值小于 30 且 ATR 大于其 10 分钟均值
止损逻辑:
卖平:持有多仓时,K 线达到最高点后,回落 0.004 时
买平:持有空仓时,K 线达到最低点后,反弹 0.004 时
性能对比测试
具体测试脚本请见阅读原文
04
DolphinDB vs 功夫量化
功能对比
DolphinDB 策略回测引擎支持沪深 Level-2 行情的逐笔高精度策略回测,支持股票、期货、外汇和银行间债券等多种金融市场的策略回测。回测引擎完全使用 C++ 开发,同时编写回测的脚本语言支持使用 JIT 技术来提升策略执行效率。
性能对比
策略介绍
本策略是基于市场深度和成交量变化作为开仓信号的股票交易策略。利用实时行情数据,分析买卖双方的成交量的比值关系,并设置对应的阈值,一旦突破该阈值,触发买入和卖出操作。在行情快照数据中,同时计算买方和卖方的成交量,以及相应的持仓情况。下面为具体的策略逻辑:
买入开仓:当买方的成交量高于卖方成交量的两倍且卖方成交量大于零时,给出买入信号;获取当前持仓数量,如果持仓数量不超出最大值,并以当前的最佳卖价提交买单。
卖出开仓:当卖方的成交量高于买方成交量的两倍且买方成交量大于零时,给出卖出信号;获取当前持仓数量,确保有足够的仓位可供卖出,然后以当前最佳买价提交卖出委托订单。
使用八支股票一个月的快照共 85 万条行情作为测试数据,通过功夫 Windows 客户端软件云提交到服务器测试功夫量化的运行效率(纯 Python 接口),并对比 DolphinDB 的性能,得到以下结果:

具体测试脚本请见阅读原文
05
总结
一图总结 👇👇

相比 DolphinDB 回测平台,Backtrader 对于超高频交易的支持较弱;对于订单延迟、复杂的模拟撮合等功能,用户需要在策略中手动实现。此外,Backtrader 缺乏内置的风险管理功能(如实时保证金计算)。相比之下, DolphinDB 支持更全面,可以通过各种接口获得相应的参数和功能。
对比 MT4,DolphinDB 功能性更全,对并行化回测支持良好。在资产规模较大、资产品种更灵活、以及回测表现对市场流动性更敏感的中高频回测场景中,DolphinDB 有明显的易用性优势。
DolphinDB 的风控系统相比 VNPY 有显著的优势:对于期货交易,内嵌的风险控制系统非常重要,如果需要用户从零开发,将付出大量的时间成本,而在使用 DolphinDB 回测平台时,仅需输入一些形式参数即可;VNPY 仅支持单支标的的回测,DolphinDB 支持多标的同时回测。另外,DolphinDB 支持逐笔高频回测,而 VNPY 对高频回测的支持有限。
DolphinDB 相比于功夫量化支持沪深 A 股更高精度的逐笔回测, 在使用脚本编写策略时,支持使用 JIT 技术来提升策略执行效率。


想了解更多关于 DolphinDB 回测框架的信息?锁定明晚七点半直播间!直播包含对模拟撮合和回测框架的详细介绍、与市面产品的性能测试对比以及期货分钟频 CTA、股票高频、科创板做市实战案例分享等干货硬核内容。
直播更包含因子开发管理平台的详细介绍,以及因子构建-计算-评价、策略构建-绩效归因、因子库运维管理等多个可视化 Demo。
👇扫描海报二维码报名👇





