[通达信]源码&&指标

2,511 阅读24分钟

参考网址

wenku.baidu.com/view/a92235…

斐波那契k线(主图)

    {NOTEXT1:MA(CLOSE,1),COLORWHITE;
    NOTEXT2:MA(CLOSE,2),COLORYELLOW;
    NOTEXT3:MA(CLOSE,3),COLORGREEN;
    }
    MA5:MA(CLOSE,5),COLORRED;
    MA8:MA(CLOSE,8),COLORRED;
    MA13:MA(CLOSE,13),COLORBLUE;
    MA21:MA(CLOSE,21),COLORGREEN,LINETHICK1;

    MA34:MA(CLOSE,34),COLORWHITE,LINETHICK4;

    MA55:MA(CLOSE,55),COLORYELLOW,LINETHICK3;
    MA89:MA(CLOSE,89),COLORGREEN,LINETHICK4;

    MA144:MA(CLOSE,144),COLORLIBLUE,LINETHICK5;

    MA233:MA(CLOSE,233),COLORRED,LINETHICK7;

    {以下为涨停为紫色跌停黄色}
    涨幅限制:=IF(NAMELIKE('ST') OR NAMELIKE('*ST') OR NAMELIKE('SST') OR NAMELIKE('S*ST'),105,110);{代表1.05和1.1}
    跌幅限制:=IF(NAMELIKE('ST') OR NAMELIKE('*ST') OR NAMELIKE('SST') OR NAMELIKE('S*ST'),95,90);{代表0.95和0.9}
    涨停:=ROUND(CLOSE*100)>=ROUND(REF(CLOSE,1)*涨幅限制) AND CLOSE=HIGH;
    STICKLINE(涨停,C,O,3,0),COLORDD00DD;
    STICKLINE(涨停,C,O,2.5,0),COLORBB00BB;
    STICKLINE(涨停,C,O,2,0),COLORFF00FF;
    STICKLINE(涨停,C,O,1.3,0),COLORFF00FF;
    STICKLINE(涨停,C,O,1,0),COLORFF83FA;
    STICKLINE(涨停,C,O,0.2,0),COLORFABBFF;
    STICKLINE(涨停,H,L,0,0),COLORFF00FF;

    跌停:=ROUND(CLOSE*100)<=ROUND(REF(CLOSE,1)*跌幅限制+1) AND CLOSE=LOW;
    STICKLINE(跌停,O,C,3,0),COLOR9F5F9F;
    STICKLINE(跌停,O,C,2.5,0),COLOR115555;
    STICKLINE(跌停,O,C,2,0),COLOR117777;
    STICKLINE(跌停,O,C,1.5,0),COLOR119999;
    STICKLINE(跌停,O,C,1,0),COLOR11BBBB;
    STICKLINE(跌停,O,C,0.5,0),COLOR11DDDD;
    STICKLINE(跌停,L,H,0,0),COLOR44FFFF;

    {收盘价线}
    {CLOSE,COLORMAGENTA,LINETHICK4;}

    {收盘价线变色}
    {IF(CLOSE>REF(CLOSE,1),CLOSE,DRAWNULL),COLORYELLOW,LINETHICK4;
    IF(CLOSE<=REF(CLOSE,1),CLOSE,DRAWNULL),COLORGREEN,LINETHICK4;};

类M(主图)

{背景色}
{DRAWGBK(C>0,RGB(00,0,150),RGB(0,00,0),0,'',0);}


VAR1:=(2*CLOSE+HIGH+LOW+OPEN)/5;

A0:= (EMA(VAR1,1)+EMA(VAR1,2)+EMA(VAR1,3)+EMA(VAR1,5))/4,COLOR8FF6FF;
A1:=(EMA(VAR1,3)+EMA(VAR1,5)+EMA(VAR1,8)+EMA(VAR1,13))/4,COLOR6F97E8;
A2:= (EMA(VAR1,8)+EMA(VAR1,13)+EMA(VAR1,21)+EMA(VAR1,34))/4,COLOR6F97E8;

{添加更多时间的数据,趋势线更缓慢}
{A1: (EMA(VAR1,3)+EMA(VAR1,5)+EMA(VAR1,8)+EMA(VAR1,13)+EMA(VAR1,21))/5,COLOR00FFFF;}


安全线:=EMA(CLOSE,21);

安全线3:=EMA(CLOSE,89);



{---------------------------变色面积图-------------------------------}
STICKLINE((A0>REF(A0,1) AND A0>安全线3),A0,安全线3,2,0),COLORRED;
STICKLINE((A0<=REF(A0,1) AND A0>安全线3),A0,安全线3,2,-1),COLORC0C0C0;
STICKLINE((A0<=REF(A0,1) AND A0<=安全线3),A0,安全线3,2,0),COLORFEBF01;
STICKLINE((A0>REF(A0,1) AND A0<=安全线3),A0,安全线3,2,-1),COLORC0C0C0;

STICKLINE((A0>REF(A0,1) AND A0>安全线),A0,安全线,2,0),COLOR0033FF;
STICKLINE((A0<=REF(A0,1) AND A0>安全线),A0,安全线,2,-1),COLORC0C0C0;
STICKLINE((A0<=REF(A0,1) AND A0<=安全线),A0,安全线,2,0),COLORFEBF01;{COLORFFFF66}
STICKLINE((A0>REF(A0,1) AND A0<=安全线),A0,安全线,2,-1),COLORC0C0C0;

{均线体系}
NOTEXT1:=MA(CLOSE,1),COLORWHITE;
NOTEXT2:=MA(CLOSE,2),COLORYELLOW;
NOTEXT3:=MA(CLOSE,3),COLORGREEN;
NOTEXT5:=MA(CLOSE,5),COLORLIBLUE;
NOTEXT8:=MA(CLOSE,8),COLORWHITE;
NOTEXT13:=MA(CLOSE,13),COLORLIGRAY;
MA21:MA(CLOSE,21),COLORGREEN,LINETHICK2;
MA34:MA(CLOSE,34),COLORWHITE,LINETHICK2;
MA55:MA(CLOSE,55),COLORYELLOW,LINETHICK2;
MA89:MA(CLOSE,89),COLORGREEN,LINETHICK2;
MA144:MA(CLOSE,144),COLORLIBLUE,LINETHICK2;
MA233:MA(CLOSE,233),COLORCYAN,LINETHICK2;



{---------------------------变色面积图2-------------------------------}
{STICKLINE((A0>REF(A0,1) AND A0<=安全线3),A0,安全线3,2,-1),COLORC0C0C0;
STICKLINE((A0>REF(A0,1) AND A0>安全线),A0,安全线,2,0),COLORRED;
STICKLINE((A0<=REF(A0,1) AND A0>安全线),A0,安全线,2,-1),COLORC0C0C0;
STICKLINE((A0<=REF(A0,1) AND A0<=安全线),A0,安全线,2,0),COLORGREEN;
STICKLINE((A0>REF(A0,1) AND A0<=安全线),A0,安全线,2,-1),COLORC0C0C0;}


A00:A0,LINETHICK2,COLORWHITE;{COLORLIGRAY}
安全线0:=安全线,LINETHICK2,COLORWHITE;


{-----------------------------------------------------}
{实心基础K线 最后一个数值为0}
{DRAWKLINE(HIGH,OPEN,LOW,CLOSE);}
{STICKLINE(CLOSE>=OPEN,O,C,2,0),COLORRED;
STICKLINE(CLOSE<OPEN,O,C,2,0),COLORGREEN;
STICKLINE(CLOSE>=OPEN,H,C,0,0),COLORRED;
STICKLINE(CLOSE>=OPEN,L,O,0,0),COLORRED;
STICKLINE(CLOSE<OPEN,H,O,0,0),COLORGREEN;
STICKLINE(CLOSE<OPEN,C,L,0,0),COLORGREEN;}

{立体K线}

{STICKLINE(C>O,H,L,0,0),COLOR7D7DFF;
STICKLINE(C>O,C,O,0,0),COLOR7D7DFF;
STICKLINE(C>O,C,O,3.1,0),COLOR1313FF;
STICKLINE(C>O,C,O,2.4,0),COLOR2424FF;
STICKLINE(C>O,C,O,2.0,0),COLOR2D2DFF;
STICKLINE(C>O,C,O,1.6,0),COLOR4444FF;
STICKLINE(C>O,C,O,1.2,0),COLOR5757FF;
STICKLINE(C>O,C,O,0.6,0),COLOR6666FF;
STICKLINE(C>O,C,O,0.1,0),COLOR7D7DFF;
STICKLINE(C<O,H,L,0,0),COLORFF9900;
STICKLINE(C<O,C,O,0,0),COLORFF5500;
STICKLINE(C<O,C,O,3.1,0),COLORFF6600;
STICKLINE(C<O,C,O,2.4,0),COLORFF7700;
STICKLINE(C<O,C,O,2.0,0),COLORFF8800;
STICKLINE(C<O,C,O,1.6,0),COLORFF9900;
STICKLINE(C<O,C,O,1.2,0),COLORFFAA00;
STICKLINE(C<O,C,O,0.6,0),COLORFFCC00;
STICKLINE(C<O,C,O,0.1,0),COLORFFFF00;};

类M(副图)

{类MACD指标}
VAR1:=(2*CLOSE+HIGH+LOW+OPEN)/5;

A0:=(EMA(VAR1,1)+EMA(VAR1,2)+EMA(VAR1,3)+EMA(VAR1,5))/4,COLOR8FF6FF;
A1:=(EMA(VAR1,3)+EMA(VAR1,5)+EMA(VAR1,8)+EMA(VAR1,13))/4,COLORC1C1FF;
A2:= (EMA(VAR1,8)+EMA(VAR1,13)+EMA(VAR1,21)+EMA(VAR1,34))/4,COLORB334FF;

{添加更多时间的数据,趋势线更缓慢}
{A1: (EMA(VAR1,3)+EMA(VAR1,5)+EMA(VAR1,8)+EMA(VAR1,13)+EMA(VAR1,21))/5,COLOR00FFFF;}


安全线:=EMA(CLOSE,21);

安全线3:=EMA(CLOSE,89);


{---------------------------变色面积图-------------------------------}


STICKLINE((A0>REF(A0,1) AND A0>安全线3),A0,安全线3,2,0),COLORRED;
STICKLINE((A0<=REF(A0,1) AND A0>安全线3),A0,安全线3,2,-1),COLORC0C0C0;
STICKLINE((A0<=REF(A0,1) AND A0<=安全线3),A0,安全线3,2,0),COLORLIBLUE;
STICKLINE((A0>REF(A0,1) AND A0<=安全线3),A0,安全线3,2,-1),COLORC0C0C0;

STICKLINE((A0>REF(A0,1) AND A0>安全线),A0,安全线,2,0),COLOR0033FF;
STICKLINE((A0<=REF(A0,1) AND A0>安全线),A0,安全线,2,-1),COLORC0C0C0;
STICKLINE((A0<=REF(A0,1) AND A0<=安全线),A0,安全线,2,0),COLORFFFF66;
STICKLINE((A0>REF(A0,1) AND A0<=安全线),A0,安全线,2,-1),COLORC0C0C0;


{---------------------------描边-------------------------------}

A00:A0,LINETHICK1,COLORWHITE;
安全线0:=安全线,LINETHICK1,COLORWHITE;


{=========缩量底=========}
{
X1:=CLOSE>REF(CLOSE,1) AND REF(CLOSE,1)<REF(CLOSE,2);

X2:=REF(CLOSE,1)>LLV(CLOSE,10);
DRAWICON(X1 AND X2,CLOSE,1);
};

绿包红KDJ

{======MACD参数=======}
SHORT:=12;
LONG:=26;
MID:=9;
{快慢线}
DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:=EMA(DIF,MID);
{柱线}
MACD:=(DIF-DEA)*2;

{=============传统KDJ=============}
N:=9;
M1:=3;
M2:=3;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;

K:SMA(RSV,M1,1),COLOR03FAF5,LINETHICK2;
D:SMA(K,M2,1),COLORWHITE,LINETHICK2;
J:3*K-2*D,COLORRED,LINETHICK2;

{=============大级别KDJ============}
N_2:=21;
M1_2:=8;
M2_2:=8;
RSV_2:=(CLOSE-LLV(LOW,N_2))/(HHV(HIGH,N_2)-LLV(LOW,N_2))*100;

{不显示}
K_2:=SMA(RSV_2,M1_2,1),COLORYELLOW,LINETHICK2;
D_2:=SMA(K_2,M2_2,1),LINETHICK2;
{显示出来}
J_2:3*K_2-2*D_2,COLORGREEN,LINETHICK2;

{============顶底和中轴虚线============}
DI:0,COLORYELLOW,DOTLINE;
Z:50,COLORYELLOW,DOTLINE;
G:100,COLORYELLOW,DOTLINE;

{============小级别KDJ============}
N2:=1;
RSV2:=(CLOSE-LLV(LOW,N2))/(HHV(HIGH,N2)-LLV(LOW,N2))*100;
K2:=SMA(RSV2,3,1);
D2:=SMA(K2,3,1);
{展示出来}
J2:3*K2-2*D2,COLORWHITE,LINETHICK1;{白色};

{=============向下做空=============}
X0:=J>=90 OR (J_2>J AND J>=80);

DRAWICON(COUNT(X0,3)>=1 AND 
MACD>0 AND MACD<REF(MACD,1) AND REF(MACD,1)>REF(MACD,2),120,2);

DRAWICON(COUNT(MACD>0 AND MACD<REF(MACD,1) AND REF(MACD,1)>REF(MACD,2),15)>=3 AND DIF>0 AND DEA>0,130,5);

变色MACD

{======MACD======}
SHORT:=12;
LONG:=26;
MID:=9;
{快线,白色}
DIF:EMA(CLOSE,12)-EMA(CLOSE,26),LINETHICK2,COLORWHITE;
{慢线,青色}
DEA:EMA(DIF,MID),LINETHICK2,COLORCYAN;
{柱线}
MACD:(DIF-DEA)*2,COLORSTICK;

SC:=CROSS(DEA,DIF);{DEA下穿过DIF}
T:=BARSLAST(SC)+1;
绿柱根数:T,NODRAW,COLORCYAN;{青色}
LD:=EVERY(MACD<0,T) AND T>=20;{20根K以内一直在0轴下方}
ZCT:=LLVBARS(MACD,T);{上一个低点到现在的周期数;}
{MACD大于自从出现绿色柱子以来的最低点}
CC:=MACD<REF(MACD,1)AND MACD>LLV(MACD,T) AND COUNT(EVERY(MACD>REF(MACD,1),2),ZCT)>=1;{MACD下跌中,且高于上一波的最低点}
TJ:=CC AND LD;{同时满足上面的条件}
NOTEXT:IF(TJ,MACD*1.3,DRAWNULL),POINTDOT,LINETHICK5,COLORYELLOW;
{如果条件满足,画小黄点}

{=====================================}
{=====================================}
{在0轴上方,MACD>前一天的MACD,红色}
STICKLINE(MACD>REF(MACD,1) AND MACD>=0,0,MACD,2,0),COLORRED;

{在0轴下方,MACD>前一天的MACD,白色}
STICKLINE(MACD>REF(MACD,1) AND MACD<0,0,MACD,2,0),COLORWHITE;

{在0轴上方,MACD<前一天MACD,白色}
STICKLINE(MACD<=REF(MACD,1) AND MACD>=0,0,MACD,2,0),COLORWHITE;

{在0轴下方,MACD<前一天MACD,青色}
STICKLINE(MACD<=REF(MACD,1) AND MACD<0,0,MACD,2,0),COLORCYAN;

变色KD

{------------第一级------------}
N2:=13;
M2:=5;
M22:=5;
RSV2:=(CLOSE-LLV(LOW,N2))/(HHV(HIGH,N2)-LLV(LOW,N2))*100;

K2:=SMA(RSV2,M2,1),LINETHICK4;
D2:=SMA(K2,M22,1),LINETHICK4;
J2:=3*K2-2*D2,LINETHICK4;

{----------柱线变色------------}
STICKLINE((K2>REF(K2,1) AND K2>D2),K2-D2,0,2,0),COLORMAGENTA;
STICKLINE((K2<=REF(K2,1) AND K2>D2),K2-D2,0,2,0),COLORWHITE;
STICKLINE((K2<=REF(K2,1) AND K2<=D2),K2-D2,0,2,0),COLORCYAN;
STICKLINE((K2>REF(K2,1) AND K2<=D2),K2-D2,0,2,0),COLORWHITE;



STICKLINE((J2>REF(J2,1) AND J2>D2),J2-D2,0,2,0),COLORMAGENTA;
STICKLINE((J2<=REF(J2,1) AND J2>D2),J2-D2,0,2,0),COLORWHITE;
STICKLINE((J2<=REF(J2,1) AND J2<=D2),J2-D2,0,2,0),COLORCYAN;
STICKLINE((J2>REF(J2,1) AND J2<=D2),J2-D2,0,2,0),COLORWHITE;

ref()

ref()函数,ref从字面上理解是"以前"的意思。
ref(C,1)就是前一天收盘价,,ref(close,2)是前2天的收盘价,以此类推
ref(H,2)是前两天的最高价

ref(vol,1)昨天的成交量, ref(vol,2)是前2天的成交量
demo:
今天的量大于等于昨天量的2倍,股价上涨,选股公式如下所示:
   xg:v > ref(v,1)*2 and c>ref(c,1);

open,close,high,low

open: 当天的开盘价,ref(open,1)是昨天的开盘价,以此类推
close:当天的收盘价

high:一天中的最高价
low:一天中的最低价

vol:代表成交量,一般可以直接写v也可以

max(),min()

max(open, close),计算最大值,比较开盘价和收盘价的最大值。
min(open, close),计算最小值,比较开盘价和收盘价的最大值。

sum(x,n)函数

统计在n周期内,x的总和,如果n=0,则从第一个有效值开始
demo:
   sum(vol, 5) 这是计算5日内的成交量总和
   sum((c-ref(c,1))/ref(c,1)*100,5); 过去5个交易日去的涨跌幅

BARSLAST()函数

含义:上一次条件成立到当前的`周期数`
使用方法:BARSLAST(X)=N: x表示某个条件,上一次X条件成立到当前的周期数为N

X可以是单个条件,也可以是复合条件。

demo:
<1>BARSLAST(CROSS(MA(CLOSE,20),MA(CLOSE,60)));,
     表示上一次20日均线上穿过60日均线的日子到当前的周期数
     如果BARSLAST(CROSS(MA(CLOSE,20),MA(CLOSE,60)))=1,则表示这是第一次出现20日均线上穿60日均线,即今天出现了这种情况
     
<2>X1:=MACD>REF(MACD,1);
   X2:=KDJ.J>REF(KDJ.J,1);
   
   BARSLAST(X1 AND X2) = 1
   表示:上一次 (macd>前一天的macd,并且j>前一天的j) 这个条件成立到今天的周期数是1, 
   也就是今天这个条件刚成立。 
     
     

abs()绝对值函数

abs(x),计算x的绝对值,不管x是正数还是负数,返回的结果都是正数,如果x是0,那么返回的结果就是0

MA()函数:移动平均线,moving avg

 例如:MA(close,10)
 这就是计算过去10天的收盘价的均值,把10天的收盘价加起来,然后除以10
 
 

LLV(X,N)

 计算某个指标X,在n周期内的最小值。如果n=0,那么就从第一个有效值开始,那么就是历史的最低值了
 例如:LLV(low, 0),计算历史最低价
 
 

HHV(X,N)

 计算某个指标x,在n周期内的最大值。如果n=0,那么就是从第一个有效值开始,那么就是历史的最大值了
 HHV(HIGH, 30),计算30日内的最高价
 
 

CROSS(a,b)

用法: a从下向上穿过b时,返回,否则返回0
例如:
   cross(ma(close,5), ma(close,10))
   表示5日均线,从下向上,穿过10日均线

longcross(a,b,n)

表示a在n周期内都一直在b下面,本周期从下向上穿过b

if语句

if(x,a,b)
x是条件,ab都是返回值。
如果x条件满足,则返回1,否则返回b

if(close>open, high,low):表示本周期收阳线,返回最高值,否则返回最低值

计算和某条均线相差多少

w1:abs(c-ma(c,21))/ma(c,21)*100<m
对上面的代码进行解释:
   abs(c-ma(c,21)) 就是计算当前的close收盘价和21日均线的差值,然后计算绝对值。
   然后这个值再除以ma(c,21),得到的值*100

计算n日内的平均涨幅

单日涨幅:=(c/ref(c,1)-1) *100
5日内的平均涨幅:ma(单日涨幅,5)

下穿某条均线又站上来

AA:=Low<MA(C,13) and CLOSE > MA(CLOSE,13);
BB:=Low<MA(C,21) and CLOSE > MA(CLOSE,21);
CC:=Low<MA(C,34) and CLOSE > MA(CLOSE,34);
DD:=Low<MA(C,55) and CLOSE > MA(CLOSE,55);
下穿均线又站上来: AA OR BB OR CC OR DD;

n周期内有涨停

output:count(c/ref(c,1)>=1.1,10) >=1;

every(x,n)函数 和 count(a,b)函数

every()和count()这2个函数,为啥要放在一起介绍呢?
因为二者存在一定的相似性。
every()是在过去的n周期内(包含当前周期),x条件一直存在。
count()是在过去的n周期内(包含当前周期),x条件出现的次数满足一定的条件。

<1>every(x,n)函数

a)含义:EVERY英文翻译成中文是“每个”的意思。
       在通达信编程语言中,EVERY函数的含义是“一直存在”。
       即:在n周期内,x这个条件一直存在,一直满足。如果满足,则输出就是true,否则就是false

b)使用用法:EVERY(X,N),表示N周期内x条件一直满足,X条件比较常见的情况是关系运算,比如A>B之类的。
c)使用例子
   EVERY(MA(C,5) > MA(C,10),10) 
   这代表在近10天之内(包含最新的一个交易日),5日均线一直在10日均线上方。
   
   ma60:=ma(c,60); {60日的均线}
   x:=ma60>ref(ma60,1);  {今天60日均线值大于昨天的60均线值,也就是说60日均线是向上的}
   output:every(x,10); {在10个交易日内,这个条件是一直存在的}
   
举一个稍微复杂一点的例子:
   EVERY(CLOSE>REF(CLOSE,1),3);,以日线为例,表示连涨3天,包括最新的一个交易日。

下图所示:

图片.png

其实在自己编写通达信指标公式的过程中,可以把一句代码写成两句,这样更清晰明了
    > X:=C>REF(C,1);   {这是条件}
    > LZ:EVERY(X,3);   {这是输出}
    

<2>count(x,n)函数

a)含义:COUNT英文翻译成中文就是“计数”的意思,
     在通达信编程语言中,COUNT函数的含义是“统计满足条件x的次数”。
b)使用方法:COUNT(X,N),统计N个周期中满足X条件的周期数
c)举例:COUNT(C>O,10);,以日线为例,表示统计10天中阳线的数量。
  选股:MACD在8天以内两次金叉
    DIFF:=(EMA(CLOSE,12) - EMA(CLOSE,26));
    DEA:=EMA(DIFF,9),COLORBLUE,LINETHICK0;
    MACD:=2*(DIFF-DEA);
    x:cross(DIFF,DEA);   {diff线从下向上,穿过dea线}
    ouput:count(x,8)>=2;    {x这种情况,在过去的8天内,至少出现了2次)

<3>二者的区别

COUNT函数比EVERY函数更灵活
可以认为every()函数可以实现的功能是count()函数可以实现的功能的子集。
every(x,n)只能表示在n个交易日内,x条件一直满足,而不能实现满足的次数<n.
count(x,n)函数的功能就更加强大了,它不仅可以实现every()的功能,还可以实现任意次数的满足。

比如上面的例子EVERY(C>O,3),表示三连阳
也可以用COUNT函数写出来,COUNT(C>O,3)=3;
表示在3个周期内,C>O这个条件出现了3次。因为是3周期内出现了3次,也就是every()函数"一直满足"的意思。
   
    

HHVBARS() LLVBARS() BARSLAST()

3个函数,都是获取周期数的函数。
比如:
   HHVBARS(H,60)即 60个周期内,high最高价到此时此刻的周期数
   
   LLVBARS(X,N)获得N个周期内X最低值到当前的周期数
  举例:LLVBARS(L,60),以日线为例,就是获得60日内最低点到当前的周期数

range(a,b,c)函数和between(a,b,c)函数

range()函数和between()函数,都是判定a是否介于b和c之间
二者的不同是:
   range(a,b,c)中的b<=c
   between(a,b,c)中,b和c之间没有顺序关系。
   

<1>range()函数

 含义;在某个范围之间
 RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0
 B<=C
 

<2>between()函数

介于....之间。
使用方法:between(a,b,c),一般都是数值之间的比较。
如果a介于b和c之间就返回1,否则返回0a和c没有顺序关系。
demo:
  选出所有收盘价介于ma5和ma10之间的股票
  MA5:=MA(C,5);  {这是先定义一个变量,用:=表示}
  MA10:=MA(C,10); {这是定义一个变量,用:=表示}
  A1:BETWEEN(C,MA5,MA10); {最后只是输出语句,一段选股代码只能有一个输出语句}
  

<3>二者的区别

range(a,b,c)函数,a介于b和c之间,b<=c
between(a,b,c)函数,ab和c之间,b和c之间没有顺序关系,并不是b一定要<=c

斐波那契均线(主图)

{用大括号括起来的都是注释,起作用的语句都是以分号结尾}
{MA1:MA(CLOSE,1),COLORWHITE;}
{MA2:MA(CLOSE,2),COLORYELLOW;}
{MA3:MA(CLOSE,3),COLORGREEN;}
{MA5:MA(CLOSE,5),COLORLIBLUE;}

MA8:MA(CLOSE,8),COLORWHITE;
MA13:MA(CLOSE,13),COLORGRAY;
MA21:MA(CLOSE,21),COLORGREEN,LINETHICK1;
MA34:MA(CLOSE,34),COLORWHITE,LINETHICK2;
MA55:MA(CLOSE,55),COLORYELLOW,LINETHICK2;
MA89:MA(CLOSE,89),COLORGREEN,LINETHICK2;
MA144:MA(CLOSE,144),COLORBLUE,LINETHICK2;
MA233:MA(CLOSE,233),COLORCYAN,LINETHICK3;

{基础K线}

DRAWKLINE(HIGH,OPEN,LOW,CLOSE);

变色MACD

{变色MACD}

SHORT:=12;
LONG:=26;
MID:=9;
DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG),LINETHICK1;
DEA:EMA(DIF,MID),LINETHICK1,COLORCYAN;
MACD:(DIF-DEA)\*2,COLORSTICK;

A:=MACD;  {别名}

STICKLINE(A>REF(A,1) AND A>=0,0,A,2,0),COLOR0000B5;
STICKLINE(A>REF(A,1) AND A>=0,0,A,2,0),COLOR0000D2;
STICKLINE(A>REF(A,1) AND A>=0,0,A,1,0),COLOR0000F0;{红}

STICKLINE(A>REF(A,1) AND A<0,0,A,2,0),COLOR00B5B5;
STICKLINE(A>REF(A,1) AND A<0,0,A,2,0),COLOR00D2D2;
STICKLINE(A>REF(A,1) AND A<0,0,A,1,0),COLORFFFFFF;{白}

STICKLINE(A<=REF(A,1) AND A>=0,0,A,2,0),COLORB4B4B4;
STICKLINE(A<=REF(A,1) AND A>=0,0,A,2,0),COLORD2D2D2;
STICKLINE(A<=REF(A,1) AND A>=0,0,A,1,0),COLORF0F0F0;{灰};

STICKLINE(A<=REF(A,1) AND A<0,0,A,2,0),COLORFFFF00;
STICKLINE(A<=REF(A,1) AND A<0,0,A,2,0),COLORFF9900;
STICKLINE(A<=REF(A,1) AND A<0,0,A,1,0),COLORFF9900;{蓝};

变色KD

{-----第一级-------}
N2:=13;
M2:=5;
M22:=5;
RSV2:=(CLOSE-LLV(LOW,N2))/(HHV(HIGH,N2)-LLV(LOW,N2))*100;

K2:=SMA(RSV2,M2,1),LINETHICK4;
D2:=SMA(K2,M22,1),LINETHICK4;
J2:=3*K2-2*D2,LINETHICK4;

{---柱线变色---}
STICKLINE((K2>REF(K2,1) AND K2>D2),K2,D2,2,0),COLORLIMAGENTA;
STICKLINE((K2<=REF(K2,1) AND K2>D2),K2,D2,2,0);
STICKLINE((K2<=REF(K2,1) AND K2<=D2),K2,D2,2,0),COLORCYAN;
STICKLINE((K2>REF(K2,1) AND K2<=D2),K2,D2,2,0);

STICKLINE((J2>REF(J2,1) AND J2>D2),J2,D2,2,0),COLORRED;
STICKLINE((J2<=REF(J2,1) AND J2>D2),J2,D2,2,0),COLORFFFFFF;
STICKLINE((J2<=REF(J2,1) AND J2<=D2),J2,D2,2,0),COLORFF9900;
STICKLINE((J2>REF(J2,1) AND J2<=D2),J2,D2,2,0),COLORFFFFFF;

旧的kdj

{带有等号的是变量}
{不带等号的是输出}
N:=9;
M1:=3;
M2:=3;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1),LINETHICK2;
D:SMA(K,M2,1),LINETHICK2;
J:3*K-2\*D,LINETHICK2;

底部:0,COLORYELLOW,DOTLINE;
顶部:100,COLORYELLOW,DOTLINE;
中部:50,COLORYELLOW,DOTLINE;

N2:=1;
RSV2:=(CLOSE-LLV(LOW,N2))/(HHV(HIGH,N2)-LLV(LOW,N2))*100;
K2:=SMA(RSV2,3,1);
D2:=SMA(K2,3,1);
{J2:3*K2-2*D2,COLORWHITE,LINETHICK1,DOT;}
J2:3*K2-2\*D2,COLORWHITE,LINETHICK1;
{白色}

{FILLRGN((J>D),J,D,RGB(237,202,1));
FILLRGN((J3<=D3),J3,D3,RGB(237,202,1));
FILLRGN((K3>D3),K3,D3,RGB(255,128,64));
FILLRGN((K3<=D3),K3,D3,RGB(255,128,64));};

{DRAWAND(J,RGB(237,202,1),D,RGB(237,202,1));
DRAWAND(K,RGB(255,128,64),D,RGB(255,128,64))};

顶顶:=95;
底底:=5;
中中:=50;
买:=CROSS(底底,J);
买买:=CROSS(J,底底);
逃:=CROSS(J,顶顶);
DRAWTEXT(买,J,'买'),COLORRED;
DRAWTEXT(买买,J,'买'),COLORRED;
DRAWTEXT(逃,J,'逃'),COLORGREEN;

绿包红kdj

{========顶底和中轴虚线==========}
DI:0,COLORYELLOW,DOTLINE;
Z:50,COLORYELLOW,DOTLINE;
GING:100,COLORYELLOW,DOTLINE;

{========传统KDJ==========}
N:=9;
M1:=3;
M2:=3;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;

K:SMA(RSV,M1,1),COLOR03FAF5,LINETHICK2;
D:SMA(K,M2,1),COLORWHITE,LINETHICK2;
J:3*K-2*D,COLORRED,LINETHICK2;

{========小级别KDJ==========}
N2:=1;
RSV2:=(CLOSE-LLV(LOW,N2))/(HHV(HIGH,N2)-LLV(LOW,N2))*100;
K2:=SMA(RSV2,3,1);
D2:=SMA(K2,3,1);
{J2:3*K2-2*D2,COLORWHITE,LINETHICK1,DOT;}
J2:3*K2-2*D2,COLORWHITE,LINETHICK1;{白色}

{=========大级别KDJ===========}
N_2:=21;
M1_2:=8;
M2_2:=8;
RSV_2:=(CLOSE-LLV(LOW,N_2))/(HHV(HIGH,N_2)-LLV(LOW,N_2))*100;

K_2:=SMA(RSV_2,M1_2,1),COLORYELLOW,LINETHICK2;
D_2:=SMA(K_2,M2_2,1),LINETHICK2;
J_2:3*K_2-2*D_2,COLORGREEN,LINETHICK2;{COLORD67703}

{
FILLRGN((J>D),J,D,RGB(237,202,1));
FILLRGN((J3<=D3),J3,D3,RGB(237,202,1));
FILLRGN((K3>D3),K3,D3,RGB(255,128,64));
FILLRGN((K3<=D3),K3,D3,RGB(255,128,64));

DRAWBAND(J,RGB(237,202,1),D,RGB(237,202,1));
DRAWBAND(K,RGB(255,128,64),D,RGB(255,128,64));
}

通达信的各种颜色

 这里颜色都有可以自行改,常用颜色参数:  

   红色——colorred
绿色——colorgreen
黑色——colorblack
白色——colorwhite
灰色——colorgray
蓝色——colorblue
黄色——coloryellow
青色——colorcyan
晶红色——colormagenta
棕色——colorbrown

通达信的线的粗细

粗细参数是LINETHICK。LINETHICK1~LINETHICK9分别从细到粗。
9就太粗了。

各种函数

1COLOR 自定义色格式为COLOR+“RRGGBB”:RR、GG、BB表示红蓝色、绿色和蓝色的分量,每种颜色的取值范围是00-FF,采用了16进制)例如:MA5:MA(CLOSE,5),COLOR00FFFF表示纯红色与纯绿色的混合色:COLOR808000表示淡蓝色和淡绿色的混合色)  
2)COLORBLACK 黑色画黑色  
3)COLORBLUE 蓝色画蓝色  
4)COLORGREEN 绿色画绿色  
5)COLORCYAN 青色画青色  
6)COLORRED 红色画红色  
7)COLORMAGENTA 洋红色画洋红色  
8)COLORBROWN 棕色画棕色  
9)COLORLIGRAY 淡灰色画淡灰色  
10)COLORGRAY 深灰色画深灰色  
11)COLORLIBLUE 淡蓝色画淡蓝色

12)COLORLIGREEN 淡绿色画淡绿色  
13)COLORLICYAN 淡青色画淡青色  
14)COLORLIRED 淡红色画淡红色  
15)COLORLIMAGENTA 淡洋红色画淡洋红色  
16)COLORYELLOW 黄色画黄色  
17)COLORWHITE 白色画白色  
18)LINETHICK 线型粗细,格式“LINETHICK+(1-9)”;参数的取值范围在19之间,“LINETHICK1”表示最细的线,而“LINETHICK9”表示最粗的线;  
19)STICK 柱状线画柱状线  
20)COLORSTICK 彩色柱状线画彩色柱状线  
21)VOLSTICK 彩色柱状线成交量柱状线,当股价上涨时显示红色空心柱,则显示绿色实心柱  
22)LINESTICK 同时画出柱状线和指标线  
23)CROSSDOT 小叉线画小叉线  
24)CIRCLEDOT 小圆圈线画小圆圈线  
25)POINTDOT 小圆点线画小圆点线  
26)DOTLINE画虚线  
27)NODRAW 空线条(不画该线)

drawicon()函数

函数:DRAWICON(条件,B,N号图标),N的取值范围为1~49

  说明:绘图函数 用法:如果条件A成立,就在B的位置画上N号图标。

示例:AA:=MA(CLOSE,5);
     BB:=MA(CLOSE,10);

DRAWICON(CRORR(AA,BB),L,1);
表示如果5日均线和10日均线金叉,则在最低价处画“1”号图标,如果5日均线和10日均线没有金叉,则什么都不画。

图片.png

图片.png

drawkline()函数

draw k line 顾名思义,就是画k线
含义:DRAWKLINE函数可以拆成三个部分理解:DRAW、K、LINE。DRAW是指 "画",LINE是指 "线",
因此整个函数的意思就是“画K线”。

demo:
DRAWKLINE(HIGH,OPEN,LOW,CLOSE);
DRAWKLINE高开低收四个参数,对应好参数的位置就可以画出K线图。

图片.png

把指标公式加载到副图,就可以看出和主图数据是一样的。当然因为附图被压扁的原因,看起来和主图不一样而已,其实从数据上看是一样的。

stickline()函数

含义:画柱线

使用方法:
 STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY)

 当满足COND条件时,在PRICE1和PRICE2位置之间画柱线;

 WIDTH表示柱线的宽度,如果WIDTH为4,就是标准间距);

 EMPTY表示柱线是实心还是空心,如果EMPTY为0就是实心柱,为1就是实线空心柱,为-1画就是虚线空心柱。当然也可以为其他数,只不过都是实线空心柱。、
 
 
 demo:
 > CXG:=H=HHV(H,20);{创20日新高}
 >
 > STICKLINE(CXG,C,O,3,0);{当创20日新高的时候,在收盘价和开盘价之间,画宽度为3的实心柱线};
 如下图所示:

图片.png

可以看到,上图白线柱线就是满足创20日新高条件的,柱线宽度WIDTH3,就和图上的K线宽度相同,能完全覆盖原来的K线实体部分,比较美观一些。
但是只覆盖实体,没有覆盖影线部分,还是不够完美,那能不能做到覆盖影线呢?答案是肯定的。
怎么把影线加上去呢?
其实只需要在最高价和最低价之间画宽度WIDTH0的柱线,实际画出的就是影线。
> CXG:H=HHV(H,20);{创20日新高}
>
> STICKLINE(CXG,H,L,0,0);{当创20日新高的时候,在最高价和最低价之间,画宽度为0的实心柱线}
>
> STICKLINE(CXG,C,O,3,0);{当创20日新高的时候,在收盘价和开盘价之间,画宽度为3的实心柱线};

注意一点,要把画影线代码写在画柱线前面,计算机执行代码是从上往下执行的,先画出影线,再画柱线,这样柱线是覆盖在影线之上的。否则就会出现下图这样的情况,影线在柱线之上,不太美观。

图片.png