当前位置: 首页 > ai >正文

速查手册: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=1001+平均跌幅平均涨幅100(默认 14 日)。

  • 参数timeperiod=14

  • 使用场景

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

    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 线下穿信号线):卖出信号。
  • 示例代码

    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):买入信号。
  • 示例代码

    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

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

  • 示例代码

    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 的超买超卖拐点。

  • 示例代码

    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:市场震荡,避免趋势类策略。
  • 示例代码

    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} 2ADXt+ADXtN(默认 N=14)。

  • 参数timeperiod=14

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

  • 示例代码

    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:超卖。
  • 示例代码

    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)可能回调。
  • 示例代码

    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,但更敏感。

  • 示例代码

    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

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

  • 示例代码

    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:上升趋势;反之下降趋势。
  • 示例代码

    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 UpAroon Down

  • 参数timeperiod=14

  • 使用场景

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

    aroon_osc = talib.AROONOSC(high, low, timeperiod=14)
    

5. 其他动量指标

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

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

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

  • 参数:无需周期参数。

  • 使用场景

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

    bop = talib.BOP(open, high, low, close)
    

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

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

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

  • 参数timeperiod=14

  • 使用场景

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

    mfi = talib.MFI(high, low, close, volume, timeperiod=14)
    

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

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

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

  • 参数timeperiod=30

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

  • 示例代码

    trix = talib.TRIX(close, timeperiod=30)
    

6. 使用建议

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

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

http://www.xdnf.cn/news/456.html

相关文章:

  • 编译报错 宏 _IOC_SIZEBITS,而这个宏在编译时未定义
  • 2025年赣教云智慧作业微课PPT模板
  • 网络互连与互联网4
  • [Java实战经验]异常处理最佳实践
  • 【langchain4j】Springboot如何接入大模型以及实战开发-AI问答助手(一)
  • 深入剖析JavaScript内存泄漏:识别、定位与实战解决
  • BZOJ P1419 Red is good
  • 软件测试--自动化测试1
  • 如何使用flatten函数在Terraform 中迭代嵌套map
  • 【HDFS入门】HDFS性能调优实战:压缩与编码技术深度解析
  • 若依(笔记)
  • C++入门小馆: 深入string类
  • Redis启动报错(error) NOAUTH Authentication required
  • NodeRED模拟复杂流程处理
  • MACOS 上的 快捷指令怎么用,有哪些分享资源可以用
  • WSL (ext4.vhdx文件)占用空间过大,清理方式记录,同时更改 WSL 保存位置
  • 电脑 访问 github提示 找不到网页,处理方案
  • CRC实战宝典:从原理到代码,全面攻克循环冗余校验
  • 驱动-自旋锁死锁
  • Linux系统之部署TestNet资产管理系统
  • Java使用javacv实现的多种音视频格式播放器
  • 字符串系列一>二进制求和
  • 【重走C++学习之路】12、模板进阶
  • 智慧农业新视界:视频监控管理平台如何赋能现代农业
  • Trae,字节跳动推出的 AI 编程助手插件
  • TensorFlow 实现 Mixture Density Network (MDN) 的完整说明
  • JavaScript 回调函数详解
  • spring三级缓存如何解决循环依赖问题
  • 数量关系 多级数列1
  • 文档内容提取以及合成