为什么选择 DoriBT

把 A 股/ETF 历史交易规则、接近向量化的回测速度和完整交易账本,装进一个轻量 Python 包。

接入自己的行情,用普通函数写策略,即可研究 A 股择时、ETF 轮动和分钟做 T;交易细节由账户处理,回测结果可以逐笔追查。

A 股与 ETF 规则开箱即用

用 china_rules 选择证券分类和回测日期,即可获得对应的数量规则、T+0/T+1、历史印花税和过户费。股票、股票 ETF、债券与黄金 ETF 按各自制度推进,可卖批次由账户跟踪。

账户同时处理涨跌停成交阻断、最低佣金、滑点、部分成交和分红送转。规则按历史日期生效,RuleOverride 可为指定证券和时期建立研究情景。你的策略只需表达买卖或目标仓位。

运行分钟做 T,即可看到同一信号在 T+0、T+1 和昨日底仓下的不同成交;市场规则列出可直接使用的分类。

以接近向量化的速度反复研究

预计算目标把信号计算与账户执行分开,Numba 将目标推进和撮合放进完整编译循环。在 2520 日 × 100 标的组合中,热回放中位数为 0.147 秒;17 个与 vectorbt 的日线/分钟对照场景中,DoriBT Numba 有 10 个更快。

0.6.2 的真实历史面板测试中,三组各 10 次回放累计由 63.82 秒降到 40.57 秒。完整现金、持仓、订单、成交、意图与税务记录随运行一起返回,适合反复比较参数、费用和交易假设。性能页给出同类框架数据与完整场景。

轻量接入自己的研究脚本

基础包只依赖 NumPy,安装后即可运行。接入 CSV/DataFrame,写一个接收 Context 的函数:用 history 读取历史,用 target_weights 配置组合,用 record 保存自己的指标。已有信号数组可直接使用 WeightTargets 或 PositionTargets。

日线和 1/5 分钟沿用相同的接口。多个证券共享现金,换仓先卖后买;账户处理资金预留、可卖数量和未完成目标。ETF 轮动展示从一个策略函数到组合回测的完整流程。

从收益曲线追到每笔交易

每根 bar 的账户快照与逐笔记录一起保留,目标、订单、成交、分红和税务通过 ID 关联。你可以检查换仓费用、找到未成交原因、比较策略与基准,再把决策记录和自定义指标放进同一份报告。

CSV、JSON 和图表可直接接入 Python、电子表格和现有分析工具。数据到报告带你完成输入、回测、分析与导出。

开始一次研究

安装 doribt[numba,plot] 即可同时使用加速与图表。支持 Python 3.13—3.15、Windows 和 Linux。

安装 DoriBT → 第一次回测 → 接入行情