pandas_ta 库指标分类
pandas_ta库并没有采用传统技术分析教科书中“趋势、震荡、成交量”等基于交易逻辑的分类方式,而是采用了更贴近量化开发实践的功能性分类体系。这种分类直接映射到其 API 调用结构上,主要分为以下三大维度:
1. 按指标类别分类
这是pandas_ta最核心的组织方式,所有指标被归入约 15 个功能模块中。每个模块对应一个独立的命名空间,可通过ta.{category}()或df.ta.{category}()调用:
| 类别 | 说明 | 代表性指标 |
|---|---|---|
| Overlaps | 与价格曲线重叠绘制的指标 | SMA, EMA, BOLL, VWAP, HMA |
| Momentum | 衡量价格变化速度与强度的振荡器 | RSI, MACD, STOCH, CCI, ROC |
| Volatility | 度量价格波动幅度的指标 | ATR, BBW, KC, NATR, THERMO |
| Volume | 结合量价关系的指标 | OBV, MFI, AD, CMF, VP |
| Trend | 专门用于识别/确认趋势方向的指标 | ADX, DMI, PSAR, SUPERTREND, VORTEX |
| Statistics | 统计学衍生指标 | ZSCORE, SKEW, KURT, QUANTILE |
| Cycles | 周期/时间序列分析指标 | EBSW, REFLEX, INVERTEDHAMMER |
| Pattern | K线形态识别 | CDL_DOJI, CDL_ENGULFING 等60+种 |
| Performance | 收益率与风险绩效度量 | LOGRET, PCTCHANGE, SHARPE, SORTINO |
| Utils / Helpers | 辅助计算工具 | CROSS, ABOVE, BELOW, IFELSE |
注意:部分指标可能同时具备多重属性(如 MACD 既是动量也是趋势指标),
pandas_ta会根据其主要用途将其归入单一类别。例如 MACD 被归入 Momentum 而非 Trend。
2. 按调用粒度分类
除了功能类别,pandas_ta还提供了三种不同粒度的使用接口,适应不同的开发场景:
- 单指标调用:
ta.rsi(close, length=14)—— 精确控制单个指标的参数,适合调试和定制化策略。 - 类别批量调用:
df.ta.momentum(length=14, append=True)—— 一次性计算该类别下所有指标,适合特征工程探索。 - 自定义策略:
df.ta.strategy(name="my_strategy", config=[...])—— 通过 JSON/YAML 配置文件定义指标组合,适合生产环境中的可复现研究。
3. 按数据依赖分类
这一分类虽未在文档中显式标注,但在实际使用中至关重要:
- 仅依赖收盘价:如 EMA、RSI,只需
close列即可计算。 - 依赖 OHLC 多列:如 ATR、BOLL、SUPERTREND,需要完整的开高低收数据。
- 依赖成交量:如 OBV、MFI、AD,必须提供
volume列,否则返回 NaN。 - 依赖外部数据:如 VP(成交量分布)需要指定价格区间参数;部分统计指标可能需要额外传入基准序列。
4. 与传统分类的差异提醒
许多交易者习惯按“趋势型 / 震荡型 / 量能型”来记忆指标,但pandas_ta的Overlaps类别是一个独特设计——它纯粹基于可视化位置(是否与K线同轴绘制)而非交易逻辑。这意味着:
- EMA(趋势跟踪)和 BOLL(波动率通道)同属 Overlaps;
- ADX(纯趋势强度)却被归入 Trend 而非 Overlaps;
- VWAP(量价趋势)也在 Overlaps 中。
因此,在使用pandas_ta时,建议以功能模块为索引查找指标,而非套用传统教科书分类。可通过df.ta.indicators()获取完整指标列表及其所属类别,或通过ta.Category字典对象查看各类别下所有可用指标。
