小议“缠论”的那些事儿(二)
对缠论的理解,我们依然还在学习和探讨当中,前期的文章及代码《小议“缠论”的那些事儿(一)》以及本文,都是一砖一瓦式的底层算法理解与构建,欢迎高手不吝赐教,使得本项主题的积累更有效更正确。分享本文的前提是认可上一篇文章《小议“缠论”的那些事儿(一)》。
请看留言的截图,开始见到网友的思路需求时,脑海中首先闪现的就是实现“缠论”这个词,然后也就是在几分钟的时间内,给出了下述的算法,但是并没有做出矩形的第四条边。今天做简单回顾和分享,只为抛砖引玉,渴望你的帮助。
网友的留言
网友留言的思路需要是:
取过去的高点;再取最近的低点;连线最少包含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;
(三)、主图标注的完整代码:
代码流程
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;
(四)、主图标注效果示意图:缺少矩形的左侧纵向边
效果示意图
期待你的思路支持。
本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
0条评论