本韭菜是缠粉,不过对于缠论研究不深,希望大家批评指正!

本文参考了如下相关文贴:

1. [【量化缠论】之分型、笔、线段识别][1]

1.1. 在该帖的基础上将线段和**调整后**的k线绘制在一张图中;

1.2. 添加了中枢判断,并和**调整后**的k线绘制在一张图中;

2. [《MACD背离》技术研究][2]和[对MACD底背离策略改写的改写——30秒极速版][3]

2.1. 在大牛的基础上对不同类型的背离做了点皮毛分析;

本文以TCL集团(000100)11月6日至10日的30分钟级别,以及华润三九(000999)2017年行情为例介绍总体实现。

###绘制k线图###

函数get_k_series(security, start_date, end_date, n=30)获取k线序列,默认为30分钟级别。plot_k_series(k_data)函数绘制k线图。TCL集团(000100)11月6日至10日的30分钟级别的k线图绘制如下。

![1.PNG][4]

###分型、笔、线段###

分型是笔的节点,笔相互连接构成线段。分型是通过所考察的级别k线相互关系判断的。关于分型的具体定义截取《缠论》相关章节如下。

![7.jpg][5]

图1,第二K线高点是相邻三K线高点中最高的,而低点也是相邻三K线低点中最高的,定义其为顶分型;图2,第二K线低点是相邻三K线低点中最低的,而高点也是相邻三K线高点中最低的,定义为底分型。顶分型的最高点叫该分型的顶,底分型的最低点叫该分型的底。

两个相邻的顶和底之间构成一笔,所谓笔,就是顶和底之间的其他波动,都可以忽略不算,但注意,一定是相邻的顶和底,隔了几个就不是了。而所谓的线段,就是至少由三笔组成。但这里有一个细微的地方要分清楚,因为结合律是必须遵守的,像图3,顶和底之间必须共用一个K线,这就违反结合律了,所以这不算一笔,而图4,就光是顶和底了,中间没有其他K线,一般来说,也最好不算一笔,而图5,是一笔的最基本的图形,顶和底之间还有一根K线。在实际分析中,都必须要求顶和底之间都至少有一K线当成一笔的最基本要求。

当然,实际图形里,有些复杂的关系会出现,就是相邻两K线可以出现如图6这种包含关系,也就是一K线的高低点全在另一K线的范围里,这种情况下,可以这样处理,在向上时,把两K线的最高点当高点,而两K线低点中的较高者当成低点,这样就把两K线合并成一新的K线;反之,当向下时,把两K线的最低点当低点,而两K线高点中的较低者当成高点,这样就把两K线合并成一新的K线。经过这样的处理,所有K线图都可以处理成没有包含关系的图形。而图7,就给出了经过以上处理,没有包含关系的图形中,三相邻K线之间可能组合的一个完全分类,其中的二、四,就是分别是顶分型和底分型,一可以叫上升K线,三可以叫下降K线。所以,上升的一笔,由结合律,就一定是底分型+上升K线+顶分型;下降的一笔,就是顶分型+下降K线+底分型。注意,这里的上升、下降K线,不一定都是3根,可以无数根,只要一直保持这定义就可以。当然,简单的,也可以是1、2根,这只要不违反结合律和定义就可以。至于图8,就是线段的最基本形态,而图9,就是线段破坏,也就是两线段组合的其中一种形态。

如上所述,在实现的过程中,k线的包含关系会影响顶分型和底分型的判断。因此需要首先调整k线的包含关系以便于判断顶分型和底分型。具体调整规则如下:

**k线向右包含**:

1. 如果是上升趋势,取更高的最低价;

2. 如果是下降趋势,取更低的最高价;

**k线向左包含**:

3. 如果是上升趋势,取更高的最高价;

4. 如果是下降趋势,取更低的最低价;

调整过程由函数adjust_by_cintainment(k_data)实现。调整之后的TCL集团(000100)11月6日至10日的30分钟级别的k线图绘制如下:

![0.PNG][6]

调整之后的k线之间没有绝对的包含关系,这样容易寻找分型。分型的判断标准如下:

**分型判断**(并非严格的分型):

1. 底分型,下降趋势中的第一个最低价抬升;

2. 顶分型,上升趋势中的第一个最高价回落;

3. 底分型之后必为顶分型;顶分型之后必为底分型;

4. 分型之间至少有3根k线;

另外,由于起止点不构成分型,这样线段两端就是空白的。为了美观起见,起止点这里采用第一根和最后一根k线的二分位作为线段的起止点。

通过上面的方法得到分型以及起止点,对应的函数是get_fx(adjusted_k_data)。有了分型就可以连成笔,并进一步将笔连成线段。绘制函数是plot_lines(ax, fx_plot, fx_offset)。绘制效果如下:

![2.PNG][7]

###中枢判断###

缠论中的**中枢**满足如下条件:

1. 必须在一个完整的走势类型中(至少3笔);

2. 价格范围是最小的最高价,以及最大的最低价;

根据上述条件,实现中枢判断函数,对应到get_pivot(fx_plot, fx_offset, fx_observe)。输入中的fx_observe为观测的分型位置,函数返回这个位置前面最近的一个中枢区间。

![3.PNG][8]

比如,输入是上图中咖啡色处的分型点位,那么函数输出这个分型位置前面最近的中枢。中枢绘制函数是plot_pivot(ax, pivot_date_interval, pivot_price_interval)。绘制效果如下:

![5.PNG][9]

可以看到,目前30分钟图上股价处于最近的中枢上方,如果下跌不进入中枢区就会形成第三类买点(这个第三类买点在本周没有出现)。第三类买点需要动量分析。下文介绍MACD背离的判断实现。

###MACD背离判断###

MACD背离根据不同人的使用习惯有以下几种类型(以顶背离为例):

![6.PNG][10]

1. **驼峰背离**:股价创新高,MACD红柱没有创新高(左图);

2. **面积背离**:股价创新高,MACD红柱面积没有扩大(中图);

3. **快慢线背离**:股价创新高,快慢线死叉点位没有创新高(右图3);

上述三类背离以快慢线背离最为准确,并且计算效率最高。因此本文实现快慢线背离。实现函数为check_deviating(scode, fastperiod=11, slowperiod=26, signalperiod=9)。该函数判断日线级别的背离。判断规则如下:

**底背离判断**:

最近的收盘价快慢线金叉,与上一次金叉相比,金叉点位提高,dif提高,收盘价下跌;

**顶背离判断**:

最近的收盘价快慢线死叉,与上一次死叉相比,死叉点位下降,dif下降,收盘价上升;

以华润三九(000999)为例,2017年以来日线级别的背离判断如下:

![4.PNG][11]

可以看出以快慢线背离进行判断,买点靠右,卖点靠左,因而风险较小。不过个股也容易出现不有效的情况。背离的判断对于指数更加有效。所以我也会尝试在ETF指数上用背离策略,看看效果如何。

###总结###

上述实现没有仔细推敲,代码也显得凌乱,个人水平也十分有限。往大神们批评指正!

[1]: https://www.joinquant.com/post/425?tag=algorithm

[2]: https://www.joinquant.com/post/716?tag=algorithm

[3]: https://www.joinquant.com/post/8143?tag=algorithm

[4]: https://image.joinquant.com/e484790484e9666137d905f248383a15

[5]: https://image.joinquant.com/4985229ef3406ae8017dbe3bdda9d45b

[6]: https://image.joinquant.com/0dc9a195ea4824b33d6c6021f9a6cf6e

[7]: https://image.joinquant.com/17fa75d1f9a9317dabc3d7a277627153

[8]: https://image.joinquant.com/5c43657beb6863d7dd782fd600390b11

[9]: https://image.joinquant.com/32a2b7c99b34d86c2cfbbdb037f27dbb

[10]: https://image.joinquant.com/24952d0bd279e80aef6fbb5e8b6db58d

[11]: https://image.joinquant.com/a2508cc51135c10222e2210805b53f12

用python编写缠论中枢_缠论的笔、线段、中枢以及MACD背离分析实现相关推荐

  1. 缠论插件_缠论通达信_缠论量化

    经过多年优化实盘操作,搞定了缠论插件: 1.打开看盘软件通达信,大智慧,KT交易师,期货博易大师,输入FB或FD或ZSLX,自动画笔线段中枢走势类型 2.力度数字提示 3.支持各周期笔或段条件选股,支 ...

  2. python编写高质量代码_用 Python 编写干净、可测试、高质量的代码

    用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...

  3. python编写井字棋_编写井字游戏

    python编写井字棋 Programming computer games may be the most technically challenging (and possibly the bes ...

  4. 用python编写程序判断奇偶_如何用python判断奇偶数

    问题分析:用Python编写一个程序,判断输入的数字是奇数还是偶数,并相应的输出信息,要判断一个数为奇数还是偶数,依据的是它被2除后的余数.因此可以用"%"运算符来计算并判断. 代 ...

  5. 用python编写表达式求值_用Python3实现表达式求值

    Problem Description yizhen has no girlfriend due to his stupid brain that he even can't solve a simp ...

  6. python编写赛车游戏单机版_使用Python中OrderedDict模拟一个简单的竞速游戏排名

    上一篇,我们梳理了Python中关于字典排序的一些常用方法(杂乱无章的数据结构如何进行排序,简明讲述Python字典排序那些事).其中,我们讲到了Python的collections模块中的Order ...

  7. python编写函数判断三角形_使用Python三角函数公式计算三角形的夹角案例

    题目内容: 对于三角形,三边长分别为a, b, c,给定a和b之间的夹角C,则有:.编写程序,使得输入三角形的边a, b, c,可求得夹角C(角度值). 输入格式: 三条边a.b.c的长度值,每个值占 ...

  8. python编写接口自动化脚本_简单的python http接口自动化脚本

    摘抄:今天给大家分享一个简单的python脚本,使用python进行http的接口测试,脚本很简单,逻辑是:读取excel写好的测试用例,然后根据excel中的用例内容进行调用,判断预期结果中的返回值 ...

  9. python编写命令行框架_使用 Python 和 Click 编写命令行应用程序

    简评:python 构建命令行应用的第三方比较有名的包除了 click 之外还有一个叫 docopt,这是一个以文档先行为目标的包.个人是比较倾向于 Click 的,看了这篇文章之后,也很快写了一个 ...

  10. python编写程序解方程_第2章 Python初步 课后题

    [单选题]建设中国特色社会主义,把我国建设成为富强.民主.文明.和谐.美丽的社会主义现代化强国,是我国各族人民的( ) [简答题]案例系统的测试报告,提交时间为9月28日,上午九点之前 [单选题]一份 ...

最新文章

  1. org.springframework.data.mapping.PropertyReferenceException: No property xxxx found for type Xxxx
  2. jdbcTemplate 后台接口中的分页
  3. POJ 1195 Mobile phones(裸的二维树状数组)
  4. phper必知必会之类库自动加载的七种方式(三)
  5. 【复杂系统迁移 .NET Core平台系列】之认证和授权
  6. P4287-[SHOI2011]双倍回文【PAM】
  7. java方法示例注释 @_Java 8中的功能接口是什么? @功能注释和示例
  8. Neo4j:找到两个纬度/经度之间的中点
  9. 利用javascript验证各种格式
  10. 手动玩转虚拟地址到物理地址转化
  11. Android 7.0 抓包
  12. html盒子模型 正方形嵌套,div盒子模型实例
  13. 在c语言中对于整型变量采用哪两种存储形式,在C语言中的实型变量分为2种类型,它们是()和()...
  14. 今日恐慌与贪婪指数为14,恐慌程度与昨日持平
  15. 力扣-无重复字符的最长子串
  16. 【数据结构】物流运输(最短路DP)
  17. 关于xml加载提示: Error on line 1 of document : 前言中不允许有内容
  18. Mybatis--动态sql之choose、when、otherwise语句(只匹配其中的一个条件)
  19. FITC-SNA,EBL;荧光素标记的黑接骨木凝集素(SNA,EBL)
  20. tf1.x迁移到tf2.x contrib的方法和思路

热门文章

  1. nofollow的使用以及作用
  2. 我设计的五笔日本语输入法和韩语输入法初稿图
  3. MachO 代码签名剖析
  4. iphone控制中心自定义没有计算机,科技:如何在iOS上使用和自定义控制中心
  5. 安卓手机虚拟键盘和position:fixed问题
  6. Tableau 网站流量分析案例汇总
  7. python 3d绘图模块_在Python 3中绘制3D多边形
  8. storm apache_Apache Storm很棒。 这就是为什么(以及如何)使用它的原因。
  9. 广域网加速方案--Riverbed
  10. 计算机管理用户组不见了,win7系统计算机管理本地用户和组不见了的解决方法...