用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

如果要说哪个技术指标知道的人最多,那估计非MACD莫属了。

因为不管你是炒A股、美股,期货期权还是炒币,任何行情软件中它都会默认出现在第一个位置。就好像是全世界通用的一样。

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

MACD指标

那这个指标真的对投资有很大的帮助吗?我之前有篇文章就对此进行了验证。

在这篇文章中我从MACD最经典的金叉、死叉用法入手,找出了80万次相关数据来验证其有效性。

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

金叉、死叉

如上图中点1处MACD指标的DIFF线(黑线)自下向上穿过DEA线(蓝线),指标认为此处交叉是黄金买点,称为金叉

反之如点2处DIFF线自上向下穿过DEA线,则认为应当坚决卖出,称为死叉

那将金叉、死叉作为买卖点操作能赚钱吗?我们用某茅股票来测试下。

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

某茅股票回测

上图中黄线代表的某茅股票本身,07年至今涨了32倍,按照金叉死叉规则买卖得到的蓝线却只涨了7倍。

这…还不如买入持有不动好啊…

为了避免特例,我干脆找来了全部A股4000多只股票2007年至今所有数据,得到了80万次金叉死叉,并统计了它们之后N日的股价表现。

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

MACD在全A上的表现

如上图所示,金叉/死叉发生后股票的上涨/下跌概率基本在50%左右,这个概率和我抛80万次硬币没有本质上的区别。

由此可见,MACD的金叉死叉用法确实没有想象中那么有效。

更详细的内容你可以看我这期视频:

点击⬆️观看视频

01

MACD顶底背离

这期视频后有很多同学留言说,MACD除了金叉死叉外还有顶底背离的用法,希望能测试一下。

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

其实相关研究我在大学时就自己摸索过,这次就来专门来测试下这个高人气方法。

这里先大概介绍一下顶底背离的定义。

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

顶背离

如图所示,当股价呈上升趋势(图中红线),MACD指标却呈下降趋势时(图中绿线),就构成了顶背离

这被认为是见顶的标志,股价后续会下跌(图中橙线)。

同样的,底背离就是股价呈下降趋势时MACD指标呈上升趋势。这被认为是信号,股价倾向于上涨

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

底背离

需要强调的是,市场上没有统一的标准去定义顶底背离,这里只是选取了最常用定义来讲解。

如果注意观察,确实会在A股发现很多关于顶底背离的成功案例:

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

A股顶底背离案例

并且在其它市场也能找到不少成功案例。如下图中比特币2021年3、4月价格不断创新高,对应的MACD指标却不断下降。

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

BTC顶背离

这是连续双重顶背离现象,属于强烈的见顶信号。之后价格也确实从高位的6.4万(美元)最多跌到了3万以下。

那么顶底背离真的有案例中那么无往不利吗?

我们做量化投资的不能只看个例,而是要通过编程从历史数据里面去找出全部的顶底背离,看看在概率上到底是否有优势。

02

量化定义

想要实现量化顶底背离,就要把顶底背离的模糊定义转化为明确的计算机语言,这一步也是量化投资的关键。

我们逐个看定义,股价不断创新高该如何量化?

找到相邻的三根K线作为一个组合,只要满足收盘价高于前后两个交易日即视为高点,如下图:

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

高点:收盘价高于前后两个交易日

在下方K线图中标出所有高点。但发现被选中的点数量太多了,不符合我们的直观认知。

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

初步筛选

因此进一步筛选:高点需同时高于过去30日任何一天的收盘价,得到下图中4个点,这4个点就和我们主观认为的高点比较接近。

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

进一步筛选高点

我们再加上一个条件:选择出的高点还需大于前一高点。图中4点都符合要求。

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

符合定义的高点

最后的条件是:K线创新高的同时,对应的DIFF值小于前一个高点

这样我们就成功通过量化定义找出了下图中顶背离位置,股价也确实开始下跌。

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

量化定义下产生的顶背离

经过上述步骤就能把顶背离的经验描述转化为精确的量化规则:

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

规则总结

通过这个规则任何人都可以毫不模糊地找出顶背离的点,没有半点的模棱两可、语焉不详。

底背离的定义就是完全反过来。

先量化创新低的概念,即收盘价低于前后两根K线

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

低点:收盘价低于前后两个交易日

找出所有低点后从中筛选出创30日新低且小于前一低点的点,其对应的DIFF值大于前一低点,形成底背离且后续股价上升,如下图所示。

用Python编程量化技术指标MACD,找出全部12万次顶底背离,胜率究竟有多少?附代码(优化macd背离指标公式源码)

量化底背离

以上就是本文对于MACD顶底背离的量化定义。

但要强调的是,量化定义本就是见仁见智的,不同的人会有不同的结论,没有标准答案

比如下图是来自于某券商研报中的另一种顶底背离定义。

image.png

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1936152778@qq.com举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.caopanquan.cn/6257.html