前言

股票或期货的价格波动,总会有一些可以规律可以遵循的。其中,'背离'也算是其中的一种,并且可以作为判断趋势结束或阶段调整的预警信号。

通常情况下,我们所说的'背离'是指价格与技术指标的运动方向发生相反方向的运动的情形。正如下面的MACD顶背离技术形态,仔细观察价格与MACD两者的走势。

如下图所示:

从上图中可以看到,价格的波峰一个比一个高,而MACD指标的波峰一浪比一浪低。这就是MACD顶背离!

而MACD底背离,如下图所示:

其主要特征与顶背离完全相反!

价格的波谷一个比一个低,而MACD指标的波谷一浪比一浪高。这就是MACD底背离!

一旦价格产生背离,说明价格的原上涨或下跌趋势的动能减弱,预示着趋势可能发生反转或震荡。

至于为什么会产生背离,它的内在运行机理是什么。作者在往期的文章中有专门的一篇文章有非常详细的讲解。

而作者在这期文章中,只分享如何利用Python对MACD顶底背离进行量化,并加入简单的开平仓指令。

Python 语言中'背离'的量化逻辑

背离的量化,不管是什么语言它的思路都是相同的。唯一的区别是实现这个功能的表达方式!

在Python中我用了两个函数分别量化'顶背离'和底背离。下面我以'MACD底背离'为例,下面是图解实现过程:

作者通过记录MACD的金叉死叉时的id,然后通过前后蓝色id与红色id相减,得到计算MACD波谷所需要往前移动的k线数量(从金叉起往前数 n根k线)。

然后利用Python中的max()、min()方法,求出价格及MACD的波谷位置。

当我们量化出第一个后,第二个,第三个的思路是一样的。同时,计算MACD波谷区间的价格波谷也是这样的思路。

最后通过条件判断,找出顶背离或底背离的形态,并发出开仓指令。

Python tqsdk 实现MACD顶底'背离'

在上述中,作者分享了关于顶底背离的量化思路。接下来,作者将用五个步骤完成背离的量化。

一、首先,导入相应的包并设置参数变量。

作者用于回测的品种是螺纹钢指数15分钟。其中self._lowest_md 和self._highest_md 、self.lowest和self.highest 。

分别表示MACD的波谷值和波峰值、MACD波峰波谷对应的价格波峰波谷值。

二、计算MACD指标以及记录金叉死叉位置。

作者直接使用天勤量化内置的MACD、金叉和死叉函数进行相应计算,并将结果存入kline中。

作者打印出采用天勤内置的上穿函数的计算结果。当遇到MACD金叉时,值为1,其他为0。

并且,天勤的下穿函数crossdown(a,b)的返回值和上穿一致,只有1或0。

如下图所示:

代码中的trend_long、trend_short,只记录MACD上穿或下穿0轴的位置,同样返回值为1或0。

上述,作者分享了MACD指标的计算以及金叉死叉位置的标注方法。

下面,作者将利用指标及标注的金叉死叉的位置来计算MACD及对应价格的波峰及波谷。

三、计算出用于判断顶底'背离'所需要的'波峰波谷'数据

在上个一步骤中,作者已经计算出了MACD金死叉的位置。

因此我们就可以通过这个位置所对应的K线id,推算出死叉到金叉之间经过了多少(n)根k线,并从当前倒推n根k线,得到计算波谷的区间。

作者以“底背离为例”。

代码:

其中,核心的计算部分是:self._lowest_md、self.lowest这两个列表存储着用于判断底背离的指标及价格的波谷数据。

而这段代码的最后一部分,当指标在零轴之上时,重置列表及记录的金叉死叉的id,以便于在新一轮0轴以下再记录。

同时,顶背离的计算结构与底背离是一致的。

如下图所示:

四、判断顶底背离并加入简单的开平仓指令

这一部分,作者按照开篇所讲的“顶背离”和“底背离”的判断标准来判断并加入开平仓指令。

1.开仓部分:

2.平仓部分:当平仓后,使用del 删除列表中已经使用过的波峰波谷值的前一值。

最主要的部分是这段代码:第一个If是判断是否是“底背离”,第二个If判断是否是“顶背离”。如果条件满足,则开仓1手。

五、调用main() 函数,启动策略。

验证代码的正确性:底背离为例。

1.金叉:

2.底背离:

小结。

上述是用Python语言借助天勤量化平台,量化MACD背离的整个过程。

其中重点在于波峰波谷值的计算和背离的判断,难点在于如何通过控制代码的运行顺序进行计算。

最后

'背离',仅判断趋势的动能减弱,而不一定预示着趋势会反转。因为,很有可能是原趋势的阶段性调整,也有可能进入长期的震荡之中。

很有可能,在价格突破或跌破顶背离或底背离区域后,一飞冲天或是一泻千里!

python 源代码 macd双底 高 低_利用Python实现MACD''顶底背离''形态,并实现自动化交易!...相关推荐

  1. python 源代码 macd双底 高 低_中国股市真正厉害的人:MACD双顶、双底,晚上睡不着时就看看...

    所有的财富都来源于对一个事物清晰而正确的理解,在股市上正确的加强和修炼自己的交易内功才是成功交易的唯一途径.成功不变的法则就是拥有深厚的交易内功和严格的交易纪律. 交易的难点不在于学习,而在于应用,能 ...

  2. python 源代码 macd双底 高 低_深入研究MACD:MACD双顶双底形态,成为高手的门槛...

    MACD形态跟K线形态差不多,大概为:双顶,双底,头肩底,头肩颈,顶背离,底背离,水上金叉,水下金叉等,其实仔细观察发现他们都是双底和双顶的衍生,所以,今天咱们着重阐述MACD双顶双底形态.为了更加直 ...

  3. python 源代码 macd双底 高 低_久其软件怎么样MACD指标的双底形态特征详解

    牛市,月收益不足40%的联系我 首页 置顶文章 是我的个人介绍 想合作的可以去看看 股票,基金是一回事 期货,还没接触 --------------------- 久其软件怎么样 RSI是衡量买卖双方 ...

  4. python 源代码 macd双底 高 低_macd双底选股公式

    说到MACD这个指标,相信许多投资朋友都知道,这是一个趋势指标,全称为指数平滑异同平均线.常用的MACD信号为红柱.绿柱.金叉.死叉和顶.底背离.今天股掌资尚想给大家分享一下MACD炒股运用技巧. 首 ...

  5. python如何爬取sci论文_利用python爬取并翻译GEO数据库

    GEO数据库是NCBI创建并维护的基因表达数据库,始于2000年,收录了世界各国研究机构提交的高通量基因表达数据,现芯片集数据量高达12万以上.想要从这里面挖掘(bai piao)数据,发个sci提前 ...

  6. python数据库操作批量sql执行_利用Python如何批量修改数据库执行Sql文件

    利用Python如何批量修改数据库执行Sql文件 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  利用Python如何批量修改数据库执行Sql文件.txt ] (友 ...

  7. python 替换array中的值_利用Python提取视频中的字幕(文字识别)

    我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽 从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python.机器学习.数据库等等. 今天来分享一个Python小项目! ...

  8. python 16bit转8bit的工具_利用python读取YUV文件 转RGB 8bit/10bit通用

    注:本文所指的YUV均为YUV420中的I420格式(最常见的一种),其他格式不能用以下的代码. 位深为8bit时,每个像素占用1字节,对应文件指针的fp.read(1): 位深为10bit时,每个像 ...

  9. python 钉钉机器人发送图片_利用Python自动发送钉钉数据消息

    现在大部分公司都使用钉钉作为内部的主要沟通工具,钉钉消息基本都上都能快速有效的被阅读,打开率会比邮件高上不少.所以准备使用钉钉来播报平台每日的成交额,并附上一些鼓励的话和图片.起到一个激励团队的作用 ...

  10. python画二维温度云图_利用python画出词云图

    本文将介绍如何利用python中相应的模块画出词云图.首先给出效果图: 其中词云图中的词汇是对手机短信中的垃圾短信的统计,字体越大表示在垃圾短信中出现的频次越高.下面给出具体的步骤. 读取" ...

最新文章

  1. 图神经网络(GNN)的简介
  2. 洛谷P4015 运输问题 网络流24题
  3. IIS状态代码的含义
  4. java jdkxp32_java运行环境(jre-8u65-windows-i586) 官方安装版 32位
  5. java range(10)_Java 中的十个 ” 单行代码编程 ” ( OneLiner )
  6. React Native 实现物流进度信息
  7. 华为升级harmonyos的机型名单,华为鸿蒙 OS 2.0 系统适配名单已出,四月推送,天玑机型暂时无缘...
  8. .NET简谈事务、分布式事务处理
  9. 业务模型管理平台 开源_在可靠的开源模型上建立业务
  10. 数学发展史中最重要的4个阶段
  11. uniapp底部导航栏中间凸起_PPT导航栏,真的非常好用!
  12. unity3d 怎么生成网页版_unity3D u3D网页游戏制作游戏优势
  13. avx2指令集对php有用吗,AVX2指令集:AVX指令集的加强版
  14. 计算机课件制作总结,多媒体课件制作的学习心得
  15. isfinite函数_isfinite()函数以及C ++中的示例
  16. 四川大学计算机专业调剂,2019年四川大学计算机学院(软件学院)考研调剂信息
  17. BIM模型一键输出 3D Tiles (for Cesium) 和 glTF/blg
  18. 微信小程序实现图片多选择 || 选择城市
  19. 微信开发者工具打不开 报错网络连接失败 解决方法
  20. TQQ2440第二节:流水灯

热门文章

  1. 新浪财经独家对话达利欧:桥水员工离职率曾高达30%
  2. PM、GAN、InfoGAN、对抗自编码模型对比
  3. 服务器里面增加单页网站,如何设计完美的单页网站
  4. Unity:通过脚本控制Shader中的Cutoff
  5. python os创建txt文件_Python新建动态命名txt文件
  6. 从Sklearn Bunch对象到Pandas DataFrame对象的转换
  7. docker pull拉取镜像_Docker拉取镜像的完整步骤
  8. 【听说隔壁老王开始学编程了?】
  9. python画地球代码_python的pygame模拟太阳-地球-月亮-金星等动态示意图代码分析
  10. 比较IC卡、ID卡、M1卡、CPU卡它们之间有什么区别