Indicators & Signals

vectorbt 指标与信号:双均线策略与交叉信号生成

策略研究的关键是把行情转成可回测的买卖信号。vectorbt 用 vbt.MA.run 等 accessor 计算指标,用 crossed_above / crossed_below 判断交叉,再交给 Portfolio.from_signals 回测。本页以双均线为例,讲清指标 → 信号 → 回测的完整链路。

指标:vbt.MA / RSI / MACD信号:crossed_above/below回测:from_signals
MA.run
crossed_above
信号
from_signals
vectorbt 指标→信号→回测流程示意(schematic),双均线示例见正文。
Steps

双均线策略:从指标到回测

步骤代码作用
1. 算均线fast = vbt.MA.run(price, 10).ma
slow = 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 生效,避免用当天收盘价偷看当天结果造成前视偏差。
Indicators

常用指标与交叉信号

指标调用方式典型用法
移动均线 MAvbt.MA.run趋势判断、双均线交叉
布林带 BBANDSvbt.BBANDS.run超买超卖、波动带
RSIvbt.RSI.run超买超卖、动量
MACDvbt.MACD.run金叉死叉、动量背离
交叉信号crossed_above / crossed_below任意两序列交叉判断
Ecosystem

指标生态与第三方集成

内置指标

vectorbt 内置移动均线、布林带、RSI、MACD 等常用指标,以 accessor 形式直接调用。

自定义指标

vbt.Indicator 类自定义指标,复用向量化框架。

第三方集成

可集成 TA-Lib、Pandas TA 等第三方指标库(需安装 full 扩展)。

Signals

信号生成方法清单

方法作用典型场景
crossed_above / below序列交叉判断金叉买、死叉卖
布尔条件组合多条件信号趋势 + 动量过滤
排名 / 映射截面选标的多标的横截面排序
分布分析信号质量评估信号频率与稳定性
Params

双均线参数怎么选

场景快慢线组合说明
短线5 / 20更敏感,信号多但噪声大
中长线10 / 30平衡敏感度与稳定性
长线趋势20 / 60更稳,信号少但滞后
建议窗口run_combs 网格搜索找参数稳定区间而非单点
FAQ

常见问题

双均线金叉死叉为什么常亏损?

均线是滞后指标,震荡行情下金叉死叉频繁假信号。回测只是验证历史表现,不代表未来;需结合趋势过滤、手续费与样本外验证。

crossed_above 和 crossed_below 怎么用?

它们判断一条序列是否上穿/下穿另一条序列,返回布尔序列,可直接作为 from_signals 的 entries/exits。

能用自己的指标吗?

可以。用 vbt.Indicator 子类化定义自定义指标,或先把指标算成普通数组/DataFrame 再喂给信号与组合。

指标一定要用 accessor 吗?

不必。vectorbt 的指标是 pandas accessor,但你也可以直接用 NumPy/pandas 算好指标,再把结果传给 from_signals,两者兼容。

写好了策略,做参数优化

下一步用 run_combs 网格搜索,一次扫描多组均线参数找稳定区间。