策略与回测进阶

VectorBT

利用数组广播和高性能内核,在多个标的与参数组合上进行批量交易研究。

★ 9,451polakowo/vectorbt核验 2026-10-20
PythonNumPyNumba / Rust

为什么值得学

适合学习向量化回测、参数维度组织,以及如何把实验规模控制在可验证范围内。

需要的基础

  • NumPy 广播
  • pandas 多级索引
  • 回测基础

涉及哪些内容

向量化参数扫描信号处理组合模拟

数据与控制流程

  1. 1价格矩阵
  2. 2指标参数广播
  3. 3信号矩阵
  4. 4组合模拟内核
  5. 5跨参数绩效比较

此流程为教学归纳,便于建立整体认识;完整条件分支与运行细节请对照下方源码。

架构拆解 · 4 个核心模块

每个入口均已核对,点击可阅读源码
MODULE 01

指标工厂

IndicatorFactory 统一输入、参数与输出,把指标函数扩展为批量计算接口。

输入
价格数组与参数网格
输出
带参数维度的指标结果
源码入口 ↗vectorbt/indicators/factory.py
MODULE 02

信号访问器

SignalsAccessor 对布尔信号做生成、筛选和统计等操作。

输入
入场与出场信号矩阵
输出
整理后的信号及统计
源码入口 ↗vectorbt/signals/accessors.py
MODULE 03

组合接口

Portfolio 通过信号、订单等构造方法组织模拟,并提供交易与绩效分析。

输入
价格、信号、订单与成本
输出
组合、交易和分析结果
源码入口 ↗vectorbt/portfolio/base.py
MODULE 04

模拟内核

Numba 内核处理订单执行、现金更新和日志记录等性能敏感步骤。

输入
数组、订单与账户状态
输出
成交记录和新账户状态
源码入口 ↗vectorbt/portfolio/nb.py

建议阅读顺序

  1. 先用 Portfolio.from_signals 跑单组参数
  2. 再读 IndicatorFactory 理解输出列层级
  3. 追踪 Portfolio 调用的订单内核
  4. 最后扩大参数网格并检查内存与成本
本站设计的学习练习

动手做一次

比较小规模均线参数网格在训练期和保留测试期的表现。

完成后,检查这些证据

  • 分别标明标的维度和参数维度
  • 选参只使用训练期
  • 报告测试期收益、回撤以及手续费敏感性

适用边界与版本说明

这里分析开源社区版,不能把 PRO 的所有功能算在其中;新源码含可选 Rust 路径,本文选择可读的 Python / Numba 主线。

Star 快照:9,451 · 核验日期:2026-10-20 · GitHub 归档标记:未归档

核验默认分支:master · 源码固定提交:dd8eb3a3fe9e ↗

来源:GitHub 仓库与 Star 页面、README及上述源文件。分层、阅读顺序与练习为本站归纳;未逐一安装运行这些框架,源码提交不等于推荐安装版本。

同方向继续比较