分享

【通达信】Drawline()函数也藏有秘密

 有涯之生 2015-10-10
以前写公式多次使用过drawline函数,有时确实有困惑,和预期不同,但又没弄清到底是怎么回事。得过且过了。那天看冷妞妞的回帖(最初的感觉有点怪),再一次激发了我对drawline()算法重新了解的兴趣。

Drawline(xx1,y1,xx2,y2,0) 函数

在(x,y)平面,画从点A=(x1,Y1) 到点B=(x2,y2)的直线段。其中x1是满足条件xx1的K线的x坐标,y1是相应的y坐标值。(x2,Y2) 是线段终点B的坐标。
要求点A在点B的左边。

如果只有一点A满足条件xx1,另一点B满足条件xx2,画出的是一条A到B的直线段。这样就简单了,相信每个股软对此的处理都是一样的。

如果有多个这样的(a,b),则单个Drawline()语句将画出多条直线段。当然,这些线段一定是互不重叠的,即排列为  …a…b…a…b…a…b…。可以认为,Drawline语句从左到右依次画出线段。如果没有再找到a ,或者,有a后没找到b,则画线结束。

例如考虑以下从阳线到阴线的画线语句:
xx1:= close>open;
xx2:=close<open;
drawline(xx1,high,xx2,high,0),colorwhite,linethick2;

通常有许多阳线,有许多阴线,它们的排列一般是无序的 –-- 并非是一阳接一阴这样简单有规律地排列。 那么,系统怎么来确定线段的始点A’s和配对的终点B’s呢?

。。。 。。。
比较这两张图,你应该发现通达信和大智慧有完全不同的算法!我没有把它们写在这里,是因为描述起来挺啰嗦,又担心白写,不会有多少人看到帖子就沉了。好在这个规律不难总结,你自己可以来。本帖就算是提醒。希望读到的人能从中受到提醒。

Drawline(xx1,y1,xx2,y2,1)
如果弄清了drawline(……,0)的算法,再考虑drawline(……,1)的算法,就简单许多。(但在通达信,也并非像你想象的那样“简单延长”了事。)

如果你弄清了这些算法,相信用起drawline()函数来就更得心应手了。

DRAWKLINE(H,O,L,C);
CBC:CURRBARSCOUNT,NODRAW;
Z:ZIG(3,10),COLORWHITE;
A:=CONST(PEAKBARS(3,10,2))+1;
B:=CONST(PEAKBARS(3,10,3))+1;
CC:=CONST(PEAKBARS(3,10,4))+1;
D:=CONST(PEAKBARS(3,10,5))+1;
E:=CONST(PEAKBARS(3,10,6))+1;

BA:DRAWLINE(CBC=B,C,CBC=A,C,1),COLORFFFF00;
CA:DRAWLINE(CBC=CC,C,CBC=A,C,1),COLOR00FF00;
DA:DRAWLINE(CBC=D,C,CBC=A,C,1),COLOR0000FF;
EA:DRAWLINE(CBC=E,C,CBC=A,C,1),COLOR00FFFF;


股票论坛 www.55
<open;
188.comvEVERY(RANGE(MA(V,5)/MA(V,20),0.8,1.20),20);

划下斜线:DRAWLINE(C>=HHV(C,20),H,C<=LLV(C,10),HHV(C,6),1),COLORYELLOW,LINETHICK3;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多