编写思路
想要随意输入一个点位,即可按照这个点位自动画线,此线可以多空变色,上下突破线时箭头提示并发出声音预警。
代码函数重点解析
A、DRAWSL 绘制直线(段)。
用法:
DRAWSL(COND,DATA,SLOPE,LEN,EXPAND,COLOR);
当条件COND满足时,在DATA数据处以每个周期相差SLOPE个价位作为斜率画LEN个周期长的线段。
EXPAND为画线延长方式0:不延伸;1:向左延伸;2:向右延伸;3:双向延伸。
注:
1、每根k线与每根k线(每个周期)的纵向高度差为SLOPE。
2、当SLOPE为0时,画的是水平线。
3、LEN支持写为变量。
4、该函数支持在函数后设置线型(LINETHICK1 - LINETHICK7、POINTDOT、DOT),即支持下面的写法:
DRAWSL(COND,DATA,SLOPE,LEN,EXPAND,COLOR),LINETHICK;
5、不支持将该函数定义为变量,即不支持下面的写法:
A:DRAWSL(COND,DATA,SLOPE,LEN,EXPAND,COLOR);
6、模型中含有ISLASTBAR和未来函数并且数据较多时,不建议与该函数连用。
例1:
DRAWSL(C>O,H,0,2,0,COLORYELLOW);//表示当前k线为阳线时,从最高价开始画长度为2个周期的水平线,颜色为黄色。
B、DRAWTEXT:显示文字。
用法:
DRAWTEXT(COND,PRICE,TEXT);
当COND条件满足时,在PRICE位置书写文字TEXT。
例1:
DRAWTEXT(CLOSE<OPEN&&REF(CLOSE,1)<REF(OPEN,1)&&REF(VOL,1)*1.1<VOL,LOW,'注');//
表示连续两日收阴并且成交量比前一日至少多10%时,在最低价上写"注"字。
C、DRAWSHIFTNUMBER 输出数值
用法:DRAWSHIFTNUMBER(COND,DATA,NUMBER,PRECISION,COLOR,DIRECTION,X);当条件满足时在DATA位置写数字NUMBER。PRECISION为精度(小数点后有几位数字)。COLOR为颜色。DIRECTION 为偏移的方向: 0 左 1右 , X 为偏移的K线根数。
例1:
DRAWSHIFTNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED,0,1);//表示当日涨幅大于8%时在最高价位置红色显示涨幅数值向左偏移一根k线(相对开盘价的百分比,精确2位小数)。
源码编写
A:=N;
DRAWSL(C>A,A,0,1,0,COLORMAGENTA);
DRAWSL(C<A,A,0,1,0,COLORLIGHTGREEN);
DRAWSL(C=A,A,0,1,0,COLORWHITE);
DRAWTEXT(CROSS(C,A),L*MINPRICE,'↑'),VALIGN0,RGB(255,204,255),FONTSIZE20;
DRAWTEXT(CROSSDOWN(C,A),L*MINPRICE,'↓'),VALIGN0,RGB(0,227,57),FONTSIZE20;
DRAWTEXT(C=A,L*MINPRICE,'●'),VALIGN0,RGB(255,255,255),FONTSIZE13;
REF(CROSS(C>A,0.5),1),SOUND('A');
REF(CROSS(C<A,0.5),1),SOUND('B');
DRAWSHIFTNUMBER(ISLASTBAR,A,A,0,COLORRED,0,LLVBARS(ABS(C-A),BARPOS)),FONTSIZE25;
源码解析
1.A赋值:N
2.当满足条件收盘价>A时,在A位置画斜线0斜率1长度,0方向.
3.当满足条件收盘价<A时,在A位置画斜线0斜率1长度,0方向.
4.当满足条件收盘价=A时,在A位置画斜线0斜率1长度,0方向.
5.当满足条件收盘价上穿A时,在最低价*MINPRICE位置书写文字,VALIGN0,自定色,FONTSIZE20
6.当满足条件CROSSDOWN(收盘价,A)时,在最低价*MINPRICE位置书写文字,VALIGN0,自定色,FONTSIZE20
7.当满足条件收盘价=A时,在最低价*MINPRICE位置书写文字,VALIGN0,自定色,FONTSIZE13
8.1日前的收盘价>A上穿0.5,SOUND('A')
9.1日前的收盘价<A上穿0.5,SOUND('B')
10.DRAWSHIFTNUMBER(是否最后一个周期,A,A,0,画红色,0,BARPOS日内收盘价-A的绝对值距今天数),FONTSIZE25
指标效果图: