向量化回测
用 NumPy 二维数组一次运算多标的、多参数,避免 Python 逐事件循环的对象开销,回测速度显著提升。
vectorbt / polakowo · Python
vectorbt 是一套用 Python 编写的向量化回测与策略研究库,基于 pandas、NumPy 与 Numba 构建,用"整列数组一次运算"代替"逐事件循环",可在他人跑完一个交易想法的时间里运行数千个想法。它把数据接入、指标计算、信号生成、组合回测、参数扫描与 Plotly 可视化组织在同一套访问器(accessor)体系里,适合因子研究、参数调优与策略验证的量化研究者与开发者。
项目页面显示约 9.0k Star / 1.2k Fork;该数字会随社区活动变化,采集日期为 2026-09-07。
查看固定版本源码
它把「数据接入 → 指标计算 → 信号生成 → 组合回测 → 参数扫描」整理成一套向量化 Python 体系,让策略研究与参数调优从"一条一条跑"变成"整块并行算"。
用 NumPy 二维数组一次运算多标的、多参数,避免 Python 逐事件循环的对象开销,回测速度显著提升。
通过广播机制一次回测上万组参数组合,配合热力图定位参数稳定区间,而非单点最高。
内置移动均线、布林带等指标,可集成 TA-Lib / Pandas TA,并用 QuantStats 输出绩效统计。
首页只保留理解所需的六步,详细流程见安装页与快速上手页。
pip install -U vectorbt,可选 rust / full 集成。
用 YFData 或国内源(akshare / tushare)取行情 DataFrame。
用 vbt.MA.run 等 accessor 计算指标。
用 crossed_above / crossed_below 生成买卖信号。
用 Portfolio.from_signals 等三入口回测。
stats() 输出绩效,Plotly 交互式可视化。
vectorbt 的向量化思路与 backtrader / zipline 等事件驱动框架的关键差异,决定它适合什么场景。
| 维度 | vectorbt(向量化) | 事件驱动框架 |
|---|---|---|
| 执行方式 | 整列 NumPy 数组一次运算 + Numba JIT | 逐 bar 循环模拟事件 |
| 参数扫描 | 原生广播,一次跑上万组参数 | 需外层循环逐个跑 |
| 适合场景 | 因子研究、参数调优、批量策略验证 | 强路径依赖、精细撮合与实盘对接 |
| 前置门槛 | pandas/NumPy 数据科学基础 | 事件循环与撮合模型理解 |
若你只是想快速验证想法、不必搭建 Python 回测环境,EasyClaw 量化 Skill 可一句话发起量化指标与绩效分析任务(以下为实际截图)。
以上截图为 EasyClaw 实际使用效果;需已安装 EasyClaw;vectorbt 与 EasyClaw 无已证实集成;结果由 AI 生成,仅供研究,不构成投资建议。
vectorbt(polakowo)是用 Python 编写的向量化回测与策略研究库,基于 pandas、NumPy、Numba 构建,用向量化数组运算替代事件驱动循环,适合快速回测与参数扫描。
需要 Python 与 pandas/NumPy 基础。它以 accessor 形式挂在 DataFrame 上(如 df.vbt),理解向量化广播后上手很快;复杂策略仍需自己组织信号与组合逻辑。
做因子研究、批量参数扫描、多标的多参数快速验证,vectorbt 的向量化广播更高效;做强路径依赖策略、精细撮合与实盘对接,事件驱动框架更贴合。两者适用场景不同,可互补。
无已证实集成。vectorbt 与 EasyClaw 没有官方集成证据;EasyClaw 内置的是量化研究类 Skill(回测、数据、技术分析、选股),两者是独立路线,详见对比页。
采用 Apache 2.0 with Commons Clause(Fair Code):源码公开可免费使用,但不得销售主要基于此软件的产品或服务;可选依赖可能受更严格许可约束。