大家炒股的时候是不是经常遇到这种情况: 👉 有人拿均线去判断超买超卖,有人拿RSI当成趋势指标用,有人把布林带当成支撑阻力线死磕......
结果呢?指标越用越乱,最后反而被"指标骗炮"😂。
其实,技术指标不是随便用的,它们有不同的分类和用途。今天我就帮大家理一理常见指标的分类,并且教你用 Python 轻松实现,避免走弯路。
一、技术指标分类(重点!)
关于技术指标分类花姐查阅了好多权威学术文档,总体上可以归纳为以下几种分类方式:
-
四类分类法:趋势指标(Trend indicators)、动量指标(Momentum indicators)、波动率指标(Volatility indicators)和成交量指标(Volume indicators)。
-
三类分类法:趋势、动量和成交量。
-
其他分类方式:有些资料提到,技术指标还可以根据预测趋势的不同(如趋势跟随型、振荡器型)或时间特性(如领先指标、滞后指标)进行分类。还有按照绝对技术指标和相对技术指标的分类。
综合来看,最常见且被广泛接受的分类方式是四类分类法,即趋势、动量、成交量和波动率指标。所以这篇文章花姐也是按照这个分类方法来写。

1. 趋势指标(Trend indicators)
👉 用于识别价格运行方向及趋势强度,趋势方向是上升还是下降等。
移动平均类:
- 简单移动平均线(SMA)
- 指数移动平均线(EMA)
- 加权移动平均线(WMA)
- 双指数移动平均线(DEMA)
趋势跟踪类:
- 移动平均收敛发散(MACD)
- 布林带(Bollinger Bands, BBANDS)
- 抛物线停损点(Parabolic SAR)
- 平均方向指数(ADX)
- 三重指数平均线(TRIX)
应用场景:顺势交易,看大盘或者个股是上涨趋势还是震荡。
2. 动量指标(Momentum indicators)
👉 动能指标有的人也会叫动量指标,其实都是一个。衡量价格变化速度及反转信号,用来判断当前上涨/下跌的力度,是否"有劲儿"。
振荡器类:
- 相对强弱指数(RSI)
- 随机振荡器(Stochastic Oscillator, %K/%D)
- 威廉百分比(Williams %R)
- 动量指标(MOM)
复合指标:
- 商品通道指数(CCI)
- 真实强弱指数(TSI)
- 变化率(Rate of Change, ROC)
应用场景:判断超买超卖,或者趋势可能衰竭。
3. 波动率指标(Volatility indicators)
👉 衡量价格波动幅度及潜在突破点。
波动范围类:
- 平均真实波幅(ATR)
- 布林带宽度(Bollinger Bands Width)
- 标准化平均真实波幅(NATR)
衍生指标:
- 查金波动率(Chaikin Volatility)
- 真实波幅(TRANGE)
应用场景:判断风险水平、止损位置。
4. 成交量指标(Volume indicators)
👉 分析成交量和价格的关系。
量价结合类:
- 平衡成交量(OBV)
- 查金资金流(Chaikin Money Flow, CMF)
- 累积/分配线(Accumulation/Distribution Line, AD)
成交量衍生类:
- 成交量价格趋势(VPT)
- 负成交量指数(NVI)
- 查金振荡器(ADOSC)
应用场景:确认趋势是否有量能支撑。
重点提醒
分类并不是绝对的,也有分歧,比如MACD指标,有些文献将其列为动量但更多的文献显示它归属于趋势指标。 还有布林带归类,部分文献将其列为动量指标,但跟多的是归类到趋势指标。上面的分类也是花姐按照公认的分类来分的。
二、用Python实现技术指标
很多朋友一上来就去装 TA-Lib ,结果发现安装特别麻烦(尤其是 Windows 用户,编译一大堆报错...)。之前花姐还专门写了一篇文章介绍如何安装TA-Lib 有兴趣的可以参考下👇 《史上最强量化工具库 Ta-Lib 从入门到精通,一篇文章就够了!》
其实除了TA-Lib 有个更轻量的选择:ta
库(纯 Python 实现,免编译,pip 一行就能搞定)。
安装非常简单:
bash
pip install ta
1. 趋势指标示例
python
import pandas as pd
import yfinance as yf
import ta
# 下载苹果的股票数据
data = yf.download("AAPL", start="2022-01-01", end="2023-01-01")
# 均线
data['ma_20'] = ta.trend.SMAIndicator(data['Close'], window=20).sma_indicator()
# MACD
macd = ta.trend.MACD(data['Close'])
data['macd'] = macd.macd()
data['macd_signal'] = macd.macd_signal()
data['macd_diff'] = macd.macd_diff()
2. 动能指标示例
python
# RSI
data['rsi'] = ta.momentum.RSIIndicator(data['Close'], window=14).rsi()
# 随机指标 Stochastic
stoch = ta.momentum.StochasticOscillator(
high=data['High'], low=data['Low'], close=data['Close'], window=14, smooth_window=3
)
data['stoch'] = stoch.stoch()
data['stoch_signal'] = stoch.stoch_signal()
3. 波动率指标示例
python
# 布林带
bb = ta.volatility.BollingerBands(data['Close'], window=20, window_dev=2)
data['bb_mavg'] = bb.bollinger_mavg()
data['bb_high'] = bb.bollinger_hband()
data['bb_low'] = bb.bollinger_lband()
# ATR
data['atr'] = ta.volatility.AverageTrueRange(
high=data['High'], low=data['Low'], close=data['Close'], window=14
).average_true_range()
4. 成交量指标示例
python
# OBV
data['obv'] = ta.volume.OnBalanceVolumeIndicator(
close=data['Close'], volume=data['Volume']
).on_balance_volume()
# MFI
data['mfi'] = ta.volume.MFIIndicator(
high=data['High'], low=data['Low'], close=data['Close'], volume=data['Volume'], window=14
).money_flow_index()
三、小白必学的组合指标应用场景
光看单个指标,很多时候信号会"失真";把不同类别的指标组合起来,效果往往更靠谱。这里我列几个常见的小白友好型组合有兴趣的可以深入研究研究:
1. 趋势 + 动能:均线 + RSI
-
思路:
- 均线(趋势类)帮你看整体方向。
- RSI(动能类)帮你看是不是超买超卖。
-
应用场景:
- 当价格在均线上方,且 RSI 在 30~50 区间向上 → 趋势健康,回调结束,可以考虑低吸。
- 当价格在均线下方,且 RSI > 70 → 下跌趋势里的超买,容易假突破,谨慎追高。
2. 趋势 + 波动率:MACD + ATR
-
思路:
- MACD 依然负责判断趋势方向和强弱。
- ATR 衡量波动大小,可以辅助判断趋势的可靠性。
-
应用场景:
- MACD 上穿零轴 ,趋势转强,同时 ATR 明显放大 → 市场进入顺势行情,趋势更容易走远。
- MACD 出现金叉 ,但 ATR 持续走低 → 趋势可能是假信号,后续上涨空间有限。
3. 动能 + 成交量:RSI + OBV
-
思路:
- RSI 看资金是不是过热/过冷。
- OBV 看成交量是不是跟上了。
-
应用场景:
- RSI 从低位反弹,同时 OBV 创出新高 → 动能+量能齐发,反弹更可靠。
- RSI 超买,但 OBV 没有放量跟随 → 很可能是假突破。
4. 波动率 + 成交量:ATR + MFI
-
思路:
- ATR 衡量波动率。
- MFI 看资金流向。
-
应用场景:
- ATR 明显放大,同时 MFI 上升 → 市场进入活跃阶段,资金推动大波动,适合短线机会。
- ATR 放大但 MFI 下跌 → 资金流出,波动只是恐慌,不宜贸然进场。
四、实战小技巧
- 不同类别的指标结合,才能避免"盲人摸象"。
- 趋势类优先:先确定市场有没有趋势,再去用动能或成交量来确认。
- 指标别贪多:2~3 个组合就够,小白常见误区是把十几个指标都往图上一堆,结果全是噪音。
今天关于技术指标分类的文章就到这里了,希望看完文章以后你有所收获。