【缠论指标(第一部分)】这是缠论指标的第一步,包含K线合并的代码,并带有方框指示效果

| 发表于 3 小时前 | 显示全部楼层 |复制链接
(一)先把缠论中关于“包含关系K线合并”的要求写明白
1.看缠论中对”包含K线“的定义:两根相邻 K 线中,如果一根 K 线的最高价 ≥ 另一根的最高价,且最低价 ≤ 另一根的最低价,也就是一根 K 线的高低点完全包裹住另一根,就称这两根 K 线存在「包含关系」。
2.缠论中对包含处理顺序的规定:从左到右,依次合并。必须按照 K 线出现的时间顺序,从最老到最新(从左到右)依次处理,先合并前面的,再用合并后的新 K 线和后面的 K 线比较,不能跳着处理、不能从右往左处理。
3.缠论中对包含处理合并方向的规定:不是看包含的两根 K 线谁高谁低,而是由「这组包含关系之前,最近一根没有包含关系的 K 线」来决定:取包含组左侧最近的一根独立 K 线,和包含组的第一根 K 线比较:(1)如果立 K 线高点 < 包含组第一根的高点,属于上升趋势中的包含,按向上合并处理;(2)如果 独立 K 线高点 > 包含组第一根的高点,属于下降趋势中的包含,按向下合并处理。
4.缠论中对合并取值的规定:(1)向上合并(高高原则):合并后的新 K 线,高点取两根 K 线高点的最大值,低点取两根 K 线低点的最大值。也就是:`新高 = max(高1, 高2)`,`新低 = max(低1, 低2)`;(2)向下合并(低低原则):合并后的新 K 线,高点取两根 K 线高点的最小值,低点取两根 K 线低点的最小值。
5.缠论中对于连续包含的处理规定:如果出现三根及以上连续的包含 K 线,就从左到右滚动合并:(1)先合并前两根,得到一根新的 K 线;(2)用这根新 K 线和第三根比较,如果还是包含关系,继续按同一个方向合并;(3)直到遇到不包含的 K 线,输出最终合并后的 K 线,继续往后遍历。(4)连续包含的方向,由第一组包含的前序方向决定,中间不会变方向。
6.关于起始边界的处理:如果图表最开头的前两根 K 线就存在包含,没有更前面的独立 K 线来定方向,禅师没说怎么弄,但我们可以给出最简单的处理方法,把这两个K线舍弃掉,把第三根K线作为起始K线,如果第三根和第四根还是包含关系(这种可能性也不是没有,一直处于窄幅震荡中,就会出现连续的包含K线)那就继续舍弃好了。我们算了最近两千根K线,头几根丢掉也无所谓,没什么影响。
7.补充规定:缠论中并没有特殊要求,呈现包含关系的两个K线是左边的长一点,还是右边的长一点,所以我们默认无论是左K包右K,还是右K包左K,都是包含关系,都按上面的要求处理。
8.显示要求:这一分析步骤,在代码中最终只形成了一个处理后的K线数据组,我们是看不到的。为了让我们可以看到代码分析的成果,评判它是否正确,需要进行可视化处理。简单来说,把向上合并的K线组用蓝色方框框起来,向下合并的K线组用红色方框框起来。
这些要求罗列清楚无歧义后,就可以丢给豆包,让它试着生成一版代码了。
(二)包含关系K线合并程序代码实例
下面是具体代码,我每一句都加了简单的注释,但想要彻底读懂它,必须要学会MQL5语言的基础语法,同时还要有一点数据结构、算法方面的基础原理知识:
购买 已有0人购买, 当前内容需向作者支付 100 H币 才能浏览
我加的注释较多,希望能够方便初学者理解。写这段代码,豆包只用了五秒钟,我理解捋清这段代码,用了一天半。想要学明白MQL5语言,不如自己上手做一个缠论分析程序出来,你几乎可以遇到所有的MQL5语言知识,从最基础的语法到函数,再到数据结构、基本算法,图形表达等等方面,可以说一通百通。这段代码直接复制进你的编译器编译即可使用。然后在MT5-插入-指标-自定义中就可以找到。它的运行效果如下图所示:
ScreenShot_2026-10-05_134905_728.png
换一个品种试试,效果一样可以。
ScreenShot_2026-10-05_172448_359.png
可以看到该合并都合并了,且合并的方向也没问题,下一步就可以继续编写顶底分型的函数,然后再设计一个图例显示它找到的顶底分型,其他的线段、中枢之类的,只要能明确条件要求,都能做出来。下一篇文章将实现顶底分型的代码和效果展示。
最近访问 头像模式
举报

评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

麻爪

麻爪 D

如果你想让一个人下地狱,介绍他做交易。
如果你想让一个人在地狱里永不超生,介绍他做EA交易。

Fast跟单EA