# 量化研究引擎，助您构建交易优势。

分析市场数据，大规模回测和优化交易策略，并跨交易品种、参数和时间验证结果。

[探索功能](/zh/features/) [成为会员](/zh/become-a-member/)

由 VectorBT 创始人 [Oleg Polakow](/zh/about-me/) 开发。

- 8 年

  持续开发

  VectorBT 自 2017 年起持续迭代
- 9.1k

  [开源项目 GitHub 星标](https://github.com/polakowo/vectorbt)

  VectorBT 开源仓库累计获得的星标
- 370k+

  [开源项目月下载量](https://pypistats.org/packages/vectorbt)

  VectorBT 开源版在 PyPI 上的下载量
- 65k+

  社区消息

  汇集于 15 个主题频道

## 为编程智能体提供坚实基础。 [#agents]

一个用一下午写出的回测程序，即使运行不报错，结果也可能有误。借助 VBT，编程智能体可以像使用 pandas 一样，基于经过多年社区实践打磨的组件开展工作。

英文演示

```console
~/research $ vbt agents install

  VectorBT PRO v2026.10.5  ·  Rust v2026.10.5  ·  Python 3.12.11

✓ Installed VBT 2026.10.5 skills into /Users/quant/research

.agents/skills, .claude/skills: vbt-analysis, vbt-backtesting, vbt-basics, vbt-callbacks, vbt-cross-validation,
vbt-custom-simulators, vbt-data, vbt-indicators, vbt-numba, vbt-optimization, vbt-plotting, vbt-portfolio-optimization,
vbt-rust-backend, vbt-rust-native, vbt-signals

~/research $ claude

> Is an SMA crossover on BTC worth trading? Validate it walk-forward with train-only parameter selection.

Skill(vbt-cross-validation)
  Train-only selection with @vbt.cv_split

vbt.get_concept("walk-forward analysis")
  10 sources ranked

vbt.get_source("vbt.cv_split")
  Signature and selection rules confirmed

Write(sma_walk_forward.py)
  @vbt.cv_split(
      splitter="from_rolling",
      splitter_kwargs=dict(length=360, split=270, offset=-90, offset_anchor_set=None,
                           backwards="sorted", set_labels=["train", "test"]),
      index_from="data", merge_func="concat", return_grid="all",
  )
  def sma_sharpe(data, range_, fast, slow):
      start = max(range_.start - slow - 1, 0)
      close = data.close.iloc[start:range_.stop]
      fast_ma = close.vbt.rolling_mean(fast)
      slow_ma = close.vbt.rolling_mean(slow)
      warmup = range_.start - start
      pf = vbt.PF.from_signals(
          data.iloc[range_],
          entries=fast_ma.vbt.crossed_above(slow_ma).vbt.signals.fshift().iloc[warmup:],
          exits=fast_ma.vbt.crossed_below(slow_ma).vbt.signals.fshift().iloc[warmup:],
          fees=0.001,
      )
      return pf.sharpe_ratio

  data = vbt.YFData.pull("BTC-USD", start="2020-01-01", end="2026-10-01")
  windows = np.arange(5, 105, 5)
  grid, best = sma_sharpe(
      data, vbt.Rep("range_"),
      vbt.Param(windows, condition="fast < slow"),
      vbt.Param(windows),
  )

vbt.run_code(sma_walk_forward.py)
  9,120 backtests across 24 rolling splits

                        train   test
  Mean Sharpe            1.85  -0.25
  Selection percentile      -   0.51
  Buy-and-hold Sharpe       -   0.91

Not worth trading. Sharpe falls from 1.85 in-sample to -0.25 out of sample, and the selected windows rank at the 51st
percentile of the grid on unseen data, no better than picking at random.
```

## 您的量化研究工具箱。 [#workflow]

在一套连贯的工作流中，获取并对齐数据、构建指标和信号、模拟投资组合、跨时间和参数进行验证，并分析结果。

1. ### [数据](/zh/features/data/)

   连接、存储、更新、转换并组合本地与远程市场数据
2. ### [指标与信号](/zh/features/indicators/)

   计算或自建指标、流式更新，并将指标转化为交易信号
3. ### [回测](/zh/features/backtesting/)

   对订单、信号、杠杆、止损、限价、现金流及模拟回调进行建模
4. ### [分析](/zh/features/analytics/)

   衡量收益和风险、剖析交易、绘制结果图表，并研究市场事件
5. ### [优化与验证](/zh/features/optimization/)

   搜索参数、进行样本外验证、测试稳健性，并配置多种资产

贯穿各个阶段的能力：

[性能](/zh/features/performance/) [研究工具](/zh/features/tooling/) [AI](/zh/features/ai/)

## 为定制而设计。 [#philosophy]

VBT 的可组合架构让您自由搭建和定制研究流程。您可以使用现成组件，以自己的代码替换任一环节，也可以直接使用底层函数和计算内核。

### VBT 并不是

- 无代码策略搭建工具
- 托管交易机器人
- 策略交易市场
- 主导您工作流程的框架

### 使用 VBT，您可以

- 自由接入自己的数据、模型和交易执行系统
- 使用便捷的高层组件，或直接使用底层函数和计算内核，以获得更多控制和更高性能
- 同时研究多个交易品种、参数组合和情景
- 检查、组合和复用中间结果
- 通过参数化、分块以及并行或分布式执行，扩展函数的处理规模
- 使用 Python、从 Python 调用 Rust，或直接使用原生 Rust 开发
- 将编程智能体融入工作流

## 让研究结果经受检验。 [#validation]

VBT 将参数探索与验证整合在同一工作流中，让表现出色的结果接受不同配置、时期和市场条件的检验。

### 跨时间验证

使用滚动窗口、扩展窗口、前向滚动、清除重叠样本和组合切分等方法，评估策略在单一历史区间之外的表现。

### 检查参数曲面

比较相邻参数区域和完整的结果曲面，避免仅以一组最优参数概括整个搜索结果。

### 比较每次切分

对样本内和样本外结果使用相同的分析方法，了解策略表现在哪些情形下能够延续，在哪些情形下失效。

同一条流程对 6,475 组参数进行 24 次滚动训练／测试切分评估，在 Apple M3 上不到一分钟即可生成全部 310,800 个结果。热图中的每个单元格反映对应参数组合的样本内夏普比率在多大程度上能够延续到下一个样本外区间。

```python
@vbt.cv_split(  
    splitter="from_n_rolling",  
    splitter_kwargs=dict(
        n=24, length=720,
        split=0.75, set_labels=["train", "test"],
    ),
    parameterized_kwargs=dict(
        mono_chunk_len=128,
        execute_kwargs=dict(chunk_len="auto", engine="threadpool"),
    ),
    return_grid="all",
)
def sma_crossover_sharpe(  
    close: vbt.Takeable,
    fast_window: vbt.Param(
        condition="fast_window < slow_window",
        mono_merge_func="concat",
    ),
    slow_window: vbt.Param(mono_merge_func="concat"),
) -> vbt.MergeFunc("concat"):
    fast_ma = vbt.MA.run(close, fast_window, hide_params=True)
    slow_ma = vbt.MA.run(close, slow_window, hide_params=True)
    entries = fast_ma.ma_crossed_above(slow_ma)
    exits = fast_ma.ma_crossed_below(slow_ma)
    return vbt.PF.from_signals(close, entries, exits).sharpe_ratio
```

1. 代码注释：接管下方函数并截获其参数，然后切分数据、构建参数网格，并在每个网格单元上运行原函数。单体分块（mono-chunking）将多个单元合并成一个大单元，使其中的参数组合可以作为矩阵一起处理。
2. 代码注释：构建 24 个长度为 720 天的滚动窗口，其中 75% 用于训练，25% 用于测试；以并行单体分块的方式评估完整参数网格，并返回全部网格结果。
3. 代码注释：不使用装饰器时，此函数接收一组快线／慢线窗口参数，并返回一个夏普比率。借助 VBT 灵活的维度处理，它也可以在一次调用中处理多组参数组成的矩阵，从而实现单体分块。

BTC-USD 的 24 次滚动切分中，不同均线交叉参数的训练与测试夏普比率相关性热图 [图表数据（JSON）](/assets/figures/homepage/robustness.4b308b277395.json)

## 用数字了解 VBT。 [#capabilities]

VBT 提供数据适配器、指标、投资组合模拟器和验证方法，并支持多种计算后端与执行引擎，助您开展大规模研究。

数据源与适配器
:   20+
:   远程、本地、数据库和合成数据

指标、信号与标签
:   500+
:   内置、自动生成及第三方集成

交叉验证工厂方法
:   10+
:   包含清除重叠样本和前向滚动等方法

投资组合优化工厂方法
:   10
:   从资产配置函数到集成优化器

投资组合模拟工厂方法
:   8
:   涵盖 Numba 和 Rust 的不同模拟行为

度量指标
:   200+
:   涵盖投资组合、记录及统计分析集成

图表类型
:   90+
:   适用于各类 VBT 对象的可复用可视化分析

即时编译后端
:   3
:   Numba、NumPy 和 Rust

执行引擎
:   7
:   串行、本地并行和分布式执行

## 贯穿全流程的一致性。 [#architecture]

VBT 在整个流程中协调数据对齐、数组预处理、编译执行、持久化存储和分析。

### 处理多维数据

通过广播、索引、分组和封装，在整个工作流中保留交易品种、时间周期、参数和情景等维度。

### 扩展同一套工作流

在不改变研究模型的前提下，通过参数化、分块、缓存和受支持的执行引擎分配计算任务。

### 检查结果，接续运行

保留中间对象供分析使用，从已保存的状态继续模拟，并以增量方式处理长期历史数据。

## 一套 Python 工作流，两种计算后端。 [#execution]

以下示例运行的是同一套均线交叉流程。Python 提供便捷的高层组合接口，Numba 和 Rust 则提供底层指标、信号、模拟和收益率 API。Rust 也可作为独立的原生 crate 使用。

### Python 工作流

通过一套表达力丰富的 API，组合数据、指标、信号、投资组合、优化与分析。Python 负责配置、参数化、元数据和结果管理，再将计算任务交给底层计算后端。

```python
data = vbt.YFData.pull("BTC-USD")
fast_ma = data.run("vbt:ma", window=20, hide_params=True)
slow_ma = data.run("vbt:ma", window=50, hide_params=True)

entries = fast_ma.ma_crossed_above(slow_ma)
exits = fast_ma.ma_crossed_below(slow_ma)

pf = vbt.PF.from_signals(data, entries, exits)
sharpe = pf.sharpe_ratio
```

### Numba 后端

使用 Python 编写数值计算内核，并在运行时将受支持的代码编译为原生机器码，获得接近 C 的性能。

可以通过高层工作流使用，也可以在需要更细粒度控制时直接调用内核。

```python
close = vbt.to_2d_array(data.close)
fast_ma = vbt.nb.ma_nb(close, 20)
slow_ma = vbt.nb.ma_nb(close, 50)
entries = vbt.nb.crossed_above_nb(fast_ma, slow_ma)
exits = vbt.nb.crossed_above_nb(slow_ma, fast_ma)

sim_out = vbt.pf_nb.from_signals_nb(
    target_shape=close.shape,
    group_lens=np.full(close.shape[1], 1),
    close=close,
    long_entries=entries,
    long_exits=exits,
    save_returns=True,
)
sharpe = vbt.ret_nb.sharpe_ratio_nb(
    sim_out.in_outputs.returns,
    ann_factor=365,
)
```

### Rust 后端

这是一个独立的原生 crate，也可作为 Python 的可选预编译计算后端。

您可以直接在 Rust 中使用，也可以保持高层工作流不变，让兼容的 Python 操作将计算交由 Rust 执行。

```rust
let fast_ma = ma().close(close.view()).window(20).call()?;
let slow_ma = ma().close(close.view()).window(50).call()?;
let entries = crossed_above().arr1(fast_ma.view()).arr2(slow_ma.view()).call()?;
let exits = crossed_above().arr1(slow_ma.view()).arr2(fast_ma.view()).call()?;

let group_lens = Array1::<i64>::ones(close.ncols());
let sim_out = from_signals()
    .target_shape(close.dim())
    .group_lens(group_lens.view())
    .close(close.view())
    .long_entries(entries.view())
    .long_exits(exits.view())
    .save_returns(true)
    .call()?;
let sharpe = sharpe_ratio_1d()
    .returns(sim_out.in_outputs.returns.column(0))
    .ann_factor(365.0)
    .call();
```

## 各个层级，皆有速度。 [#performance]

数值越高，性能越好。高层涵盖完整的投资组合工作流，中层使用准备好的输入运行模拟，底层则直接处理每笔订单。

基准测试交互面板（英文）

Workload: Sparse

Rows per column: 1,000,000

Benchmark package [Download ZIP](/downloads/simulator-showdown.zip)

1,000,000 one-minute bars and 1,388 filled orders per column.

High-level
:   320M bars/s
:   25 ms for this workload

Mid-level
:   579M bars/s
:   14 ms for this workload, 1.8x high-level

Low-level
:   4.7B bars/s
:   1.7 ms for this workload, 14.6x high-level

Sparse simulator benchmarks at 1,000,000 rows per column

| Simulator | Version | Mode | Status | Columns | Warm throughput (M bars/s) | First-call throughput (M bars/s) | Warm runtime (s) | First-call runtime (s) | Compilation (s) |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| PRO low-level Rust | 2026.6.27 | Parallel | Completed | 8 | 4665.743238317416 | — | 0.001714625 | — | — |
| PRO low-level Numba | 2026.6.27 | Parallel | Completed | 8 | 4163.3230220430005 | 2.116083257823813 | 0.00192154198884964 | 3.7805695831775665 | 3.778648041188717 |
| PRO low-level Rust | 2026.6.27 | Serial | Completed | 1 | 1424.9236240937485 | — | 0.000701792 | — | — |
| PRO low-level Numba | 2026.6.27 | Serial | Completed | 1 | 1226.9939863981183 | 0.351051430522905 | 0.0008149999193847179 | 2.84858545800671 | 2.847770458087325 |
| PRO mid-level Rust | 2026.6.27 | Parallel | Completed | 8 | 579.383003451964 | — | 0.013807792 | — | — |
| PRO high-level Rust | 2026.6.27 | Parallel | Completed | 8 | 319.6106135270101 | — | 0.025030457880347967 | — | — |
| Manifold-BT | 0.19.0 | Parallel | Completed | 8 | 190.96269066431148 | — | 0.041893 | — | — |
| PRO mid-level Rust | 2026.6.27 | Serial | Completed | 1 | 112.24867661616487 | — | 0.008908791 | — | — |
| Manifold-BT | 0.19.0 | Serial | Completed | 1 | 109.29210028648235 | — | 0.0091497921384871 | — | — |
| PRO mid-level Numba | 2026.6.27 | Parallel | Completed | 8 | 103.39379403094054 | 0.5160845768526553 | 0.07737408298999071 | 15.50133516639471 | 15.42396108340472 |
| PRO high-level Numba | 2026.6.27 | Parallel | Completed | 8 | 95.37486498427566 | 0.5073225550479601 | 0.08387954207137227 | 15.769060374703258 | 15.685180832631886 |
| PRO high-level Rust | 2026.6.27 | Serial | Completed | 1 | 82.13186841345684 | — | 0.012175541836768389 | — | — |
| PRO mid-level Numba | 2026.6.27 | Serial | Completed | 1 | 71.25001979919584 | 0.08527053056556519 | 0.014035083819180727 | 11.72738099982962 | 11.71334591601044 |
| PRO high-level Numba | 2026.6.27 | Serial | Completed | 1 | 54.48255143363268 | 0.08348744942597715 | 0.01835450017824769 | 11.97784824995324 | 11.959493749774992 |
| OSS Numba | 1.1.0 | Serial | Completed | 1 | 21.436705511337596 | 0.33670846162238993 | 0.046648959163576365 | 2.969928332604468 | 2.9232793734408915 |
| RaptorBT | 0.9.0 | Serial | Completed | 1 | 20.865011249168635 | — | 0.04792712489143014 | — | — |
| Nautilus Python v2 | 2.0.0rc3 | Serial | Completed | 1 | 0.7077891993928654 | — | 1.412850041873753 | — | — |
| Nautilus Rust v2 | 0.62.0 | Serial | Completed | 1 | 0.5931788730150103 | — | 1.6858321250000001 | — | — |
| Backtrader | 1.9.78.123 | Parallel | Completed | 8 | 0.12284478022451349 | — | 65.12283212505281 | — | — |
| PyBroker Numba | 2.0.0 | Serial | Completed | 1 | 0.08123612131557577 | 0.07393742333951846 | 12.309795000124723 | 13.524950624909252 | 1.2151556247845292 |
| Backtrader | 1.9.78.123 | Serial | Completed | 1 | 0.020621870727887733 | — | 48.49220583308488 | — | — |

Horizontal ranking of sparse simulator benchmarks at 1,000,000 rows per column by warm bar throughput, with first-call throughput shown as a translucent marker

Environment: Apple M3 (8 logical cores), arm64, macOS 26.5.2

## 完整源代码，尽在掌握。 [#source-code]

自 2017 年起，VectorBT 一直由其创始人、资深软件工程师 [Oleg Polakow](/zh/about-me/) 设计并维护。自 2021 年起，VectorBT PRO 在这一基础上，通过持续开发和社区反馈不断完善。

会员可访问源代码，检查实现细节，逐层追溯计算结果，并根据自己的数据和基础设施调整各个组件。统一的约定让组件的使用方式更易掌握，也便于扩展。

MCP 服务器、命令行工具、面向大语言模型的文档和智能体工具，让开发者与编程智能体都能更方便地查阅、理解这套代码，并将相关工作自动化。

## 会员怎么说。 [#community-feedback]

来自 Discord 社区的反馈。为保护隐私，措辞、姓名和头像可能经过调整。

以下为会员的英文原文反馈。

> I spend around 2 hours with it last night. Just blown away, hands down the best library I've tried so far 💯

![](/assets/images/testimonials/slick4989.webp)slick4989

> That works perfectly! VBT keeps impressing me with how much it can do and how deep the functionality goes. Thanks for creating such an amazing tool. 🙏🏾

![](/assets/images/testimonials/marko_3074.webp)marko_3074

> Only just started using your platform and already a little blown away by the community, how convenient everything is and all the functionality. Such a life and time saver!

![](/assets/images/testimonials/cybron_17.webp)cybron_17

> vectorbtPRO is part of my every day now, definitely worth to get sponsorship!

![](/assets/images/testimonials/christoph6283.webp)christoph6283

> Learning so much from this amazing library 🙂 And the documentation is brilliant, honestly feels like a whole product on its own! Thanks so much!

![](/assets/images/testimonials/cybersqwatch.webp)cybersqwatch

> Always so helpful and quick to reply, best dev in the world 👍

![](/assets/images/testimonials/georgi.gmi.png)georgi.gmi

已显示 6 条反馈，共 18 条。

## 由社区共同支持。 [#crowdfunding]

VectorBT PRO 是一个独立众筹项目。会员收入用于支付基础设施、软件订阅、AI token 用量、开发与维护，以及独立软件项目的日常运营开支。

## 会员方案。 [#homepage-plans]

按月、按 12 个月或一次性购买终身访问权限，使用 VectorBT PRO。支持通过 GitHub Sponsors、Patreon 等平台付款。

- ### 

  起价**$25**/ 月

  按月付费，可随时取消。
- ### 

  起价~~$300~~**$240**

  折合 ~~$25~~ **$20 / 月**

  一次付费，享有一年的访问权限。
- ### 

  起价**$500**一次性付费

  一次付费，享有终身访问权限。

所有方案均包含：

- 私有源代码仓库
- 文档与教程
- 持续更新
- Discord 社区

## 常见问题。 [#homepage-faq]

按主题浏览： [方案与访问权限](#plans-and-access) · [使用 VectorBT PRO](#using-vectorbt-pro) ·
[安装与兼容性](#setup-and-compatibility)




VectorBT PRO 是什么类型的产品？

VectorBT PRO 是以代码为核心的工具集，用于量化分析、回测和算法交易研究。它提供 Python 包和原生 Rust crate，两者都旨在您自己的环境中运行，并融入现有工作流程。

可以使用自己的数据、经纪商或交易所吗？

可以。您可以使用 Pandas 或数组形式的数据，加载本地文件和数据库，使用内置适配器，或编写自定义数据类。VectorBT PRO
的研究层保持灵活，让您可以连接任何适合自己工作流程的数据源、经纪商或交易所。

可以将 VectorBT PRO 与编程智能体配合使用吗？

可以。MCP 服务器、CLI 命令、适合大语言模型使用的文档和智能体工具，可以帮助兼容的编程智能体理解 API、运行真实的 VBT
代码，并自动化研究流程。这样，您就能少花时间查语法，多花时间研究想法。

支持哪些操作系统和硬件？

VectorBT PRO 可在 Linux、macOS 和 Windows 上运行。我们建议 Windows 用户使用 WSL，以获得更顺畅的开发体验。CPU
和内存需求取决于数据量和参数空间的大小。随着工作负载增长，您可以使用分块、缓存、并行执行和分布式执行来应对。

可以在没有网络连接的情况下使用 VectorBT PRO 吗？

可以。安装完成后，核心计算、本地数据工作流程和离线知识工具均可在无网络连接时使用。当然，安装更新、获取远程数据、调用云服务，以及访问网站或 Discord 仍然需要网络连接。

[查看全部问题](/zh/faq/)

## 获取 VectorBT PRO 的完整访问权限。

会员权益包括完整源代码、私有文档与 API 参考、教程、实用示例、版本说明、持续更新，以及私有 Discord 社区。

[成为会员](/zh/become-a-member/)

[![](/assets/logo/logo-dark.svg)![](/assets/logo/logo.svg)VectorBT® PRO](/zh/)

版权所有 © 2021–2026 Oleg Polakow。保留所有权利。

本站内容与文档供使用和评估 VectorBT PRO 以及教育用途。任何其他用途，包括开发或支持竞争产品或服务，均须事先取得书面同意。

您可以随时调整偏好：。

探索

法律信息

作者