小议“缠论”的那些事儿(二)

小议“缠论”的那些事儿(二),第1张

对缠论的理解,我们依然还在学习和探讨当中,前期的文章及代码《小议“缠论”的那些事儿(一)》以及本文,都是一砖一瓦式的底层算法理解与构建,欢迎高手不吝赐教,使得本项主题的积累更有效更正确。分享本文的前提是认可上一篇文章《小议“缠论”的那些事儿(一)》。

请看留言的截图,开始见到网友的思路需求时,脑海中首先闪现的就是实现“缠论”这个词,然后也就是在几分钟的时间内,给出了下述的算法,但是并没有做出矩形的第四条边。今天做简单回顾和分享,只为抛砖引玉,渴望你的帮助。

小议“缠论”的那些事儿(二),文章图片1,第2张

网友的留言

网友留言的思路需要是:

取过去的高点;再取最近的低点;连线最少包含5根k线用框框住。

(一)、思路步骤:

1.为了更快捷与方便,文中算法依然采用了软件中最常用的峰、谷函数方法来实现需求;

2.由于峰谷函数自身的属性,决定了基于该思路下的算法输出带有瑕疵(角度线输出有漂移);

3.计算峰谷所在的位置,这是算法建立时用到峰谷函数时永恒不变的“先手棋”;

4.确定相邻峰谷之间的距离间隔,这是本算法的“棋眼”;

5. 上述与前一篇文章分享的一样的,一开始的构建思路,为了画框而画框,所以计算TE=0 和TB=0时对应点的值---凑够4条边与左上右下对角线的条件;

6.画出了4条线,这也是为什么更改思路,分享了前言《小议“缠论”的那些事儿(一)》的原因;

7.前文及本文,关于对角线本文算法没有改变,依然有漂移---这也成为“未完待续”的伏笔。

(二)、算法的建立过程:

1.计算峰位与谷位

TE:=PEAKBARS(1,转向比,1);

TB:=TROUGHBARS(2,转向比,1);

2.相邻峰谷之间的数据间隔个数

TB0TE:=IF(TB=0,TE,DRAWNULL);

3.条件限定,TB0TE =10中的数字10可以任意修改,并不小于4

TE0TJ:=TB0TE =4 AND TB0TE =10 AND TE=0;

TB0TJ:=TB0TE =4 AND TB0TE =10 AND TB=0;

4.计算TE=0 和TB=0时对应点的值

EH:=IF(TB0TJ,REF(H,TB0TE),DRAWNULL);

BL:=IF(TB0TJ,L,DRAWNULL);

画左上右下的对角线

EHBL:DRAWLINE(TE0TJ,H,EH BL AND TB0TJ,L,0),COLORWHITE;

5.画矩形的左右顶边

DRAWSL(TB0TJ,EH,0,TB0TE,1),COLORWHITE;

6. 画矩形的左右底边

DRAWSL(TB0TJ,L,0,TB0TE,1),COLORWHITE;

7.画矩形的纵向右边

STICKLINE(TB0TJ,L,EH,0,0),COLORWHITE;

(三)、主图标注的完整代码:

小议“缠论”的那些事儿(二),文章图片2,第3张

代码流程

TE:=PEAKBARS(1,转向比,1);

TB:=TROUGHBARS(2,转向比,1);

TB0TE:=IF(TB=0,TE,DRAWNULL);

TE0TJ:=TB0TE =4 AND TB0TE =10 AND TE=0;

TB0TJ:=TB0TE =4 AND TB0TE =10 AND TB=0;

EH:=IF(TB0TJ,REF(H,TB0TE),DRAWNULL);

BL:=IF(TB0TJ,L,DRAWNULL);

EHBL:DRAWLINE(TE0TJ,H,EH BL AND TB0TJ,L,0),COLORWHITE;

DRAWSL(TB0TJ,EH,0,TB0TE,1),COLORWHITE;

DRAWSL(TB0TJ,L,0,TB0TE,1),COLORWHITE;

STICKLINE(TB0TJ,L,EH,0,0),COLORWHITE;

(四)、主图标注效果示意图:缺少矩形的左侧纵向边

小议“缠论”的那些事儿(二),文章图片3,第4张

效果示意图

期待你的思路支持。


本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 小议“缠论”的那些事儿(二)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情