vectorbt / polakowo · Python

vectorbt 教程:Python 向量化回测框架的安装部署与策略开发

vectorbt 是一套用 Python 编写的向量化回测与策略研究库,基于 pandas、NumPy 与 Numba 构建,用"整列数组一次运算"代替"逐事件循环",可在他人跑完一个交易想法的时间里运行数千个想法。它把数据接入、指标计算、信号生成、组合回测、参数扫描与 Plotly 可视化组织在同一套访问器(accessor)体系里,适合因子研究、参数调优与策略验证的量化研究者与开发者。

用途:向量化回测与策略研究语言:Python(pandas/NumPy/Numba)基于 vectorbt 官方证据

项目来源

项目页面显示约 9.0k Star / 1.2k Fork;该数字会随社区活动变化,采集日期为 2026-09-07。

polakowo/vectorbt GitHub 仓库页面截图:文件列表与 About 信息 查看固定版本源码
开源库Apache 2.0 + Commons Clause,GitHub 约 9.0k stars
向量化回测pandas / NumPy / Numba 加速
Portfolio 三入口from_holding / from_signals / from_orders
官方证据仓库 README + 官方文档(2026-09 核验)
What it solves

vectorbt 能解决什么问题?

它把「数据接入 → 指标计算 → 信号生成 → 组合回测 → 参数扫描」整理成一套向量化 Python 体系,让策略研究与参数调优从"一条一条跑"变成"整块并行算"。

向量化回测

用 NumPy 二维数组一次运算多标的、多参数,避免 Python 逐事件循环的对象开销,回测速度显著提升。

参数网格扫描

通过广播机制一次回测上万组参数组合,配合热力图定位参数稳定区间,而非单点最高。

指标与组合生态

内置移动均线、布林带等指标,可集成 TA-Lib / Pandas TA,并用 QuantStats 输出绩效统计。

How it works

vectorbt 六步理解:从数据到分析

首页只保留理解所需的六步,详细流程见安装页与快速上手页。

1. 安装

pip install -U vectorbt,可选 rust / full 集成。

2. 接数据

用 YFData 或国内源(akshare / tushare)取行情 DataFrame。

3. 算指标

用 vbt.MA.run 等 accessor 计算指标。

4. 出信号

用 crossed_above / crossed_below 生成买卖信号。

5. 建组合

用 Portfolio.from_signals 等三入口回测。

6. 看结果

stats() 输出绩效,Plotly 交互式可视化。

Components

五大能力速览

能力说明入口
数据接入YFData 下载 + akshare/tushare 国内源 + 合成数据数据接入
指标计算vbt.Indicator + MA/RSI/MACD 等,可集成 TA-Lib指标信号
信号生成crossed_above/below、排名、映射与分布分析指标信号
组合回测Portfolio.from_holding/signals/orders 三入口Portfolio
参数优化run_combs 网格搜索 + heatmap + 广播扫描参数优化
Compare

向量化回测 vs 事件驱动回测

vectorbt 的向量化思路与 backtrader / zipline 等事件驱动框架的关键差异,决定它适合什么场景。

维度vectorbt(向量化)事件驱动框架
执行方式整列 NumPy 数组一次运算 + Numba JIT逐 bar 循环模拟事件
参数扫描原生广播,一次跑上万组参数需外层循环逐个跑
适合场景因子研究、参数调优、批量策略验证强路径依赖、精细撮合与实盘对接
前置门槛pandas/NumPy 数据科学基础事件循环与撮合模型理解
EasyClaw 路线

不想自建环境?EasyClaw 一句话示例

若你只是想快速验证想法、不必搭建 Python 回测环境,EasyClaw 量化 Skill 可一句话发起量化指标与绩效分析任务(以下为实际截图)。

EasyClaw 中一句话用 pandas 计算夏普比率与最大回撤的截图
一句话算量化指标:用 pandas 对一段示例收盘价计算日收益率、夏普比率和最大回撤(所用 Skill:quant-analyst;前置:已安装 EasyClaw;vectorbt 与 EasyClaw 无已证实集成)。
EasyClaw 中用 AKShare 计算贵州茅台绩效的截图
一句话算绩效:用 AKShare 拉取贵州茅台近3年日线行情,计算年化收益率和最大回撤(所用 Skill:akshare-finance;前置:已安装 EasyClaw;vectorbt 与 EasyClaw 无已证实集成)。
FAQ

常见问题

vectorbt 是什么?

vectorbt(polakowo)是用 Python 编写的向量化回测与策略研究库,基于 pandas、NumPy、Numba 构建,用向量化数组运算替代事件驱动循环,适合快速回测与参数扫描。

vectorbt 需要什么基础?

需要 Python 与 pandas/NumPy 基础。它以 accessor 形式挂在 DataFrame 上(如 df.vbt),理解向量化广播后上手很快;复杂策略仍需自己组织信号与组合逻辑。

vectorbt 和 backtrader 怎么选?

做因子研究、批量参数扫描、多标的多参数快速验证,vectorbt 的向量化广播更高效;做强路径依赖策略、精细撮合与实盘对接,事件驱动框架更贴合。两者适用场景不同,可互补。

vectorbt 在 EasyClaw 中能用吗?

无已证实集成。vectorbt 与 EasyClaw 没有官方集成证据;EasyClaw 内置的是量化研究类 Skill(回测、数据、技术分析、选股),两者是独立路线,详见对比页。

vectorbt 的 License 有什么限制?

采用 Apache 2.0 with Commons Clause(Fair Code):源码公开可免费使用,但不得销售主要基于此软件的产品或服务;可选依赖可能受更严格许可约束。

先明确你的研究目标

要自建 Python 向量化回测管道走 vectorbt 自托管;想免部署快速做回测/选股/技术分析研究可看 EasyClaw 量化 Skill 路线。先看对比页再决定,避免装错工具。