泻药。本人不是 MACD 之父 John Wilhelm 的老邻居的远房亲戚,从来没见过 John 本人,也不知道他本人是否乐于帮助年轻人提高技术分析的知识水平。
8 I9 o7 ^; D1 ^9 j/ q<hr/>首先我们来学习下 MACD 是怎么计算的:, y5 Q1 a1 b' |1 }4 N% M l' V
( h; f: R- J& h1 L4 w2 ]) jMACD指标包含了如下3个序列(参考 https://www.tradingview.com/wiki/MACD_(Moving_Average_Convergence/Divergence) ): g. h" ?2 Y: q2 q* x
MACD Line: (12-day EMA - 26-day EMA) : D7 R! j- |3 `2 Y2 N$ X
Signal Line: 9-day EMA of MACD Line& E! z E- Z6 E9 `8 Q( V
MACD Histogram: MACD Line - Signal Line 这几个算式很简单,不过你可能疑惑,什么是 EMA? 完整的解释可以参考 https://www.tradingview.com/wiki/Moving_Average#Exponential_Moving_Average_.28EMA.29 , 大致理解成它就是加权了的移动平均数(MA / SMA)。某个时间点的 MA(3), 就是指往前最近3个点的平均值。EMA 可以理解为加权平均,越近的时间权重越高。 T" g1 T' Q5 C
跑个题,股票数据是离散的,一笔笔交易变成一个个tick, 聚合成一根根的K线。而大部分人所熟知的数学世界的数据是连续的。比如股价 12.11 和 12.12 之间不会存在其他数字,而数学世界里大部分人的认知是连续的,12.11 和 12.12之间还有无限个数字点。7 y: Y( s/ a) U0 u% l
股价虽然跳来跳去,但是肉眼看起来却是有规律的,我们能明显感受到趋势:上涨、下跌、横盘。为了方便总结趋势,聪明人发明了均线(Moving Average), 之后又出现了 WMA, EMA 等变种。但本质上都差不多,使趋势变得明显。
* u# o- C& c0 l$ v' x, D4 z& S) N/ jMACD Line 有3个输入参数,默认值ShortPeriod=12, LongPeriod=26, SignalPeriod=9. 为了方便理解 MACD, 我们取尽可能小的值来画个图帮助我们理解 MACD.
, K# V3 Z! K# ?( _0 D3 G假设股价现在处在一个稳定波动的状态,而且是个完美的正弦曲线: , MACD 计算取尽可能小的值 ShortPeriod=2, LongPeriod3, SignalPeriod=2. 就会得到如下曲线:
0 f* k! Z% J! I" Y) n
- `4 Z( u, ]4 _![](http://pica.zhimg.com/v2-0ba6669996606558c2f29c393e54199f_r.jpg?source=1940ef5c)
4 f& I9 E6 ?: j/ T# G
, T; b5 z- ]- X图1. 蓝线为价格,看左侧Y轴;黄绿红为MACD的3个指标,看右侧Y轴
& B6 T/ S9 H8 ?! {1 @
! |! o% @* R m+ n( q4 i我们会发现,黄色的MACD Line 有点像 , 绿色的 Signal Line 是 MACD Line 的均线,差不多也是 。红色的MACD Histogram 有点像 . 是不是有点熟悉?
% u1 \. H' c% n. O8 q8 [没错,这是三角函数的导数:2 s7 v) }: a, ]7 M
e( g+ S9 ?; [+ p
![](data/attachment/forum/202112/28/171053xqpwe7fe5an6euar.svg)
! r% d' d Z* M1 ^2 d5 h1 i! \也就是说 MACD Line, Signal Line 是平滑后的股价的一阶导数,MACD Histogram是平滑后股价的二阶导数。这么说有点问题,因为我们的数据是离散的不是连续的,不可导。但精神上可以差不多这么理解。" J: D0 v- O" h3 e
<hr/>好啦,明白了 MACD 指标几个数字的原理我们来实践一下吧!
0 k- q+ E. f# N" ] P3 c' Y0 I/ W! M. J3 f4 \
% A# Z& J1 m. w- j7 _8 a) q( n+ S2 |![](http://pica.zhimg.com/v2-9971b48349ec6995b804b7aaf4e421b2_r.jpg?source=1940ef5c)
7 ^1 N" Q! I0 [, G$ P& a8 p/ l1 I7 ~% u& S, W! `9 j9 o& o) _. w
图2. 蓝线为价格,看左侧Y轴;黄绿红为MACD的3个指标,看右侧Y轴% ~" n: r/ U. q( n% ~3 a' V
, m" j3 u r0 l上面这个 MACD 的线,计算的参数用的默认的MACD参数算的。可以看到效果非常好,MACD默认参数就可以帮助我们捕捉大趋势行情,辅助我们做趋势交易。
" `& _' W' [, B6 d( s v* r' pMACD的改进4 I: M# S- f9 L! s( @/ D
Y; W, D% o) M/ {5 D
在实际使用过程中,我们往往有对比历史 MACD Histogram 值的情况,但是观察MACD的算式我们会发现这个地方有点问题。同一只股票,10年前的某一段时间,股价从 10块涨了10%涨到了11块,最近的某一段时间,股价从80块涨了10%涨到了88块。虽然都是涨了10%, 但是计算MACD Line的时候它们的值可能涨了8倍,这种情况下我们的解决办法是对价格取对数。也就是说,在对比一段价格变化幅度很大的股票价格序列时, MACD(Log(ClosePrice), 12, 26, 9) 比 MACD(ClosePrice, 12, 26, 9) 更好。如果价格变化幅度不大,用不用取Log变化不大。) c$ Q- E# O+ k0 s+ V
<hr/> 总结* }$ f( W3 g( v$ P
* v$ j5 \6 J0 v h) [% q本文告诉我们,不管看起来多么美,MACD不能用来预测未来的价格。
0 C3 ]# U" d |! y# q如果你是个好奇心宝宝,可能已经注意到图2的标题了。图2是我用随机数生成的,每一天的涨跌都是一个符合正态分布的随机数。" D. H, g1 b9 C( M1 f- n; ]( I1 _
: r" z* k4 H) K' j' f2 e: N你能预测下一个随机数吗,上帝同志?
. A0 U2 z* H# ~, y2 ?你能预测下一个随机数吗,上帝同志?
( k7 C" E/ X& E; T8 m- h, l# ]/ g你能预测下一个随机数吗,上帝同志?( \$ Q) k: X( b! C7 _9 @
如果你一定要问我,MACD什么参数是最好的。我可以明确的告诉你,默认参数就是醉猴的,因为用的人最多。! w$ f; L* `& U4 i. B9 }8 f
「世界上本没有路,走的人多了,也便成了路。」—— 鲁迅 图片由如下代码生成:- L7 Z! H" y) O' x) \
Jupyter Notebook Viewer |