1
MACD指标的原理
MACD指标是根据均线的构造原理,对金融资产价格的收盘价进行平滑处理,求出算术平均值以后再进行计算,是一种趋向类指标。MACD指标是运用快速(短期)和慢速(长期)移动平均线及其聚合与分离的征兆,加以双重平滑运算。而根据移动平均线原理发展出来的MACD,一则去除了移动平均线频繁发出假信号的缺陷,二则保留了移动平均线的效果,因此,MACD指标具有均线趋势性、稳重性、安定性等特点,是用来研判买卖时机,预测价格涨跌的技术分析指标 。
MACD指标主要是通过EMA、DIF和DEA(或叫MACD、DEM)这三值之间关系的研判,DIF和DEA连接起来的移动平均线的研判以及DIF减去 DEM值而绘制成的柱状图(BAR)的研判等来分析判断行情,预测价格中短期趋势的主要的技术分析指标。其中,DIF是核心,DEA是辅助。DIF是快速平滑移动平均线(EMA1)和慢速平滑移动平均线(EMA2)的差。BAR柱状图用红柱和绿柱的收缩来研判行情。
2
MACD计算方法
MACD 是根据移动平均线较易掌握趋势变动的方向之优点所发展出来的,它是利用二条不同速度:一条变动的速率快──短期的移动平均线(一般采用周期为12),另一条较慢──长期的移动平均线(一般采用周期为26)的指数平滑移动平均线来计算二者之间的差离状况(DIF)作为研判行情的基础,然后再求取其DIF的9日平滑移动平均线,即MACD线。MACD实际就是运用快速与慢速移动平均线聚合与分离的征兆,来研判买进与卖进的时机和讯号。
3
MACD指标的具体运用
MACD在应用上,主要是围绕快速和慢速两条均线及红、绿柱线状况和它们的形态展开。一般分析方法主要包括DIF指标和DEA值及它们所处的位置、DIF和DEA的交叉情况、红绿柱状的收缩情况和DEA图形的形态这四个大的方面分析。
(一)DIF和DEA的值及线的位置
1、当DIF和DEA均大于0(即在图形上表示为它们处于零线以上)并向上移动时,一般表示处于多头行情中,可以买入或持有。
2、当DIF和DAE均小于0(即在图形上表示为它们处于零线以下)并向下移动时,一般表示处于空头行情中,可以卖出或观望。
3、当DIF和DEA均大于0(即在图形上表示为它们处于零线以上)但都向下移动时,一般表示处于退潮阶段,市场将下跌,可以卖出和观望。
4、当DIF和DEA均小于0时(即在图形上表示为它们处于零线以下)但向上移动时,一般表示为行情即将启动,市场将上涨,可以买进或持有待涨。
(二)DIF和DEA的交叉情况(“金叉”与“死叉”)
1、当DIF与DEA都在零线以上,而DIF向上突破DEA时,表明市场处于一种强势之中,价格将再次上涨,可以加码买进或持有待涨,这就是MACD指标“黄金交叉”的一种形式。
2、当DIF和DEA都在零线以下,而DIF向上突破DEA时,表明市场即将转强,价格跌势已尽将止跌朝上,可以开始买进或持有,这是MACD指标“黄金交叉”的另一种形式。
3、当DIF与DEA都在零线以上,而DIF却向下突破DEA时,表明市场即将由强势转为弱势,价格将大跌,这时应卖出而不能买进,这就是MACD指标的“死亡交叉”的一种形式。
4、当DIF和DEA都在零线以上,而DIF向下突破DEA时,表明市场将再次进入极度弱市中,价格还将下跌,可以再卖出或观望,这是MACD指标“死亡交叉”的另一种形式。
(三)MACD指标中的柱状图分析
通常采用DIF值减DEA(即MACD、DEM)值而绘制成柱状图,用红柱状和绿柱状表示,红柱表示正值,绿柱表示负值。用红绿柱状来分析行情,既直观明了又实用可靠。
1、当红柱状持续放大时,表明市场处于牛市行情中,价格将继续上涨,这时应持有待涨或短线买入,直到红柱无法再放大时才考虑卖出。
2、当绿柱状持续放大时,表明市场处于熊市行情之中,价格将继续下跌,这时应持币观望或卖出,直到绿柱开始缩小时才可以考虑少量买入。
3、当红柱状开始缩小时,表明市场牛市即将结束(或要进入调整期),价格将大幅下跌,这时应卖出大部分而不能买入。
4、当绿柱状开始收缩时,表明市场的大跌行情即将结束,价格将止跌向上(或进入盘整),这时可以少量进行长期战略建仓而不要轻易卖出。
5、当红柱开始消失、绿柱开始放出时,这是市场转市信号之一,表明市场的上涨行情(或高位盘整行情)即将结束,价格将开始加速下跌,这时应开始卖出大部分而不能买入。
6、当绿柱开始消失、红柱开始放出时,这也是市场转市信号之一,表明市场的下跌行情(或低位盘整)已经结束,价格将开始加速上升,这时应开始加码买入或持有待涨。
4
基于MACD指标的债券高频量化交易设计思路
(一)DIF、DEA指标计算
1.设定计算DIF的短周期为12,长周期为26;
2.DEA的计算周期为9;
3.调用函数:[DIF,DEA,MACDValue]=MACD(价格,12,26,9);
4.差离值(DIF)的计算: DIF = EMA12 – EMA26 ,调用函数DIF=EMA(价 格,12)-EMA(价格,26);
5.MACD值计算:MACDValue=2*(DIF-DEA)。
(二)绘制单支债券的MACD
本次基于MACD指标的债券高频量化交易,采用中债估值净价来绘制单支债券的净价走势图、均线图和MACD图,只需将每天中债估值净价导入(也可采用Wind的量化接口,自动提取中债估值净价),程序会自动绘制单支债券走势图、均线图和MACD图,通过绘制债券的MACD再结合设定的条件程序会自动寻找单支债券的买入点、卖出点、止损点。本文以债市中较为活跃的国开170210为例,获取170210从2017年4月10日至2018年3月2日的中债估值净价(方便计算投资收益)。如下表:
170210债券估值净价 | ||||||||
期数 | 日期 | 估值净价 | 期数 | 日期 | 估值净价 | 期数 | 日期 | 估值净价 |
1 | 2017-04-10 | 99.7220 | 77 | 2017-07-27 | 98.7679 | 153 | 2017-11-16 | 94.4967 |
2 | 2017-04-11 | 99.7364 | 78 | 2017-07-28 | 98.7334 | 154 | 2017-11-17 | 94.3620 |
3 | 2017-04-12 | 99.9286 | 79 | 2017-07-31 | 98.5258 | 155 | 2017-11-20 | 94.2349 |
4 | 2017-04-13 | 99.9082 | 80 | 2017-08-01 | 98.4584 | 156 | 2017-11-21 | 93.9622 |
5 | 2017-04-14 | 99.6557 | 81 | 2017-08-02 | 98.4703 | 157 | 2017-11-22 | 92.9599 |
6 | 2017-04-17 | 99.3544 | 82 | 2017-08-03 | 98.4297 | 158 | 2017-11-23 | 92.9452 |
7 | 2017-04-18 | 99.3744 | 83 | 2017-08-04 | 98.3816 | 159 | 2017-11-24 | 93.5674 |
8 | 2017-04-19 | 99.3943 | 84 | 2017-08-07 | 97.9972 | 160 | 2017-11-27 | 93.4646 |
9 | 2017-04-20 | 99.1942 | 85 | 2017-08-08 | 97.8936 | 161 | 2017-11-28 | 93.1859 |
10 | 2017-04-21 | 98.9248 | 86 | 2017-08-09 | 97.8733 | 162 | 2017-11-29 | 93.5625 |
11 | 2017-04-24 | 98.6268 | 87 | 2017-08-10 | 98.0117 | 163 | 2017-11-30 | 93.6159 |
12 | 2017-04-25 | 99.0444 | 88 | 2017-08-11 | 98.1971 | 164 | 2017-12-01 | 93.7502 |
13 | 2017-04-26 | 99.0145 | 89 | 2017-08-14 | 98.3077 | 165 | 2017-12-04 | 93.8309 |
14 | 2017-04-27 | 99.0424 | 90 | 2017-08-15 | 98.3176 | 166 | 2017-12-05 | 93.9354 |
15 | 2017-04-28 | 98.8953 | 91 | 2017-08-16 | 98.1544 | 167 | 2017-12-06 | 94.0020 |
16 | 2017-05-02 | 98.6672 | 92 | 2017-08-17 | 98.2163 | 168 | 2017-12-07 | 94.1079 |
17 | 2017-05-03 | 98.5881 | 93 | 2017-08-18 | 98.1270 | 169 | 2017-12-08 | 93.9533 |
18 | 2017-05-04 | 98.2133 | 94 | 2017-08-21 | 97.9453 | 170 | 2017-12-11 | 93.5837 |
19 | 2017-05-05 | 98.2238 | 95 | 2017-08-22 | 97.8309 | 171 | 2017-12-12 | 93.4459 |
20 | 2017-05-08 | 97.9880 | 96 | 2017-08-23 | 97.7778 | 172 | 2017-12-13 | 93.4355 |
21 | 2017-05-09 | 97.4997 | 97 | 2017-08-24 | 97.6404 | 173 | 2017-12-14 | 93.6524 |
22 | 2017-05-10 | 97.2667 | 98 | 2017-08-25 | 97.5092 | 174 | 2017-12-15 | 93.8389 |
23 | 2017-05-11 | 97.6760 | 99 | 2017-08-28 | 97.3702 | 175 | 2017-12-18 | 93.6991 |
24 | 2017-05-12 | 97.4426 | 100 | 2017-08-29 | 97.5052 | 176 | 2017-12-19 | 93.6126 |
25 | 2017-05-15 | 97.8335 | 101 | 2017-08-30 | 97.4890 | 177 | 2017-12-20 | 93.4498 |
26 | 2017-05-16 | 97.6874 | 102 | 2017-08-31 | 97.5445 | 178 | 2017-12-21 | 93.3940 |
27 | 2017-05-17 | 97.7560 | 103 | 2017-09-01 | 97.4592 | 179 | 2017-12-22 | 93.6400 |
28 | 2017-05-18 | 97.9027 | 104 | 2017-09-04 | 97.3409 | 180 | 2017-12-25 | 93.4820 |
29 | 2017-05-19 | 97.8036 | 105 | 2017-09-05 | 97.1758 | 181 | 2017-12-26 | 93.2923 |
30 | 2017-05-22 | 97.4754 | 106 | 2017-09-06 | 97.3872 | 182 | 2017-12-27 | 93.2755 |
31 | 2017-05-23 | 97.4952 | 107 | 2017-09-07 | 97.7352 | 183 | 2017-12-28 | 93.3561 |
32 | 2017-05-24 | 97.6023 | 108 | 2017-09-08 | 97.9094 | 184 | 2017-12-29 | 93.4691 |
33 | 2017-05-25 | 97.4862 | 109 | 2017-09-11 | 97.7524 | 185 | 2017-12-30 | 93.3445 |
34 | 2017-05-26 | 97.4672 | 110 | 2017-09-12 | 97.7317 | 186 | 2017-12-31 | 93.3441 |
35 | 2017-05-27 | 97.6494 | 111 | 2017-09-13 | 97.6693 | 187 | 2018-01-02 | 93.2663 |
36 | 2017-05-31 | 97.6534 | 112 | 2017-09-14 | 97.9495 | 188 | 2018-01-03 | 93.1614 |
37 | 2017-06-01 | 97.6345 | 113 | 2017-09-15 | 97.9139 | 189 | 2018-01-04 | 92.8903 |
38 | 2017-06-02 | 97.5890 | 114 | 2017-09-18 | 97.7748 | 190 | 2018-01-05 | 92.9561 |
39 | 2017-06-05 | 97.6515 | 115 | 2017-09-19 | 97.8945 | 191 | 2018-01-08 | 92.8956 |
40 | 2017-06-06 | 97.5250 | 116 | 2017-09-20 | 97.8782 | 192 | 2018-01-09 | 92.8898 |
41 | 2017-06-07 | 97.5979 | 117 | 2017-09-21 | 97.6961 | 193 | 2018-01-10 | 92.5472 |
42 | 2017-06-08 | 97.5963 | 118 | 2017-09-22 | 97.8163 | 194 | 2018-01-11 | 92.3770 |
43 | 2017-06-09 | 97.6556 | 119 | 2017-09-25 | 97.9298 | 195 | 2018-01-12 | 92.4733 |
44 | 2017-06-12 | 98.1439 | 120 | 2017-09-26 | 97.8470 | 196 | 2018-01-15 | 92.1992 |
45 | 2017-06-13 | 98.3099 | 121 | 2017-09-27 | 97.7737 | 197 | 2018-01-16 | 92.1667 |
46 | 2017-06-14 | 98.5844 | 122 | 2017-09-28 | 97.9469 | 198 | 2018-01-17 | 92.0429 |
47 | 2017-06-15 | 98.5551 | 123 | 2017-09-29 | 97.9667 | 199 | 2018-01-18 | 91.8177 |
48 | 2017-06-16 | 98.4575 | 124 | 2017-09-30 | 97.9901 | 200 | 2018-01-19 | 91.7587 |
49 | 2017-06-19 | 99.0073 | 125 | 2017-10-09 | 97.7599 | 201 | 2018-01-22 | 91.9325 |
50 | 2017-06-20 | 99.0959 | 126 | 2017-10-10 | 97.7196 | 202 | 2018-01-23 | 92.0002 |
51 | 2017-06-21 | 98.9091 | 127 | 2017-10-11 | 97.7628 | 203 | 2018-01-24 | 91.9979 |
52 | 2017-06-22 | 98.6054 | 128 | 2017-10-12 | 97.5513 | 204 | 2018-01-25 | 92.0739 |
53 | 2017-06-23 | 98.8115 | 129 | 2017-10-13 | 97.5499 | 205 | 2018-01-26 | 91.9812 |
54 | 2017-06-26 | 99.0275 | 130 | 2017-10-16 | 97.2541 | 206 | 2018-01-29 | 91.9737 |
55 | 2017-06-27 | 99.1378 | 131 | 2017-10-17 | 96.9539 | 207 | 2018-01-30 | 91.8774 |
56 | 2017-06-28 | 98.9983 | 132 | 2017-10-18 | 97.0802 | 208 | 2018-01-31 | 92.0330 |
57 | 2017-06-29 | 98.8905 | 133 | 2017-10-19 | 97.2045 | 209 | 2018-02-01 | 92.1675 |
58 | 2017-06-30 | 98.7535 | 134 | 2017-10-20 | 97.0407 | 210 | 2018-02-02 | 92.1976 |
59 | 2017-07-03 | 98.5488 | 135 | 2017-10-23 | 97.0391 | 211 | 2018-02-05 | 92.0529 |
60 | 2017-07-04 | 98.5000 | 136 | 2017-10-24 | 97.0794 | 212 | 2018-02-06 | 92.5042 |
61 | 2017-07-05 | 98.7444 | 137 | 2017-10-25 | 96.6624 | 213 | 2018-02-07 | 92.4100 |
62 | 2017-07-06 | 98.8445 | 138 | 2017-10-26 | 96.6342 | 214 | 2018-02-08 | 92.6823 |
63 | 2017-07-07 | 98.7156 | 139 | 2017-10-27 | 96.3303 | 215 | 2018-02-09 | 92.7670 |
64 | 2017-07-10 | 98.7063 | 140 | 2017-10-30 | 95.5913 | 216 | 2018-02-11 | 92.8059 |
65 | 2017-07-11 | 98.7942 | 141 | 2017-10-31 | 95.5416 | 217 | 2018-02-12 | 92.7589 |
66 | 2017-07-12 | 98.9020 | 142 | 2017-11-01 | 95.8228 | 218 | 2018-02-13 | 92.7656 |
67 | 2017-07-13 | 98.9901 | 143 | 2017-11-02 | 95.6682 | 219 | 2018-02-14 | 92.8083 |
68 | 2017-07-14 | 98.9999 | 144 | 2017-11-03 | 95.6132 | 220 | 2018-02-22 | 92.6956 |
69 | 2017-07-17 | 98.9690 | 145 | 2017-11-06 | 95.5979 | 221 | 2018-02-23 | 92.6920 |
70 | 2017-07-18 | 98.8013 | 146 | 2017-11-07 | 95.3496 | 222 | 2018-02-24 | 92.8050 |
71 | 2017-07-19 | 98.8327 | 147 | 2017-11-08 | 95.2988 | 223 | 2018-02-26 | 93.1985 |
72 | 2017-07-20 | 98.9304 | 148 | 2017-11-09 | 95.2077 | 224 | 2018-02-27 | 93.3612 |
73 | 2017-07-21 | 98.8936 | 149 | 2017-11-10 | 95.0088 | 225 | 2018-02-28 | 93.4489 |
74 | 2017-07-24 | 98.8744 | 150 | 2017-11-13 | 94.4006 | 226 | 2018-03-01 | 93.4331 |
75 | 2017-07-25 | 98.7772 | 151 | 2017-11-14 | 94.1425 | 227 | 2018-03-02 | 93.2840 |
76 | 2017-07-26 | 98.6217 | 152 | 2017-11-15 | 94.0718 |
1.根据有关函数绘制170210的均线、MACD ,如图一所示

图一
在图一中,上半图为170210的走势图和均线图,黑线为170210的净价走势曲线,粉红线为5日均线(MA5)、红线为10日均线(MA10)、蓝线为30日均线(MA30)、绿线为60日均线(MA60);下半图为对应的MACD,黑线为DIF,蓝线为DEA。
10年国债期货K线图

图二
从图一和图二可以看出现券170210和10年国债期货的走势基本一致,现券和国债期货的均线大致吻合。由于期货具有价格发现的功能,170210的价格波动滞后于10年国债期货,170210的波动幅度要小于10年国债期货。
(三)基于MACD指标的高频量化交易策略
在日常的债市操盘中,受各方面因素的影响,仅仅依靠看盘,分析基本面、政策面、资金面来抓住买入点、卖出点进行波段操作,有时也很难获利,甚至被套牢。本程序通过输入既定的买入条件、卖出条件、平仓条件,当行情价格达到系统所设条件时自动判断买入点、卖出点进行平仓交易,当判断错误时进行止损。
1.基于MACD指标的债券高频量化交易的条件设定:(基于安全稳健的前提,本程序设定的债券买卖条件较为严格,相应的收益较高,回撤较小)
买入条件:DIF和DEA都小于零即都在零轴下方,并且DIF和DEA都上行,DIF上穿DEA(即金叉),绿柱逐渐消失红柱状持续放大或者DIF和DEA都大于零即都在零轴上方,并且DIF和DEA都上行,DIF上穿DEA(即金叉)红柱状持续放大。(可附加均线条件,如在设定买入条件的同时,设定170210的走势线上穿5日均线和10日均线)。
卖出条件:DIF和DEA都小于零即都在零轴下方,并且DIF向下突破DEA(死叉),绿柱放大或者DIF和DEA都大于零即都在零轴上方,并且DIF和DEA相交都下行(死叉),红柱逐渐消失绿柱放大。(可附加均线条件,如设定卖出条件的同时,设定170210走势线向下突破5日均线和10日均线)。
根据买入条件和卖出条件,将170210中债估值净价导入程序,该量化程序会自动绘制出走势线、均线、MACD线,并根据设定的条件在相应价位标记是进行买入还是卖出,如图一所示即为该程序自动标记的相关操作。从图一标记的有关操作来看,该程序能够很好的识别趋势性行情,进行做多或者做空,对于震荡行情很难判断趋势时,也可以进行操作,判断错误时该程序会自动给出平仓止损标记。图三为采用该程序对170210进行波段操作投资净收益情况(3月2日未平仓如果平仓,投资净收益会更高),图四为相关操作的持仓变动(以1000万为例),图五为最大回撤。

图三

图四

图五
2.辨别、利用顶背离和底背离
MACD指标的背离就是指MACD指标的图形的走势正好和K线图的走势方向正好相反。MACD指标的背离有顶背离和底背离两种。
(1)顶背离
当债券走势一峰比一峰高,价格一直在向上涨,而MACD指标图形上的由红柱构成的图形的走势是一峰比一峰低,即当价格的高点比前一次的高点高、而MACD指标的高点比指标的前一次高点低,这叫顶背离现象。顶背离现象一般是价格在高位即将反转转势的信号,表明价格短期内即将下跌,是卖出价格的信号。
(2)底背离
底背离一般出现在价格的低位区。当债券走势还在下跌,而MACD指标图形上的由绿柱构成的图形的走势是一底比一底高,即当债券价格的低点比前一次低点底,而指标的低点却比前一次的低点高,这叫底背离现象。底背离现象一般是预示债券价格在低位可能反转向上的信号,表明债券短期内可能反弹向上,是短期买入债券的信号。从图一可以看出170210从2017年4月10日至2018年3月2日之间出现过一次底背离,如图一中绿色粗斜线所示。
从图一可以看出由于170210在2018年1月底的时候出现底背离,并且170210的走势线上穿5日、10日均线,表明短期债券价格会上涨(收益率下行),随后市场验证了这一判断,170210债券价格上涨(收益率下行)。