VectorBT
利用数组广播和高性能内核,在多个标的与参数组合上进行批量交易研究。
为什么值得学
适合学习向量化回测、参数维度组织,以及如何把实验规模控制在可验证范围内。
数据与控制流程
- 1价格矩阵
- 2指标参数广播
- 3信号矩阵
- 4组合模拟内核
- 5跨参数绩效比较
此流程为教学归纳,便于建立整体认识;完整条件分支与运行细节请对照下方源码。
架构拆解 · 4 个核心模块
每个入口均已核对,点击可阅读源码指标工厂
IndicatorFactory 统一输入、参数与输出,把指标函数扩展为批量计算接口。
- 输入
- 价格数组与参数网格
- 输出
- 带参数维度的指标结果
vectorbt/indicators/factory.py信号访问器
SignalsAccessor 对布尔信号做生成、筛选和统计等操作。
- 输入
- 入场与出场信号矩阵
- 输出
- 整理后的信号及统计
vectorbt/signals/accessors.py组合接口
Portfolio 通过信号、订单等构造方法组织模拟,并提供交易与绩效分析。
- 输入
- 价格、信号、订单与成本
- 输出
- 组合、交易和分析结果
vectorbt/portfolio/base.py模拟内核
Numba 内核处理订单执行、现金更新和日志记录等性能敏感步骤。
- 输入
- 数组、订单与账户状态
- 输出
- 成交记录和新账户状态
vectorbt/portfolio/nb.py建议阅读顺序
- 先用 Portfolio.from_signals 跑单组参数
- 再读 IndicatorFactory 理解输出列层级
- 追踪 Portfolio 调用的订单内核
- 最后扩大参数网格并检查内存与成本
动手做一次
比较小规模均线参数网格在训练期和保留测试期的表现。
完成后,检查这些证据
- 分别标明标的维度和参数维度
- 选参只使用训练期
- 报告测试期收益、回撤以及手续费敏感性
适用边界与版本说明
这里分析开源社区版,不能把 PRO 的所有功能算在其中;新源码含可选 Rust 路径,本文选择可读的 Python / Numba 主线。
Star 快照:9,451 · 核验日期:2026-10-20 · GitHub 归档标记:未归档
核验默认分支:master · 源码固定提交:dd8eb3a3fe9e ↗
来源:GitHub 仓库与 Star 页面、README及上述源文件。分层、阅读顺序与练习为本站归纳;未逐一安装运行这些框架,源码提交不等于推荐安装版本。