今天讲述CURRBARSCOUNT函数的应用举例第二篇。

通常情况下,我们都是依据特定的条件,横向画出全长的水平直线或者射线。如果只画出特定的中间区间的水平线段,如何建立算法呢?

思路步骤

  1. 首先取得数据的位置;
  2. 依据条件取得基本数据;
  3. 以数据的位置作为参照的基点,向左、向右、左右双向输出水平线段。

算法建立

  1. 本次举例使用峰谷函数法取得数据的位置:

TE:=CONST(PEAKBARS(1,转向比/10,第几个)) 1;

TB:=CONST(TROUGHBARS(2,转向比/10,第几个)) 1;

DRAWICON(CURRBARSCOUNT=TE,H*1.008,39);

DRAWICON(CURRBARSCOUNT=TB,L*0.999,38);

2. 依据条件取得基本数据:

CONST(REF(H,TE-1));

CONST(REF(L,TB-1));

3. 向左、向右、向左右双向输出水平线段:

FZ向左:IF(RANGE(CURRBARSCOUNT,TE-1,TE 向左画),CONST(REF(H,TE-1)),DRAWNULL),COLORGREEN,DOTLINE;

GZ向左:IF(RANGE(CURRBARSCOUNT,TB-1,TB 向左画),CONST(REF(L,TB-1)),DRAWNULL),COLORRED,DOTLINE;

FZ左右:IF(RANGE(CURRBARSCOUNT,TE-左右画,TE 左右画),CONST(REF(H,TE-1)),DRAWNULL),COLORGREEN;

GZ左右:IF(RANGE(CURRBARSCOUNT,TB-左右画,TB 左右画),CONST(REF(L,TB-1)),DRAWNULL),COLORRED;

FZ向右:IF(RANGE(CURRBARSCOUNT,TE-向右画,TE 1),CONST(REF(H,TE-1)),DRAWNULL),COLORGREEN;

GZ向右:IF(RANGE(CURRBARSCOUNT,TB-向右画,TB 1),CONST(REF(L,TB-1)),DRAWNULL),COLORRED;

效果示意

五个参数以及完整代码

5mm线段画法图解(任意区间水平线段的画法)(1)

参数1-4

5mm线段画法图解(任意区间水平线段的画法)(2)

参数5

TE:=CONST(PEAKBARS(1,转向比/10,第几个)) 1;

TB:=CONST(TROUGHBARS(2,转向比/10,第几个)) 1;

DRAWICON(CURRBARSCOUNT=TE,H*1.008,39);

DRAWICON(CURRBARSCOUNT=TB,L*0.999,38);

FZ向左:IF(RANGE(CURRBARSCOUNT,TE-1,TE 向左画),CONST(REF(H,TE-1)),DRAWNULL),COLORGREEN,DOTLINE;

GZ向左:IF(RANGE(CURRBARSCOUNT,TB-1,TB 向左画),CONST(REF(L,TB-1)),DRAWNULL),COLORRED,DOTLINE;

FZ左右:IF(RANGE(CURRBARSCOUNT,TE-左右画,TE 左右画),CONST(REF(H,TE-1)),DRAWNULL),COLORGREEN;

GZ左右:IF(RANGE(CURRBARSCOUNT,TB-左右画,TB 左右画),CONST(REF(L,TB-1)),DRAWNULL),COLORRED;

FZ向右:IF(RANGE(CURRBARSCOUNT,TE-向右画,TE 1),CONST(REF(H,TE-1)),DRAWNULL),COLORGREEN;

GZ向右:IF(RANGE(CURRBARSCOUNT,TB-向右画,TB 1),CONST(REF(L,TB-1)),DRAWNULL),COLORRED;

计算创造价值,分享助你成功。

江丰鱼的文章只在今日头条首发,未经授权禁止引用或转载;文中代码均可运行。

,