MACD、KDJ、RSI、BIAS在量化中的实际效果:技术分析指标-量化回测
成交量
- 放量(成交量增加)所表明的是买卖双方对目前的价格分歧特别大
- 缩量(成交量减少)所表明的是买卖双方对市场非常的一致,无论是一致的看涨也好还是看跌也罢,核心点是一致
- 缩量上涨:有些股票拉升状态后呈现缩量上涨的格局,很多投资者并不认可这种走势,认为是上升乏力的表现,因为缺乏持续资金进场。事实上这种看法比较片面,缩量上涨虽然表明增量进场比较少,但也反过来说明卖盘不多。成交量缩小还能保持上升态势,说明主力不用多少资金就能拉升股价,实质就是浮筹比较少,即该股已经高度控盘,后市很可能有超强的表现
- 缩量下跌:如果在很低的价格位置,有可能形成底部;如果在价格高位出现,突然放量下跌后,继续缩量下跌,这样的股票比较危险,因为很有可能主力已经出货完毕,缩量下跌只是散户的行为
换手率
- 按时间参数的不同,在使用上又划分日换手率、周换手率
- 除新股外,大多数股票的换手率在 1%~25%
- 70% 的股票换手率低于 3%(分界线),过高的换手率也意味着风险(买卖方分歧大)
- A 股散户多,所以 A 股平均换手率稳居世界前列,为券商共享巨量手续费
量比 & 委比
- 量比:1分钟成交量/过去5日分钟平均交易量,大于 1 表示交易活跃
- 委比:委托买入量/委托卖出量,委比反应的是买:卖的意愿,但是委托是可以撤单的,所以可能不那么准确
总结:均线系统
常见的均线系统(MACD/MA/EMA/KDJ/DKX等…)的使用方法:
- 均线排列:多头/空头排列、收敛/发散趋势
- 均线交叉:金叉、死叉
- 不同均线系统的背离情况
基于价格的均线系统(MACD/MA/EMA/KDJ/DKX等)都有滞后性的问题,如果增加短期的权重可以使其变灵敏,但灵敏的上限=K 线的变化,过于频繁发出信号,比较几种均线系统:
- MACD(12,26):约等于“K 线上站 5MA”
- DK 点:
- D 点 ≈ “K 线上站 5MA”
- K 点 ≈ “D 线跌破 5MA”
- DKX:约等于双均线 MA(5,20),但加上了成交量
- EMA(5,20):MA 的平滑版本
- 20MA+60MA(ETF 之家提供的双均线策略):明显滞后,能躲过一大部分大跌,但是由于滞后性也没机会吃到涨幅
- KDJ:MACD 的神经质版本,频繁的写入信号,对于中长期没法用
MA(移动均线)
移动平均线——MA(Moving Average):当日 MA = 过去 N 天的收盘价求算术平均,类似一个 N 天的滑动窗口
均线的用法
- 股价上站/回踩均线:例如“K线上站5日均线”作为短期趋势
- 均线排列:
- 多头排列:短期均线依次在长期均线上,例如从上向下依次为 5-10-20-40-120
- 空头排列:相反
- 均线交叉:
- 金叉:短期均线上穿长期均线
- 死叉:短期均线下穿长期均线
- 均线收敛/发散:
- 均线间的距离呈收敛 + 向上突破:当多条均线出现收敛(均线值接近)迹象时,表名市场成本趋于一致,此时是买入信号 => 顾比均线
均线的周期
| 均线 | 又称 | 功能 |
|---|---|---|
| 5日均线 | 周线 | |
| 20日均线 | 月线 | 短期趋势 |
| 60日均线 | 季线 | 中期趋势 |
| 120日均线 | 半年线 | 中长期趋势 |
| 250日均线 | 年线 | 长期趋势 |
| 120月均线 | 十年线 | 大经济周期中的超长趋势 |
- 一般以日线 MA5 + MA10 解析短期走势,以 MA30 + MA60 解析中期走势,以 MA120+MA250 解析中长期走势
- 年线、5 年线(月K,MA60)和 10 年线(月K,MA120)的支持性局部增强
不同周期 K 线的均值设置
- 日 K:
- MA(5):周线
- MA(20):月线
- MA(60):季线
- MA(250):年线
- 周 K:「周一的开盘价,周五的收盘价」,有些月份是 4 根K线,有些月份则是 5 根
- MA(60):年
- 月 K:
- MA(12):年
- MA(60):五年
- MA(120):十年
- 15 分钟 K 线,4 根 K 线 = 1 小时,16 根 K 线 = 1 交易日(A 股每天交易市场 4 小时,港股 5.5 小时)这个级别的 K 线在东财上可以看到资金的(大户/小户)分时博弈
- MA(16):天
- MA(80):周
MACD(平滑移动均线)
指数平滑移动平均线(Moving Average Convergence / Divergence,缩写:MACD,港澳台称为指数平滑异同移动平均线)是利用快速移动平均线和慢速移动平均线,在一段上涨或下跌行情中两线之间的差距拉大,而在涨势或跌势趋缓时两线又相互接近或交叉的特征,通过双重平滑运算后研判买卖时机的方法。运用两条平均线相互背离,相互应征的交易法则:当 MACD 从负数转向正数,是买的信号。当 MACD 从正数转向负数,是卖的信号。当 MACD 以大角度变化,表示快的移动平均线和慢的移动平均线的差距非常迅速的拉开,代表了一个市场大趋势的转变。

- 白色线(DIF):**DIF = EMA(close, 12) - EMA(close, 26)**,EMA(close, n) 表示过去 n 日收盘价的指数移动平均
- EMA12:最近 12 日移动平均值 = 前一日EMA12 × 11/13 + 今日收盘价 × 2/13
- EMA26:最近 26 日移动平均值 = 前一日EMA26 × 25/27 + 今日收盘价 × 2/27
- 黄色线(DEA):即再计算上面 DIF 的 9 日 EMA = 前一日DEA × 8/10 + 今日DIF × 2/10
- 红蓝色柱:即为 MACD 柱状图 = (DIF - DEA) × 2,正数为红,负数为绿
- 零轴:在零轴以上,意味着每天的 DIF 大于零(每天的 12EMA 一直大于 26EMA)
MACD 使用 MEA(指数移动平均值)的计算方法,和另一种均线指标 EXPMA(指数平均线)还是有去别的,前者“前一日”权重更大,后者“今日”权重更大;
相比较移动均线(MA)和 MACD,二者都属于“针对过去股价”计算的均线,所有均线都用同样的问题——滞后性,但 MACD 为了弥补这一点,使用了 DIF 差值,DIF 可以认为是长/短周期均值的差,反应变化程度,(对于平滑的曲线,计划变化程度用切线角度,但是 K 线不是“平滑”曲线,故这里也就不用切线斜率,而是用差值,来反应变化的程度)。
所以 MACD 指标的核心就是快慢线的变化趋势,也即 DIF 相较 DIF 的均值(DEA)的变化趋势,如果仅靠观察两条线的敞口大小(收敛趋势 or 发散趋势)不是很直观,为了方便观察快慢线差值变化,MACD 还引入了红绿柱,用红蓝柱体更明显反应两条线之间的差值。
MACD 基本用法
- DIF 向上穿过 DEA 时,被称为“金叉”,这是一个买入信号
- DIF 向下穿过 DEA 时,被称为“死叉”,这是一个卖出信号
- 处于高位且快慢线和 K 线的趋势出现背离 ··· 卖出
参考:
MACD 择时效果量化实测:
- MACD指标在量化策略实战中如何应用?- 知乎 // 结论很有意思
为什么 MACD 的默认参数是 12、26、9(DIFF 参数设置是 12 日和 26 日收盘价的 EMA,DEA 是 9 日 DIFF 的 MEA)?
- 为什么是 12、26 ?
坊间对 “12” 和 “26” 的来历说法都较为一致。相传在 Gerald 发明 MACD 的上世纪 70 年代,漂亮国交易市场仍在 “996”,一周有 6 个交易日,于是 “12” 对应的是两周。每个月有 4 周,一周休息一天,那么 30-4=26,“26” 就是对应的一个月。
但是查了道琼斯工业指数和麦当劳的历史日 K 图,发现一周没有 6 根 Bar,说明至少在漂亮国股票交易市场并没有 “996”,觉得更可能是 Gerald 关注的交易品种一周是交易 6 天,类似于期货从周一上午交易到周六凌晨。 - 为什么是 9 ?
“9” 是每周交易日数目乘以概率密度系数后的结果,其中 1/sqrt(2π) 是标准正态分布的概率密度函数的系数:(1+1/sqrt(2π))∗6≈9
KDJ(随机指标)
KDJ 指标的中文名称又叫随机指标,最早起源于期货市场,由乔治·莱恩(George Lane)首创。随机指标 KDJ 最早是以 KD 指标的形式出现,而KD指标是在威廉指标的基础上发展起来的。不过 KD 指标只判断股票的超买超卖的现象,在 KDJ 指标中则融合了移动平均线速度上的观念,形成比较准确的买卖信号依据。
在实践中,K 线与 D 线配合 J 线组成 KDJ 指标来使用。KDJ 指标在设计过程中主要是研究最高价、最低价和收盘价之间的关系,同时也融合了动量观念、强弱指标和移动平均线的一些优点。因此,能够比较迅速、快捷、直观地研判行情,被广泛用于股市地中短期趋势分析,是期货和股票市场上最常用的技术分析工具。
- RSV(未成熟随机值)的计算较复杂,忽略
- K 值 = 2/3 × 前一日K值 × 1/3 × 当日RSV,变化率介于 D、J 之间
- D 值 = 2/3 × 前一日D值 × 1/3 × 当日K值,D 值可以看作是比 K 更“平均化”的 RSV,变化率最低
- J 值 = 3 × 当日K值 - 2 × 当日D值,反映了 K 和 D 之间的差值,变化率最高
KDJ 主要是用来利用价格波动的真实涨幅来反映价格走势的强弱和超买超卖现象,在价格尚未上升或下降之前发出买卖信号的一种技术工具。它在设计过程中主要研究最高价、最低价和收盘价之间的关系,同时也融合了动量观念、强弱指标和移动平均线的一些优点,因此,能够比较迅速、快捷、直观地研判行情。由于KDJ线本质上是一个随机波动的观念,故其对于掌握中短期行情走势比较准确。
KDJ基本用法
- K/D 指标的交叉类似快慢 MA,K 线向上突破 D 线时金叉,K 线从上方下穿 D 线时死叉
- K/D/J 三个值都大于 80,进入超买(大部分人只愿意买,股价被推高)区域,后续下跌的可能性变大
- K/D/J 三个值都小于 20,进入超卖(大部分人只愿意卖,股价被拉低)区域,后续反弹的可能性变大
- KDJ在进入超买/超卖区域后,容易出现钝化(3条线变得纠缠)
- KDJ 适用于短期买卖点,一般和长期 MACD 配合使用
RSI(强弱指标)
相对强弱指标(Relative Strength Index),RSI 强弱指标是根据一定时期内上涨和下跌幅度之和的比率制作出的一种技术曲线。能够反映出市场在一定时期内的景气程度。是由威尔斯.威尔德(Welles Wilder)最早应用于期货买卖,后来人们发现在众多的图表技术分析中,强弱指标的理论和实践极其适合于股票市场的短线投资,于是被用于股票升跌的测量和分析中。
技术方法:
1 | N 日 RSI = A /(A+B)× 100,其中: |
由上面算式可知 RSI 指标的技术含义,即以向上的力量与向下的力量进行比较,若向上的力量较大,则计算出来的指标上升;若向下的力量较大,则指标下降,由此测算出市场走势的强弱。
RSI基本用法
RSI 值范围在 0-100,”强”和”弱”以 50 作为分界线:
- RSI > 50,表明市场进入强市,可以考虑买入
- RSI > 80,表明买入力量极强,可以进入超买区,后市回调的机会增加
- RSI < 50,表明市场进入弱市,可以考虑卖出
- RSI < 20,表明卖出力量极强,可以进入超卖区,后市反弹的机会增加
具体使用时,三条不同周期的 RSI 类似多周期均线,“金叉”/“死叉”,多头排列/空头排列,敞口收敛/发散…也适用于多周期 RSI;
BIAS(乖离率指标)
BIAS 乖离率指标是测量股价偏离均线大小程度的指标。当股价偏离市场平均成本太大时,都有一个回归的过程,即所谓的“物极必反”。乖离率是指股价与平均移动线之间的偏离程度,通过百分比的形式来表示股价与平均移动线之间的差距。如果股价在均线之上,则为正值;如果股价在均线之下,则为负值。乖离率最早来源于葛兰维的平均线定律,它的理论基础主要从投资者心理角度来分析,当股价偏离市场平均成本太大时,都有一个回归的过程,即所谓的“物极必反”,因为均线可以代表平均持仓成本,利好利空的刺激,造成股价出现暴涨暴跌。
BIAS 指标有三条指标线,N 的参数一般设置为 6 日、12 日、24 日,从 BIAS 的计算过程可以看出,其值 = 最近一天价格,相较过去 N 日均价的波动程度,由于只是简单的算术平均,没有归一化,导致绝对值上下限波动大,且回复性并不怎么好;
因为BIAS三条线也属于快慢线,所以均线的用法(多空排列、上穿下穿)也适用于BIAS,绝对值越大=波动越大;
实际对BIAS的应用,是均值回归。大盘指数的均值回复性比个股更好;
如果是振荡期,BIAS 三条线纠缠,绝对值也不大(=波动不大);
但如果出现过大的波动(上涨/下跌),则反向做,即出现正值的大波动开始做空,出现负值的大波动开始做多;
EMA(指数平均数)
EXPMA 指标简称 EMA,中文名字指数平均数指标,一种趋向类指标,从统计学的观点来看,只有把移动平均线(MA)绘制在价格时间跨度的中点,才能够正确地反映价格的运动趋势,但这会使信号在时间上滞后,而EXPMA指标是对移动平均线的弥补,EXPMA指标由于其计算公式中着重考虑了价格当天(当期)行情的权重。EXPMA=(当日收盘价-上一日EXPMA)/N + 上一日EXPMA
GMMA(顾比均线)
顾比均线: GMMA(Guppy Multiple Moving Average)—— 顾比复合移动平均线,简称顾比均线
- 顾比均线由两组均线构成,分别是长期组(黄线部分)和短期组(蓝线部分)。
- 短期组 6 根均线,分别是 3、5、8、10、12 和 15 日(周、月)平均线;
- 长期组也是 6 根均线,分别是 30、35、40、45、50 和 60 日(周、月)平均线。
顾比均线使用:短期均线组和长期均线组,分别反映了短线交易者和中长期投资者的行为,当这两组指标相互靠近的时候,说明投资者和投机者对于证券的价值有了共识,而当两组相互远离的时候,就说明对价值产生了分歧
从偏股混合基金指数2005年以来的月线图来看,
- 在顾比均线短期组完全上穿长期组时买入,是偏右侧的买入时机;
- 在 K 线下穿长期和短期均线时,是偏左侧的买入时机

布林(BOLL)线
在所有的指标计算中,BOLL 指标的计算方法是最复杂的之一,其中引进了统计学中的标准差概念,涉及到中轨线(MB)、上轨线(UP)和下轨线(DN)的计算。
另外,和其他指标的计算一样,由于选用的计算周期的不同,BOLL 指标也包括日 BOLL 指标、周 BOLL 指标、月 BOLL 指标、年 BOLL 指标以及分钟 BOLL 指标等各种类型。
经常被用于股市研判的是日 BOLL 指标和周 BOLL 指标。虽然它们的计算时的取值有所不同,但基本的计算方法一样。
以日 BOLL 指标计算为例,其计算方法如下:
- 中轨线 = N日的移动平均线 // 一般用20日MA
- 上轨线 = 中轨线+两倍的标准差
- 下轨线 = 中轨线-两倍的标准差
布林线的理论使用原则:1是均值回复,主要是 K 线穿过上/下轨时,可能出现反向走势;2 是排列,3 线敞口收敛/发散、3 线方向;
BOLL指标使用规则
(1)买卖信号:
- 当股价 K 线带量向上突破布林线的上轨,并且 TRIX 指标也已经发出底位“金叉”时,说明股价即将进入一个中长期上升通道之中,这是 BOLL 指标发出的买入信号。
- 当布林线轨道很长一段时间的底位窄幅水平运动后,一旦股价K线带量向上突破布林线的上轨,同时原本狭窄的布林线通道突然开口向上时,说明股价即将脱离原来的水平运行通道、进入新的上升通道之中,这也是 BOLL 指标发出的买入信号。
- 当股价 K 线向下突破布林线的中轨,并且 TRIX 指标也在已经发出高位“死叉”时,说明股价即将进入一个中长期下降通道之中,这是 BOLL 指标发出的卖出信号。
- 当布林线轨道很长一段时间的高位窄幅水平运动后,一旦股价K线向下突破布林线的下轨,同时原本狭窄的布林线通道突然开口向下时,说明股价即将脱离原来的水平运行通道、进入新的下降通道之中,这也是BOLL指标发出的卖出信号。
(2)持股持币信号:
- 当布林线开口向上后,只要股价K线始终运行在布林线的中轨上方的时候,说明股价一直处在一个中长期上升轨道之中,这是 BOLL 指标发出的持股待涨信号,如果 TRIX 指标也是发出持股信号时,这种信号更加准确。
- 当布林线开口向下后,只要股价K线始终运行在布林线的中轨下方的时候,说明股价一直处在一个中长期下降轨道之中,这是 BOLL 指标发出的持币观望信号,如果 TRIX 指标也是发出持币信号时,这种信号更加准确。