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

速查手册: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)过滤虚假信号。

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

相关文章:

  • 超大文件处理——文件强制切割:突破存储传输限制,提升数据处理效能—星辰大文化术——未来之窗超算中心
  • PKI 公钥基础设施
  • STM32学习笔记汇总
  • JavaWeb 课堂笔记 —— 13 MySQL 事务
  • 解决win10执行批处理报编码错误
  • Nodejs数据库单一连接模式和连接池模式的概述及写法
  • Meteonorm8-免费使用教程(详细教程-免费)
  • RK3506-rtlinux
  • Linux系统之部署TestNet资产管理系统
  • 豆瓣图书数据采集与可视化分析(一)- 豆瓣图书数据爬取
  • 【DT】USB通讯失败记录
  • 整流二极管详解:原理、作用、应用与选型要点
  • Replicate Python client
  • AUTOSAR图解==>AUTOSAR_SWS_EFXLibrary
  • fragment 异常 InstantiationException
  • 数据结构实验6.2:稀疏矩阵的基本运算
  • C++ STL 环形队列模拟实现
  • 解决Windows update服务启动拒绝访问的问题 | wuauserv 注册表拒绝访问的方法
  • CF148D Bag of mice
  • M|触碰你
  • 南部战区回应菲护卫艇非法侵入中国黄岩岛领海:依法警告驱离
  • 两岸基层民生发展交流会在浙江开幕
  • 多元布局、抱团取暖……上海虹口区召开外向型企业圆桌会议
  • 上海古籍书店重新开卷,在这里淘旧书获新知
  • 撤销逾千名留学生签证,特朗普政府面临集体诉讼
  • 碎片化时代如何阅读?巴金图书馆推出世界读书日系列活动