基于Python的MACD顶底背离形态的实现
前言
股票或期货的价格波动,总会有一些可以规律可以遵循的。其中,"背离"也算是其中的一种,并且可以作为判断趋势结束或阶段调整的预警信号。
通常情况下,我们所说的"背离"是指价格与技术指标的运动方向发生相反方向的运动的情形。正如下面的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背离的整个过程。
其中重点在于波峰波谷值的计算和背离的判断,难点在于如何通过控制代码的运行顺序进行计算。
最后
"背离",仅判断趋势的动能减弱,而不一定预示着趋势会反转。因为,很有可能是原趋势的阶段性调整,也有可能进入长期的震荡之中。
很有可能,在价格突破或跌破顶背离或底背离区域后,一飞冲天或是一泻千里!
我们团队有着十几年的期货程序化交易算法与软件研发经验,基于C++ Qt技术研发了具有自主知识产权的期货智能程序化交易一体化系统平台,该平台封装了二百多个量化指标,具有低时延、高性能、小滑点、可定制和跨平台的特点。团队致力于将人工智能技术与传统的程序化交易技术相结合为客户提供灵活可定制的期货智能程序化交易服务和产品。
基于Python的MACD顶底背离形态的实现相关推荐
- python量化自动交易_Python量化交易之MACD'顶底背离'形态的实现,自动
点及财经,股票期货专业投机者. 前言 股票或期货的价格波动,总会有一些可以规律可以遵循的.其中,'背离'也算是其中的一种,并且可以作为判断趋势结束或阶段调整的预警信号. 通常情况下,我们所说的'背离' ...
- python抓取股票形态_利用Python实现MACD#39;顶底背离#39;形态,并实现自动化交易!...
点及财经,股票期货专业投机者. 前言 股票或期货的价格波动,总会有一些可以规律可以遵循的.其中,"背离"也算是其中的一种,并且可以作为判断趋势结束或阶段调整的预警信号. 通常情况下 ...
- python 源代码 macd双底 高 低_MACD双底背离_选股公式,炒股软件,炒股公式,股票软件,股票公式_指标编写互助答疑论坛_理想论坛 - 股票论坛...
请老师将以下公式双MACD背离时间不超过30天,写个选股,谢谢了 STICKLINE(100,90,0,5,0),COLOR666600; XIAO1:=REF((LOW+OPEN+CLOSE+HIG ...
- 聚宽macd底背离_老股民技巧一招鲜:MACD顶、底背离图解及近期实战应用,字字斗金...
macd指标参数最佳设置. 1. MACD指标参数如何设置 对于MACD指标参数,大多数分析软件会将其参数设置为12,26,9,即快速EMA参数设为12.慢速EMV指标设为26.DIF参数设为9. 从 ...
- python人工智能计算器_招募:基于python的召唤师全时段全技能(含均值AI)计算器全程测试...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 √ 功能简介 借助Python跨平台.轻量化的优点,解决常规excel无法完成的准确AI.速度量化.CD量化.前后摇量化的问题,制作可以自动最优选择技能连 ...
- python基于水色图像的水质评价_基于Python和遥感图像的膨胀与腐蚀操作
引言 膨胀与腐蚀是图像形态学中的基本操作,本文将从两个角度实现python的膨胀与腐蚀算法,分别是特征提取与分割后处理.目前,在RGB图像领域,这两种形态学算法经常用于分割结果的处理,例如连通区处理. ...
- 聚宽macd底背离_许多散户不知道:MACD月线金叉,MACD月金叉都会带来一波牛市!...
MACD吸收了移动平均线的优点. 移动平均线的买卖交易在趋势明显时效果很好,但是一旦遇到牛皮盘整行情,移动平均线所发出的信号就过于频繁而且极其不准确,在期货市场的保证金杠杆效应下容易使投资者遭受致命损 ...
- python股票技术指标计算_通达信指标python都实现,python计算macd等技术指标,有什么包吗...
Q1:python计算macd等技术指标,有什么包吗 有的,包的链接如下: https://github.com/lovelylain/pyctp/tree/master/example/ctp/ta ...
- 基于python的分布式扫描器_一种基于python的大数据分布式任务处理装置的制作方法...
本发明涉及数据处理技术,具体是一种基于python的大数据分布式任务处理装置. 背景技术: 本发明提供一种分布式队列任务处理方案和装置,该方法可以提供分布式处理python任务,任务类型包括爬虫及其他 ...
- 聚宽macd底背离_很多散户可能永远都不会知道:MACD月线金叉,每一次MACD月金叉都会带来一波牛市...
MACD吸收了移动平均线的优点.移动平均线的买卖交易在趋势明显时效果很好,但是一旦遇到牛皮盘整行情,移动平均线所发出的信号就过于频繁而且极其不准确,在期货市场的保证金杠杆效应下容易使投资者遭受致命损失 ...
最新文章
- sixth week:third work
- 王道408数据结构——第五章 树与二叉树
- Spring MVC Boot Cloud 技术教程汇总(长期更新)
- 交通警察手势信号(动画演示)
- Flash ActionScript 2.0基础教程
- eval函数python_Python eval()函数
- ASP.Net 中常用的数据库连接方式
- 模板 n维矩阵的二分幂
- 【Mac】Mac 使用 zsh 后, mvn 命令无效
- Java comparator接口源码解读
- 樱花FRP(SAKURA FRP)远程桌面+rdpwrap绕过限制
- 在线作图 grapheditor
- 续流二极管作用及工作原理
- ros2 topic 源码解析
- 解决Retrying connect to server
- rls最小二乘法 c语言,RLS递归最小二乘(最新整理)
- Excel文件导入导出操作
- Qt中QList用法详解
- 线程与全局解释器锁(GIL)
- CANoe的数据回放(Replay Block),还是要结合CAPL脚本才能说的明白
热门文章
- doom3 源代码基本情况
- html5 游戏 响应式,关于html5:响应式游戏网页有什么特点呢
- Flash制作雾效果
- 终身学习C++__小胡亲测
- java作品欣赏_[Java教程]推荐25个强大的 jQuery 网页布局设计作品欣赏
- android 吉他模拟器,真实吉他模拟器怎么玩 新手玩法攻略详解
- linux添加一块20G的scsi硬盘,Linux下添加第二块scsi硬盘.doc
- python的display显示_Python display.display方法代码示例
- 攻防世界_moile
- P4118 [Ynoi2016]炸脖龙I