速查手册:TA-Lib 超过150种量化技术指标计算全解 - 2. Momentum Indicators(动量指标)
速查手册:TA-Lib 超过150种量化技术指标计算全解 - 2. Momentum Indicators(动量指标)
TA-Lib(Technical Analysis Library)是广泛使用的金融技术分析库,实现了超过150种技术指标计算函数,适用于股票、期货等金融数据的技术分析,帮助用户进行量化研究和交易策略开发。
文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。适合量化新手建立系统认知,为策略开发打下基础。
目录
- Overlap Studies(重叠指标)
- Momentum Indicators(动量指标)
- Volume Indicators(成交量指标)
- Volatility Indicators(波动率指标)
- Cycle Indicators(周期指标)
- Price Transform(价格变换)
- Pattern Recognition(模式识别)
- Statistic Functions(统计函数)
- Math Transform(数学变换)
- 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 未新高 → 潜在反转。
- 超买/超卖区域结合趋势方向使用(如上升趋势中超卖更可信)。
 
-  示例代码: 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) 平均趋向指数
 
-  作用:量化趋势强度(非方向),值越大趋势越强。 
-  计算方法: - 计算 +DI(正向动向)和 -DI(负向动向)。
- 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} 2ADX∗t+ADX∗t−N(默认 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 Up−Aroon 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. 使用建议
- 组合策略: - RSI + MACD:RSI 确认超买/超卖,MACD 触发交易信号。
- ADX + SAR:ADX 判断趋势强度,SAR 提供动态止损点。
 
- 参数调优: - 震荡市缩短周期(如 RSI 用 7 日),趋势市延长周期(如 ADX 用 20 日)。
 
- 验证信号: - 结合成交量(如 MFI)或波动率(如 ATR)过滤虚假信号。
 
风险提示与免责声明
本文内容基于公开信息研究整理,不构成任何形式的投资建议。历史表现不应作为未来收益保证,市场存在不可预见的波动风险。投资者需结合自身财务状况及风险承受能力独立决策,并自行承担交易结果。作者及发布方不对任何依据本文操作导致的损失承担法律责任。市场有风险,投资须谨慎。
