SuperAPI AI 工具集

pandas-ta

数据与分析

查看项目

更新于 10-15 09:18

技能介绍

pandas-ta 是一个 Python 库,它扩展了 pandas DataFrame,提供 130 多个技术分析指标,可通过 df.ta 访问。指标覆盖趋势、动量、波动率、成交量和重叠等类别,均可在任意 OHLCV DataFrame 上以单个方法调用。

用途 pandas-ta 用于对加密货币等市场的 OHLCV 数据进行技术分析,计算各类技术指标,辅助识别趋势方向、动量强弱、波动范围与成交量确认等。

主要能力

  • 提供 130 多个技术指标,涵盖趋势、动量、波动率、成交量等类别。
  • 支持单指标调用,例如 df.ta.rsi(length=14)、df.ta.atr(length=14)。
  • 支持通过 ta.Strategy 在单次调用中运行多个指标,可自定义策略或使用内置策略(如 ta.AllStrategy)。
  • 趋势指标包括 SMA、EMA、SuperTrend、Ichimoku、VWMA、HMA、ADX 等。
  • 动量指标包括 RSI、MACD、Stochastic、CCI、Williams %R、ROC、MFI 等。
  • 波动率指标包括 Bollinger Bands、ATR、Keltner Channels、Donchian Channels 等。
  • 成交量指标包括 OBV、VWAP、CMF、AD 等。

使用方式 安装命令:uv pip install pandas-ta pandas httpx

快速开始示例: import pandas as pd import pandas_ta as ta

假设 df 是包含 open, high, low, close, volume 列的 DataFrame

所有列名必须为小写

单指标: df["rsi"] = df.ta.rsi(length=14) df["atr"] = df.ta.atr(length=14)

通过策略运行多个指标: df.ta.strategy(ta.Strategy( name="Quick Check", ta=[ {"kind": "rsi", "length": 14}, {"kind": "macd", "fast": 12, "slow": 26, "signal": 9}, {"kind": "bbands", "length": 20, "std": 2.0}, ] ))

OHLCV DataFrame 格式要求:

  • 列名必须为小写(close,而非 Close)。
  • 建议将索引设为 DatetimeIndex,以支持 VWAP 等时间相关指标。

缺失数据处理:

  • 删除 OHLCV 列中含 NaN 的行:df = df.dropna(subset=["open", "high", "low", "close", "volume"])
  • 前向填充小缺口(最多 1-2 根 K 线):df = df.ffill(limit=2)
  • 验证成交量指标无零成交量 K 线:df = df[df["volume"] > 0]

策略类 可使用 ta.Strategy 在单次调用中运行多个指标。内置 "All" 策略运行所有指标:df.ta.strategy(ta.AllStrategy)。也可自定义策略,例如: my_strategy = ta.Strategy( name="Crypto Scalp", description="Fast indicators for crypto scalping", ta=[ {"kind": "ema", "length": 9}, {"kind": "ema", "length": 21}, {"kind": "rsi", "length": 7}, {"kind": "stoch", "k": 5, "d": 3, "smooth_k": 3}, {"kind": "atr", "length": 7}, {"kind": "bbands", "length": 10, "std": 2.0}, {"kind": "obv"}, ] ) df.ta.strategy(my_strategy)

资料还提供了命名策略模式示例,包括趋势跟随、均值回归和动量策略。

加密货币特定注意事项

  • 24/7 市场:无交易时段缺口,依赖开盘/收盘的指标行为不同;VWAP 默认在 UTC 午夜重置,可考虑锚定 VWAP;周末数据连续,无周一缺口效应。
  • 高波动调整:Bollinger Bands 可使用 2.5-3 倍标准差而非默认 2 倍;RSI 周期可缩短至 7-10;ATR 用于动态止损,加密货币 ATR 通常为股票的 2-5 倍;SuperTrend 乘数可用 3-4 倍而非股票的 2-3 倍。
  • 低市值代币:成交量指标(OBV、CMF、MFI)在订单簿稀薄时不可靠;低流动性代币宜用价格类指标(RSI、BBands、SuperTrend);基于 ATR 的仓位管理至关重要;刷量会虚增成交量,需与链上数据交叉验证。

时间周期选择

  • 1m-5m:剥头皮、PumpFun,推荐 RSI(5-7)、EMA(5,13)、ATR(5)。
  • 15m-1h:日内交易,推荐 MACD、RSI(14)、BBands、EMA(20,50)。
  • 4h-1d:波段交易,推荐 SuperTrend、ADX、EMA(50,200)。
  • 1w:头寸交易,推荐 SMA(20,50)、RSI(14)、月线 VWAP。

常见指标组合 资料提供了趋势跟随、均值回归、动量确认和波动率突破(BB 挤压)的代码示例,展示如何组合多个指标生成信号。

与其他技能的集成

  • birdeye-api:获取 OHLCV 数据,输入 pandas-ta 计算指标。
  • vectorbt:将 pandas-ta 指标作为回测信号输入。
  • trading-visualization:在价格图表上绘制指标叠加。
  • slippage-modeling:结合 ATR 与滑点估计进行真实执行建模。
  • position-sizing:使用 pandas-ta 输出的 ATR 进行仓位管理。

文件 参考资料:

  • references/indicator_guide.md — 前 20 个加密货币指标,含语法、参数和解读。
  • references/strategy_patterns.md — 预构建的策略组合,用于剥头皮、日内交易和波段交易。
  • references/common_pitfalls.md — 加密货币市场中技术指标的常见错误。

脚本:

  • scripts/compute_indicators.py — 获取 OHLCV 数据并计算标准指标集,附信号摘要。
  • scripts/multi_indicator_scan.py — 运行多个策略配置并评分当前信号一致性。

限制 资料未提供关于收费、价格、平台支持范围、具体效果或性能的说明。