计算出人意料-第五道题


绘制直线是数据处理中最必需的日常,而输出直线,对直线起点与终点的获得,通常采用的是峰谷函数,近期的评论区里对未来函数不可用的讨论此起彼伏,为了避开未来函数的争议,这里对峰与峰、谷与谷、峰与谷、谷与峰的直线输出方法,进行变通处理---用最简单和“笨”的思路,取得所需要的起点与终点的值。


思路步骤

  1. 使用函数CURRBARSCOUNT,来确定数据的位置,然后,获取对应数据的基本数据,今天只取用最值用于计算,共有4个;
  2. 输出4条直线;
  3. 进行直线当前值的标示以及所取数据位的标示。


算法建立

1.

QDH:=IF(CURRBARSCOUNT=FH,H,DRAWNULL);

QDL:=IF(CURRBARSCOUNT=FL,L,DRAWNULL);

ZDH:=IF(CURRBARSCOUNT=GH,H,DRAWNULL);

ZDL:=IF(CURRBARSCOUNT=GL,L,DRAWNULL);

2.

HH:DRAWLINE(H=QDH,H,H=ZDH,H,1);

LL:DRAWLINE(L=QDL,L,L=ZDL,L,1);

HL:DRAWLINE(H=QDH,H,L=ZDL,L,1);

LH:DRAWLINE(L=QDL,L,H=ZDH,H,1);

3.

DRAWNUMBER(ISLASTBAR,HH,HH);

DRAWNUMBER(ISLASTBAR,LL,LL);

DRAWNUMBER(ISLASTBAR,HL,HL);

DRAWNUMBER(ISLASTBAR,LH,LH);

DRAWICON(CURRBARSCOUNT=FH,H,86);

DRAWICON(CURRBARSCOUNT=FL,L,85);

DRAWICON(CURRBARSCOUNT=GH,H,86);

DRAWICON(CURRBARSCOUNT=GL,L,85);


代码流程

计算出人意料---第五道题

江丰鱼的代码

完整代码

QDH:=IF(CURRBARSCOUNT=FH,H,DRAWNULL);

QDL:=IF(CURRBARSCOUNT=FL,L,DRAWNULL);

ZDH:=IF(CURRBARSCOUNT=GH,H,DRAWNULL);

ZDL:=IF(CURRBARSCOUNT=GL,L,DRAWNULL);

HH:DRAWLINE(H=QDH,H,H=ZDH,H,1);

LL:DRAWLINE(L=QDL,L,L=ZDL,L,1);

HL:DRAWLINE(H=QDH,H,L=ZDL,L,1);

LH:DRAWLINE(L=QDL,L,H=ZDH,H,1);

DRAWNUMBER(ISLASTBAR,HH,HH);

DRAWNUMBER(ISLASTBAR,LL,LL);

DRAWNUMBER(ISLASTBAR,HL,HL);

DRAWNUMBER(ISLASTBAR,LH,LH);

DRAWICON(CURRBARSCOUNT=FH,H,86);

DRAWICON(CURRBARSCOUNT=FL,L,85);

DRAWICON(CURRBARSCOUNT=GH,H,86);

DRAWICON(CURRBARSCOUNT=GL,L,85);

效果示意

计算出人意料---第五道题

效果示意图


出人意料

在做视频的过程中,随意的调整参数以作演示,上图却出现了意料之外的收获---

  1. 黄线与白线,出现了平行的情况,意味着两者之间的直线斜率K是相同的;
  2. 洋红色线的最后延伸处,出现了一个向上的方向。

这两点的小小意外,是最初避开未来函数绘制直线时所没有预料到的,而这样的结果,难能可贵而又令人惊喜不已。


我的努力只为达成你的成功,赞赏是相伴前行的动力。

江丰鱼的文章只在今日头条首发;文中代码均可运行。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章