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

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

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

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

TA-Lib

目录

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

Momentum Indicators(动量指标)

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

  • 作用:衡量趋势强度(不分方向),值越大趋势越强。

  • 计算方法:基于+DI和-DI的平滑平均,公式为 ADX = ( +DI − -DI ) ( +DI + -DI ) × 100 \text{ADX} = \frac{(\text{+DI} - \text{-DI})}{(\text{+DI} + \text{-DI})} \times 100 ADX=(+DI+-DI)(+DI-DI)×100 的N日平均。

  • 参数

    • timeperiod=14:计算ADX的周期(默认14日),影响趋势强度的平滑
  • 使用场景

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

    adx = talib.ADX(high, low, close, timeperiod=14)
    

2. ADXR (Average Directional Movement Rating) 平均趋向评估指数

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

  • 计算方法 ADXR = ADX ∗ t + ADX ∗ t − N 2 \text{ADXR} = \frac{\text{ADX}*t + \text{ADX}*{t-N}}{2} ADXR=2ADXt+ADXtN

  • 参数

    • timeperiod=14:计算ADX的周期,ADXR在此基础上取平均。
  • 使用场景:确认趋势的持续性。

  • 示例代码

    adxr = talib.ADXR(high, low, close, timeperiod=14)
    

3. APO (Absolute Price Oscillator) 绝对价格振荡器

  • 作用:通过长短周期EMA差值捕捉价格动量。

  • 计算方法 APO = EMA ( 短周期 ) − EMA ( 长周期 ) \text{APO} = \text{EMA}(短周期) - \text{EMA}(长周期) APO=EMA(短周期)EMA(长周期)

  • 参数

    • fastperiod=12:快速EMA的周期(默认12日)。
    • slowperiod=26:慢速EMA的周期(默认26日)。
  • 使用场景:零线交叉作为买卖信号。

  • 示例代码

    apo = talib.APO(close, fastperiod=12, slowperiod=26, matype=0)
    

4. AROON (阿隆指标)

  • 作用:衡量趋势方向及强度,显示新高/新低出现的时间。

  • 计算方法

    • Aroon Up = (\frac{N - \text{距离最近N日内最高价的天数}}{N} \times 100)
    • Aroon Down = (\frac{N - \text{距离最近N日内最低价的天数}}{N} \times 100)
  • 参数

    • timeperiod=14:计算Aroon Up/Down的周期(默认14日)。
  • 使用场景

    • Aroon Up > Aroon Down:上升趋势主导。
    • 两者交叉提示趋势变化。
  • 示例代码

    aroon_down, aroon_up = talib.AROON(high, low, timeperiod=14)
    

5. AROONOSC (阿隆振荡器)

  • 作用:Aroon Up与Aroon Down的差值,量化趋势动量。

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

  • 参数

    • timeperiod=14:同AROON周期(默认14日)。
  • 使用场景

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

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

6. BOP (Balance of Power) 力量平衡指标

  • 作用:衡量买方与卖方的力量对比。

  • 计算方法 BOP = Close − Open High − Low \text{BOP} = \frac{\text{Close} - \text{Open}}{\text{High} - \text{Low}} BOP=HighLowCloseOpen

  • 参数

    • 无参数:直接使用open, high, low, close计算。
  • 使用场景

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

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

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

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

  • 计算方法 CCI = 价格 - 典型价均值 0.015 × 平均绝对偏差 \text{CCI} = \frac{\text{价格 - 典型价均值}}{0.015 \times \text{平均绝对偏差}} CCI=0.015×平均绝对偏差价格 - 典型价均值,其中典型价 = (\frac{\text{高 + 低 + 收}}{3})。

  • 参数

    • timeperiod=14:计算典型价均值和平均偏差的周期(默认14日)。
  • 使用场景

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

    cci = talib.CCI(high, low, close, timeperiod=14)
    

8. CMO (Chande Momentum Oscillator) 钱德动量振荡器

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

  • 计算方法 CMO = 总涨幅 - 总跌幅 总涨幅 + 总跌幅 × 100 \text{CMO} = \frac{\text{总涨幅 - 总跌幅}}{\text{总涨幅 + 总跌幅}} \times 100 CMO=总涨幅 + 总跌幅总涨幅 - 总跌幅×100

  • 参数

    • timeperiod=14:计算涨跌幅总和的周期(默认14日)。
  • 使用场景:类似RSI但更敏感,捕捉短期波动。

  • 示例代码

    cmo = talib.CMO(close, timeperiod=14)
    

9. DX (Directional Movement Index) 方向运动指数

  • 作用:衡量趋势强度,ADX的前置指标。

  • 计算方法 DX = +DI - -DI +DI + -DI × 100 \text{DX} = \frac{\text{+DI - -DI}}{\text{+DI + -DI}} \times 100 DX=+DI + -DI+DI - -DI×100

  • 参数

    • timeperiod=14:计算方向指数的周期(默认14日)。
  • 使用场景:与ADX结合分析趋势强度。

  • 示例代码

    dx = talib.DX(high, low, close, timeperiod=14)
    

10. MACD (Moving Average Convergence Divergence) 指数平滑异同平均线

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

  • 计算方法

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

    • fastperiod=12:快线(短期EMA)的周期(默认12日)。
    • slowperiod=26:慢线(长期EMA)的周期(默认26日)。
    • signalperiod=9:信号线(MACD线的EMA)的周期(默认9日)。
  • 使用场景

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

    macd, signal, hist = talib.MACD(close, fastperiod=12, slowperiod=26, signalperiod=9)
    

11. MACDEXT (MACD扩展版)

  • 作用:允许自定义EMA类型(如SMA、WMA)。

  • 计算方法:同MACD,但可指定移动平均类型。

  • 参数

    • fastperiod=12:快线周期。
    • fastmatype=0:快线移动平均类型(0=SMA,1=EMA,2=WMA等)。
    • slowperiod=26:慢线周期。
    • slowmatype=0:慢线移动平均类型。
    • signalperiod=9:信号线周期。
    • signalmatype=0:信号线移动平均类型。
  • 示例代码

    macd, signal, hist = talib.MACDEXT(close, fastperiod=12, fastmatype=0, slowperiod=26, slowmatype=0, signalperiod=9, signalmatype=0)
    

12. MACDFIX (固定周期MACD)

  • 作用:固定信号线周期为9的MACD变体。

  • 参数

    • signalperiod=9:信号线周期(固定为9日)。
  • 示例代码

    macd, signal, hist = talib.MACDFIX(close, signalperiod=9)
    

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

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

  • 计算方法:类似RSI,但用资金流量代替价格变化。

  • 参数

    • timeperiod=14:计算资金流的周期(默认14日)。
  • 使用场景

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

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

14. MINUS_DI (负方向指标)

  • 作用:量化下跌趋势的强度。

  • 计算方法:基于负方向移动(-DM)的平滑。

  • 参数

    • timeperiod=14:计算负方向指数的周期(默认14日)。
  • 使用场景:-DI上升表示空头力量增强。

  • 示例代码

    minus_di = talib.MINUS_DI(high, low, close, timeperiod=14)
    

15. MINUS_DM (负方向运动)

  • 作用:衡量价格下跌的动量强度。

  • 计算方法 -DM = 前日最低价 - 当日最低价 \text{-DM} = \text{前日最低价 - 当日最低价} -DM=前日最低价 - 当日最低价(若下跌且满足条件)。

  • 参数

    • timeperiod=14:计算负方向运动的周期(默认14日)。
  • 示例代码

    minus_dm = talib.MINUS_DM(high, low, timeperiod=14)
    

16. MOM (动量指标)

  • 作用:计算当前价格与N周期前价格的差值。

  • 计算方法 MOM = Close ∗ t − Close ∗ t − N \text{MOM} = \text{Close}*t - \text{Close}*{t-N} MOM=ClosetClosetN

  • 参数

    • timeperiod=10:计算价格差值的周期(默认10日)。
  • 使用场景:动量值转正/负提示趋势变化。

  • 示例代码

    mom = talib.MOM(close, timeperiod=10)
    

17. PLUS_DI (正方向指标)

  • 作用:量化上升趋势的强度。

  • 计算方法:基于正方向移动(+DM)的平滑。

  • 参数

    • timeperiod=14:计算正方向指数的周期(默认14日)。
  • 使用场景:+DI上升表示多头力量增强。

  • 示例代码

    plus_di = talib.PLUS_DI(high, low, close, timeperiod=14)
    

18. PLUS_DM (正方向运动)

  • 作用:衡量价格上涨的动量强度。

  • 计算方法 +DM = 当日最高价 - 前日最高价 \text{+DM} = \text{当日最高价 - 前日最高价} +DM=当日最高价 - 前日最高价(若上涨且满足条件)。

  • 参数

    • timeperiod=14:计算正方向运动的周期(默认14日)。
  • 示例代码

    plus_dm = talib.PLUS_DM(high, low, timeperiod=14)
    

19. PPO (Percentage Price Oscillator) 百分比价格振荡器

  • 作用:MACD的百分比版本,衡量长短EMA差值比例。

  • 计算方法 PPO = EMA ( 短周期 ) − EMA ( 长周期 ) EMA ( 长周期 ) × 100 \text{PPO} = \frac{\text{EMA}(短周期) - \text{EMA}(长周期)}{\text{EMA}(长周期)} \times 100 PPO=EMA(长周期)EMA(短周期)EMA(长周期)×100

  • 参数

    • fastperiod=12:快速EMA周期(默认12日)。
    • slowperiod=26:慢速EMA周期(默认26日)。
    • matype=0:移动平均类型(0=SMA,1=EMA,2=WMA等)。
  • 使用场景:零线交叉提示趋势变化。

  • 示例代码

    ppo = talib.PPO(close, fastperiod=12, slowperiod=26, matype=0)
    

20. ROC (Rate of Change) 变动率指标

  • 作用:计算价格N周期的变化率。

  • 计算方法 ROC = Close ∗ t − Close ∗ t − N Close t − N × 100 \text{ROC} = \frac{\text{Close}*t - \text{Close}*{t-N}}{\text{Close}_{t-N}} \times 100 ROC=ClosetNClosetClosetN×100

  • 参数

    • timeperiod=10:计算价格变化率的周期(默认10日)。
  • 使用场景:ROC转正/负提示趋势加速。

  • 示例代码

    roc = talib.ROC(close, timeperiod=10)
    

21. ROCP (变动率百分比)

  • 作用:ROC的百分比版本,直接输出小数形式。

  • 计算方法 ROCP = Close ∗ t − Close ∗ t − N Close t − N \text{ROCP} = \frac{\text{Close}*t - \text{Close}*{t-N}}{\text{Close}_{t-N}} ROCP=ClosetNClosetClosetN

  • 参数

    • timeperiod=10:同ROC周期(默认10日)。
  • 示例代码

    rocp = talib.ROCP(close, timeperiod=10)
    

22. ROCR (变动率比值)

  • 作用:计算价格N周期的比值(非百分比)。

  • 计算方法 ROCR = Close ∗ t Close ∗ t − N \text{ROCR} = \frac{\text{Close}*t}{\text{Close}*{t-N}} ROCR=ClosetNCloset

  • 参数

    • timeperiod=10:同ROC周期(默认10日)。
  • 示例代码

    rocr = talib.ROCR(close, timeperiod=10)
    

23. ROCR100 (变动率比值百分比)

  • 作用:ROCR的百分比版本。

  • 计算方法 ROCR100 = ROCR × 100 \text{ROCR100} = \text{ROCR} \times 100 ROCR100=ROCR×100

  • 参数

    • timeperiod=10:同ROC周期(默认10日)。
  • 示例代码

    rocr100 = talib.ROCR100(close, timeperiod=10)
    

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

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

  • 计算方法 RSI = 100 − 100 1 + 平均涨幅 平均跌幅 \text{RSI} = 100 - \frac{100}{1 + \frac{\text{平均涨幅}}{\text{平均跌幅}}} RSI=1001+平均跌幅平均涨幅100

  • 参数

    • timeperiod=14:计算平均涨幅/跌幅的周期(默认14日)。
  • 使用场景

    • 背离:价格新高但RSI未新高 → 潜在反转。
  • 示例代码

    rsi = talib.RSI(close, timeperiod=14)
    

25. STOCH (随机指标)

  • 作用:比较收盘价与近期价格范围,识别超买/超卖。

  • 计算方法

    • %K = (\frac{\text{Close} - \text{N日最低价}}{\text{N日最高价 - N日最低价}} \times 100)
    • %D = %K的M日移动平均。
  • 参数

    • fastk_period=5:计算原始%K的周期(默认5日)。
    • slowk_period=3:%K的平滑周期(默认3日)。
    • slowk_matype=0:%K的平滑类型(0=SMA)。
    • slowd_period=3:%D的平滑周期(默认3日)。
    • slowd_matype=0:%D的平滑类型(0=SMA)。
  • 使用场景

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

    slowk, slowd = talib.STOCH(high, low, close, fastk_period=5, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0)
    

26. STOCHF (快速随机指标)

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

  • 参数

    • fastk_period=5:原始%K的周期(默认5日)。
    • fastd_period=3:%D的平滑周期(默认3日)。
    • fastd_matype=0:%D的平滑类型(0=SMA)。
  • 示例代码

    fastk, fastd = talib.STOCHF(high, low, close, fastk_period=5, fastd_period=3, fastd_matype=0)
    

27. STOCHRSI (随机RSI)

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

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

  • 参数

    • timeperiod=14:计算RSI的周期(默认14日)。
    • fastk_period=5:对RSI计算%K的周期(默认5日)。
    • fastd_period=3:对%K计算%D的周期(默认3日)。
    • fastd_matype=0:%D的平滑类型(0=SMA)。
  • 示例代码

    stochrsi_k, stochrsi_d = talib.STOCHRSI(close, timeperiod=14, fastk_period=5, fastd_period=3, fastd_matype=0)
    

28. TRIX (三重指数平均)

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

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

  • 参数

    • timeperiod=30:三重EMA平滑的周期(默认30日)。
  • 使用场景:捕捉中长期趋势变化。

  • 示例代码

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

29. ULTOSC (终极振荡器)

  • 作用:结合三个时间周期的加权动量。

  • 计算方法:加权平均短期(7日)、中期(14日)、长期(28日)动量。

  • 参数

    • timeperiod1=7:短期动量周期(默认7日)。
    • timeperiod2=14:中期动量周期(默认14日)。
    • timeperiod3=28:长期动量周期(默认28日)。
  • 使用场景

    • ULTOSC < 30:超卖;ULTOSC > 70:超买。
  • 示例代码

    ultosc = talib.ULTOSC(high, low, close, timeperiod1=7, timeperiod2=14, timeperiod3=28)
    

30. WILLR (威廉指标)

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

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

  • 参数

    • timeperiod=14:计算价格范围的周期(默认14日)。
  • 使用场景

    • %R < -80:超卖;%R > -20:超买。
  • 示例代码

    willr = talib.WILLR(high, low, close, timeperiod=14)
    

使用建议

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

船长Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值