楼主: 邢不行
1352 0

[交易策略] 听说MACD是技术指标之王?我们用Python来验验成色 【邢不行】 [推广有奖]

院士

5%

还不是VIP/贵宾

-

威望
1
论坛币
26743 个
通用积分
135.2153
学术水平
485 点
热心指数
505 点
信用等级
456 点
经验
44525 点
帖子
547
精华
26
在线时间
1111 小时
注册时间
2010-4-30
最后登录
2024-4-1

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

引言:


邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。

【必读文章】:《10年400倍策略分享-附视频逐行讲解代码》

                     《EOS期现套利,一周时间,15%无风险收益》

【历史文章汇总】:https://bbs.pinggu.org/thread-3950124-1-1.html


个人微信:xingbuxing0809,有问题欢迎交流



68b34b443d39e1f3d6d02c5c670620107ec89ae8.png



这是邢不行第  70  期量化小讲堂的分享

作者 | 邢不行、助教林奇


经常有朋友在微信上问我一些MACD这个技术指标相关的问题:


01课程同学提问.png



本文就全面的讲解一下MACD指标,看看它的表现到底如何。



01

什么是MACD


不管你是交易A股、美股、期货还是数字货币,大部分的行情软件都会将MACD指标默认显示在指标的前几位


例如下图,在常见的K线图下方有两条曲线和一些红或绿色的柱子,这个组合就是MACD指标

02行情软件K线图.jpg


根据MACD指标的定义,它主要由DIFFDEAMACD三部分组成:


DIFF是下图中的橙线,它是对K线收盘价进行一系列的计算后得到:

03DIFF.png


DEA是下图中的蓝线,它是在DIFF的基础上进一步计算得出:

04DEA.png


橙线(DIFF)减去蓝线(DEA)后,再乘以2就能得到MACD指标了,也就是下图中红色和绿色的柱子


05MACD.png



柱子的长度就是MACD绝对值的大小,如果MACD大于0,则为红色,如果MACD小于0,则为绿色


我们做量化交易的,不仅要在图上看到指标,还要将其计算出来,这样才方便之后得到相应的买点、卖点。


知道定义后要计算MACD并不复杂,几行Python代码就能搞定:


06MACD代码.png

其中计算MACD仅用了最后5行代码,前面3行主要是导入数据及计算复权价。


31Python(1).jpg


有了这个代码,我们读取某股票的K线数据,就能得到其每根K线对应的MACD指标:


07数据输入.png



02

如何使用MACD


计算出MACD指标之后,我们应该如何使用呢?


介绍一个MACD最常见的用法--“金叉和死叉”


仔细观察MACD的图形,我们会发现,橙线(DIFF)蓝线(DEA)纠缠在一起,互相不断交叉,这些交叉点就可以作为买入和卖出的信号


09曲线交叉.gif

橙线(DIFF)向上穿过蓝线(DEA)时,被称为“黄金交叉”,简称“金叉”,这是一个买入信号。


例如下图发生金叉后,确实一路上涨。


10金叉.png



橙线(DIFF)向下穿过蓝线(DEA)时,被称为“死亡交叉”,简称“死叉”,这是一个卖出信号。


例如下图发生死叉后,股价也开始下跌。


11死叉.png


金叉和死叉必定是相邻交替出现,最常见基于MACD的择时策略就是选择在金叉时买入、死叉时卖出

12沪深300MACD.jpg


上图是沪深300某段时间的K线图,红色部分表示金叉买入持有指数的阶段,绿色部分表示死叉卖出空仓的阶段。


从图中看,红色部分确实主要在上涨,绿色部分也确实在下跌

这样看来,MACD的择时能力,让人不禁打出666。

表情包11.gif


看到这是不是有点心动了,甚至准备试着操作,从此走向人生巅峰?


先别着急。


新华书店正面显眼处,摆放着"炒股大师"的书,通常也会告诉你某个神奇的指标


然后再精挑细选出几张行情图片,展示这个指标的买点、卖点是多么的神奇,让你对这个指标深信不疑。



表情包2.jpg




但是对于做量化投资的我们,几张图并不能让人信服。万一这并不是大概率事件,只是巧合呢?


想要知道MACD金叉、死叉是否有效,不是只看几张图就行的。


而是要把一只股票历史上所有的金叉死叉都找出来,看看它们之后的表现到底怎么样。


02

MACD金叉死叉表现


要统计一只股票历史上所有金叉、死叉的表现,人工对着行情软件去数肯定是不行的,此时就需要使用Python。


我们把之前计算MACD的Python代码稍作扩展:

13统计代码.png



通过上面的代码,就可以找到一只股票历史上所有的金叉、死叉。并且还计算了信号发生1、5、20个交易日后股票的涨跌幅:


14MACD统计结果展示.png



有了这个结果就能全面的对金叉、死叉进行评估。


1.浦发银行MACD表现


先随便挑一只股票,上交所代码序号排列第一的浦发银行(sh60000),运行下程序看看MACD在它上面的表现:

386dc26db1954051c4499755dfeee13d.jpg



数据显示,浦发银行从1999年上市至今一共出现过194次金叉,在金叉之后的1天、5天、20天出现上涨的比例分别是:50.51%、48.45%、51.55%


这...结果有点出乎意料啊。出现金叉后,上涨的概率都在50%左右...


和抛硬币没什么差别


表情包3.png



虽然本来也不指望金叉后100%上涨,但概率怎么说也要有60%吧?


要不然干脆来个30%也行,这样当反指用就是70%的胜率。50%是最尴尬的概率了,反过来还是50%


而且194次金叉之后1、5、20个交易日的涨幅中位数分别是0.08%、-0.09%、0.39%。


只有20日的涨跌幅中值表现稍好,但算一下这个年化收益也就和余额宝差不多。

9c971c790b11e073be22f9fd329c394d.jpg


再来看死叉。出现死叉后,下跌的概率也基本上是50%左右,涨跌幅中值也接近0%,也是一个没有任何意义的指标


以上只是简单的统计,我们再看看严格的按照金叉买入、死叉卖出浦发银行,最终的资金曲线会怎么样呢?


我们采用大部分行情软件MACD的默认参数(12,26,9),设置手续费和印花税,进行回测,结果如下:


16浦发银行择时回测.png



橙线是浦发银行的原始表现,蓝线是MACD择时策略在浦发银行上的表现。


采用MACD择时买卖浦发银行,年化收益率只有3.5%,历时13年资产只涨了61%,而浦发银行的股价都翻了1.9倍


可以看到使用MACD择时浦发银行的效果很差,还不如直接买入持有


表情包4.png



没想到在各大行情软件都处于C位的人气指标,表现居然这么差?


是不是浦发银行刚好不适合MACD呢?


接下篇





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 技术指标 MACD ACD Mac MACD 股票 数字货币 编程 python

08数据输出.png (50.76 KB)

08数据输出.png

不管去哪里 只要在路上
您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 03:34