内置指标
vectorbt 内置移动均线、布林带、RSI、MACD 等常用指标,以 accessor 形式直接调用。
Indicators & Signals
策略研究的关键是把行情转成可回测的买卖信号。vectorbt 用 vbt.MA.run 等 accessor 计算指标,用 crossed_above / crossed_below 判断交叉,再交给 Portfolio.from_signals 回测。本页以双均线为例,讲清指标 → 信号 → 回测的完整链路。
| 步骤 | 代码 | 作用 |
|---|---|---|
| 1. 算均线 | fast = vbt.MA.run(price, 10).maslow = vbt.MA.run(price, 30).ma | 快慢两条均线 |
| 2. 出信号 | entries = fast.vbt.crossed_above(slow)exits = fast.vbt.crossed_below(slow) | 金叉买、死叉卖 |
| 3. 回测 | pf = vbt.Portfolio.from_signals(price, entries, exits) | 按信号建组合 |
| 4. 看结果 | pf.stats() | 绩效指标 |
shift(1),让金叉/死叉在下一根 bar 生效,避免用当天收盘价偷看当天结果造成前视偏差。| 指标 | 调用方式 | 典型用法 |
|---|---|---|
| 移动均线 MA | vbt.MA.run | 趋势判断、双均线交叉 |
| 布林带 BBANDS | vbt.BBANDS.run | 超买超卖、波动带 |
| RSI | vbt.RSI.run | 超买超卖、动量 |
| MACD | vbt.MACD.run | 金叉死叉、动量背离 |
| 交叉信号 | crossed_above / crossed_below | 任意两序列交叉判断 |
vectorbt 内置移动均线、布林带、RSI、MACD 等常用指标,以 accessor 形式直接调用。
用 vbt.Indicator 类自定义指标,复用向量化框架。
可集成 TA-Lib、Pandas TA 等第三方指标库(需安装 full 扩展)。
| 方法 | 作用 | 典型场景 |
|---|---|---|
| crossed_above / below | 序列交叉判断 | 金叉买、死叉卖 |
| 布尔条件组合 | 多条件信号 | 趋势 + 动量过滤 |
| 排名 / 映射 | 截面选标的 | 多标的横截面排序 |
| 分布分析 | 信号质量评估 | 信号频率与稳定性 |
| 场景 | 快慢线组合 | 说明 |
|---|---|---|
| 短线 | 5 / 20 | 更敏感,信号多但噪声大 |
| 中长线 | 10 / 30 | 平衡敏感度与稳定性 |
| 长线趋势 | 20 / 60 | 更稳,信号少但滞后 |
| 建议窗口 | run_combs 网格搜索 | 找参数稳定区间而非单点 |
均线是滞后指标,震荡行情下金叉死叉频繁假信号。回测只是验证历史表现,不代表未来;需结合趋势过滤、手续费与样本外验证。
它们判断一条序列是否上穿/下穿另一条序列,返回布尔序列,可直接作为 from_signals 的 entries/exits。
可以。用 vbt.Indicator 子类化定义自定义指标,或先把指标算成普通数组/DataFrame 再喂给信号与组合。
不必。vectorbt 的指标是 pandas accessor,但你也可以直接用 NumPy/pandas 算好指标,再把结果传给 from_signals,两者兼容。