速查手册:TA-Lib 超过150种量化技术指标计算全解 - 2. Momentum Indicators(动量指标)

速查手册:TA-Lib 超过150种量化技术指标计算全解 - 2. Momentum Indicators(动量指标)

TA-Lib(Technical Analysis Library)是广泛使用的金融技术分析库,实现了超过150种技术指标计算函数,适用于股票、期货等金融数据的技术分析,帮助用户进行量化研究和交易策略开发。

文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。适合量化新手建立系统认知,为策略开发打下基础。

目录

  1. Overlap Studies(重叠指标)
  2. Momentum Indicators(动量指标)
  3. Volume Indicators(成交量指标)
  4. Volatility Indicators(波动率指标)
  5. Cycle Indicators(周期指标)
  6. Price Transform(价格变换)
  7. Pattern Recognition(模式识别)
  8. Statistic Functions(统计函数)
  9. Math Transform(数学变换)
  10. Math Operators(数学运算符)

Momentum Indicators(动量指标)

1. 经典动量指标

RSI (Relative Strength Index) 相对强弱指数

  • 作用:衡量价格变化速度,识别超买(>70)或超卖(<30)。

  • 计算方法
    RSI = 100 − 100 1 + 平均涨幅 平均跌幅 \text{RSI} = 100 - \frac{100}{1 + \frac{\text{平均涨幅}}{\text{平均跌幅}}} RSI=100−1+平均跌幅平均涨幅100(默认 14 日)。

  • 参数timeperiod=14

  • 使用场景

    • 背离信号:价格新高但 RSI 未新高 → 潜在反转。
    • 超买/超卖区域结合趋势方向使用(如上升趋势中超卖更可信)。
  • 示例代码

    python 复制代码
    rsi = talib.RSI(close, timeperiod=14)

MACD (Moving Average Convergence Divergence) 移动平均收敛/发散指标

  • 作用:捕捉趋势变化与动量方向。

  • 计算方法

    • MACD 线 = EMA(12) - EMA(26)
    • 信号线 = MACD 线的 EMA(9)
    • 柱状图 = MACD 线 - 信号线
  • 参数fastperiod=12, slowperiod=26, signalperiod=9

  • 使用场景

    • 金叉(MACD 线上穿信号线):买入信号。
    • 死叉(MACD 线下穿信号线):卖出信号。
  • 示例代码

    python 复制代码
    macd, signal, hist = talib.MACD(close, fastperiod=12, slowperiod=26, signalperiod=9)

STOCH (Stochastic Oscillator) 随机振荡器

  • 作用:比较收盘价与近期价格范围,识别反转点。

  • 计算方法

    • %K = 当前收盘价 - N日最低价 N日最高价 - N日最低价 × 100 \frac{\text{当前收盘价 - N日最低价}}{\text{N日最高价 - N日最低价}} \times 100 N日最高价 - N日最低价当前收盘价 - N日最低价×100
    • %D = %K 的 M 日移动平均(默认 3 日)。
  • 参数fastk_period=5, slowk_period=3, slowd_period=3

  • 使用场景

    • 超买区(>80)死叉(%K 下穿 %D):卖出信号。
    • 超卖区(<20)金叉(%K 上穿 %D):买入信号。
  • 示例代码

    python 复制代码
    slowk, slowd = talib.STOCH(high, low, close, fastk_period=5, slowk_period=3, slowd_period=3)

STOCHF (Fast Stochastic Oscillator) 快速随机振荡器

  • 作用:快速随机指标,减少平滑步骤。

  • 计算方法:直接计算 %K 和 %D 的快速版本。

  • 参数fastk_period=5, fastd_period=3

  • 使用场景:短期高频交易。

  • 示例代码

    python 复制代码
    fastk, fastd = talib.STOCHF(high, low, close, fastk_period=5, fastd_period=3)

STOCHRSI (Stochastic RSI) RSI随机振荡器

  • 作用:在 RSI 基础上计算随机值,增强灵敏度。

  • 计算方法:对 RSI 值应用随机公式。

  • 参数timeperiod=14, fastk_period=5, fastd_period=3

  • 使用场景:捕捉 RSI 的超买超卖拐点。

  • 示例代码

    python 复制代码
    stochrsi_k, stochrsi_d = talib.STOCHRSI(close, timeperiod=14, fastk_period=5, fastd_period=3)

2. 趋势强度指标

ADX (Average Directional Index) 平均趋向指数

  • 作用:量化趋势强度(非方向),值越大趋势越强。

  • 计算方法

    1. 计算 +DI(正向动向)和 -DI(负向动向)。
    2. ADX = DX(动向指数)的 N 日平滑平均(默认 14 日)。
  • 参数timeperiod=14

  • 使用场景

    • ADX > 25:趋势明显,适合趋势跟踪策略。
    • ADX < 20:市场震荡,避免趋势类策略。
  • 示例代码

    python 复制代码
    adx = talib.ADX(high, low, close, timeperiod=14)

ADXR (Average Directional Movement Rating) 平均趋向运动评分

  • 作用:ADX 的平滑版本,减少短期波动干扰。

  • 计算方法 :ADXR = ADX ∗ t + ADX ∗ t − N 2 \frac{\text{ADX}*t + \text{ADX}*{t-N}}{2} 2ADX∗t+ADX∗t−N(默认 N=14)。

  • 参数timeperiod=14

  • 使用场景:确认趋势持续性。

  • 示例代码

    python 复制代码
    adxr = talib.ADXR(high, low, close, timeperiod=14)

3. 价格动量指标

CCI (Commodity Channel Index) 商品通道指数

  • 作用:判断资产价格是否偏离统计常态。

  • 计算方法
    CCI = 价格 - 典型价格均值 0.015 ⋅ 平均绝对偏差 \text{CCI} = \frac{\text{价格 - 典型价格均值}}{0.015 \cdot \text{平均绝对偏差}} CCI=0.015⋅平均绝对偏差价格 - 典型价格均值

    (典型价 = 高 + 低 + 收 3 \frac{\text{高 + 低 + 收}}{3} 3高 + 低 + 收)

  • 参数timeperiod=14

  • 使用场景

    • CCI > 100:超买;CCI < -100:超卖。
  • 示例代码

    python 复制代码
    cci = talib.CCI(high, low, close, timeperiod=14)

WILLR (Williams %R) 威廉指标

  • 作用:类似随机指标,但刻度反向(0 至 -100)。

  • 计算方法
    % R = N日最高价 - 收盘价 N日最高价 - N日最低价 × − 100 \%R = \frac{\text{N日最高价 - 收盘价}}{\text{N日最高价 - N日最低价}} \times -100 %R=N日最高价 - N日最低价N日最高价 - 收盘价×−100

  • 参数timeperiod=14

  • 使用场景

    • 超卖(< -80)可能反弹,超买(> -20)可能回调。
  • 示例代码

    python 复制代码
    willr = talib.WILLR(high, low, close, timeperiod=14)

CMO (Chande Momentum Oscillator) Chande动量摆动指标

  • 作用:基于绝对涨跌幅的动量指标,减少方向性偏差。

  • 计算方法
    CMO = 总涨幅 - 总跌幅 总涨幅 + 总跌幅 × 100 \text{CMO} = \frac{\text{总涨幅 - 总跌幅}}{\text{总涨幅 + 总跌幅}} \times 100 CMO=总涨幅 + 总跌幅总涨幅 - 总跌幅×100(默认 14 日)。

  • 参数timeperiod=14

  • 使用场景:类似 RSI,但更敏感。

  • 示例代码

    python 复制代码
    cmo = talib.CMO(close, timeperiod=14)

ROC (Rate of Change) 变动率指标

  • 作用:计算价格变化率。

  • 计算方法
    ROC = 当前收盘价 - N日前收盘价 N日前收盘价 × 100 \text{ROC} = \frac{\text{当前收盘价 - N日前收盘价}}{\text{N日前收盘价}} \times 100 ROC=N日前收盘价当前收盘价 - N日前收盘价×100

  • 参数timeperiod=10

  • 使用场景:捕捉价格加速或减速。

  • 示例代码

    python 复制代码
    roc = talib.ROC(close, timeperiod=10)

4. 方向动量指标

AROON 阿隆指标

  • 作用:衡量趋势方向和强度。

  • 计算方法

    • Aroon Up = N − 距离最近N日内最高价的天数 N × 100 \frac{N - \text{距离最近N日内最高价的天数}}{N} \times 100 NN−距离最近N日内最高价的天数×100
    • Aroon Down = N − 距离最近N日内最低价的天数 N × 100 \frac{N - \text{距离最近N日内最低价的天数}}{N} \times 100 NN−距离最近N日内最低价的天数×100
  • 参数timeperiod=14

  • 使用场景

    • Aroon Up > Aroon Down:上升趋势;反之下降趋势。
  • 示例代码

    python 复制代码
    aroon_down, aroon_up = talib.AROON(high, low, timeperiod=14)

AROONOSC (Aroon Oscillator) 阿隆振荡器

  • 作用:Aroon Up 与 Aroon Down 的差值。

  • 计算方法
    AROONOSC = Aroon Up − Aroon Down \text{AROONOSC} = \text{Aroon Up} - \text{Aroon Down} AROONOSC=Aroon Up−Aroon Down

  • 参数timeperiod=14

  • 使用场景

    • 值 > 0:上升动量占优;值 < 0:下降动量占优。
  • 示例代码

    python 复制代码
    aroon_osc = talib.AROONOSC(high, low, timeperiod=14)

5. 其他动量指标

BOP (Balance of Power) 动力平衡指标

  • 作用:衡量买方与卖方压力。

  • 计算方法
    BOP = 收盘价 - 开盘价 最高价 - 最低价 \text{BOP} = \frac{\text{收盘价 - 开盘价}}{\text{最高价 - 最低价}} BOP=最高价 - 最低价收盘价 - 开盘价

  • 参数:无需周期参数。

  • 使用场景

    • BOP > 0:买方主导;BOP < 0:卖方主导。
  • 示例代码

    python 复制代码
    bop = talib.BOP(open, high, low, close)

MFI (Money Flow Index) 资金流量指数

  • 作用:结合价格和成交量的动量指标。

  • 计算方法:类似 RSI,但引入成交量加权。

  • 参数timeperiod=14

  • 使用场景

    • MFI > 80:超买;MFI < 20:超卖。
  • 示例代码

    python 复制代码
    mfi = talib.MFI(high, low, close, volume, timeperiod=14)

TRIX (Triple Exponential Average) 三重指数平均线

  • 作用:三重平滑价格变化率,过滤短期波动。

  • 计算方法:对价格进行三次指数平滑后计算变化率。

  • 参数timeperiod=30

  • 使用场景:捕捉中长期趋势变化。

  • 示例代码

    python 复制代码
    trix = talib.TRIX(close, timeperiod=30)

6. 使用建议

  1. 组合策略
    • RSI + MACD:RSI 确认超买/超卖,MACD 触发交易信号。
    • ADX + SAR:ADX 判断趋势强度,SAR 提供动态止损点。
  2. 参数调优
    • 震荡市缩短周期(如 RSI 用 7 日),趋势市延长周期(如 ADX 用 20 日)。
  3. 验证信号
    • 结合成交量(如 MFI)或波动率(如 ATR)过滤虚假信号。

风险提示与免责声明

本文内容基于公开信息研究整理,不构成任何形式的投资建议。历史表现不应作为未来收益保证,市场存在不可预见的波动风险。投资者需结合自身财务状况及风险承受能力独立决策,并自行承担交易结果。作者及发布方不对任何依据本文操作导致的损失承担法律责任。市场有风险,投资须谨慎。

相关推荐
明月看潮生2 小时前
青少年编程与数学 02-016 Python数据结构与算法 29课题、自然语言处理算法
python·算法·青少年编程·自然语言处理·编程与数学
西柚小萌新3 小时前
【Python爬虫基础篇】--1.基础概念
开发语言·爬虫·python
CPPAlien5 小时前
Python for MLOps - 第一阶段学习笔记
python
喵~来学编程啦5 小时前
【模块化编程】Python文件路径检查、跳转模块
开发语言·python
黎明沐白6 小时前
Pytorch Hook 技巧
人工智能·pytorch·python
曲幽6 小时前
Stable Diffusion LoRA模型加载实现风格自由
python·ai·stable diffusion·lora·文生图·diffusers
Tech Synapse6 小时前
迷宫求解机器人:基于Pygame与Q-learning的强化学习实战教程
python·机器人·pygame·强化学习
开开心心就好6 小时前
实用电脑工具,轻松实现定时操作
python·学习·pdf·电脑·word·excel·生活
厚衣服_36 小时前
Python语法系列博客 · 第8期[特殊字符] Lambda函数与高阶函数:函数式编程初体验
开发语言·python
侃山6 小时前
Multi-Query Attention (MQA) PyTorch 实现
pytorch·python