通达信函数详解(转)

时间:2024-03-11 18:05:19

通达信函数详解


K线数据,可以只写开头第一个字母。

开盘价:OPEN;{O}

收盘价:CLOSE;{C}

最高价:HIGH;{H}

最低价:LOW;{L}

大盘K线数据,必须下载完整盘后数据。Drawkline——画K线,数据顺序——最高价、开盘价、最低价、收盘价。

DRAWKLINE(INDEXH,INDEXO,INDEXL,INDEXC);

{H、O、L、C}


上涨家数和下跌家数,第一组只在大盘窗口才有数据,第二组哪个窗口都有数据。

涨家1:ADVANCE;

跌家1:DECLINE;

涨家2:INDEXADV;

跌家2:INDEXDEC;


在一定周期内某项数据的最大值——hhv,在一定周期内某项数据的最小值——llv。

HH:HHV(H,10);

LL:LLV(L,10);

MA1:MA(C,5);

HHMA:HHV(MA1,10);

LLMA:LLV(MA1,10);


创新高或者创新低。

创新高:H=HHV(H,60);

创新低:L=LLV(L,60);

 

当前位置取得以前位置数据——ref,取得指定日期数据——refdate,注意日期的格式。

以前数据:REF(C,1);

{以前数据:REF(H,2);}

指定日期数据:REFDATE(C,1090508);

{1998年5月25日——980525、2011年12月8日——1111208}

成交量——vol,可写成V,单位是手。成交金额——amount,单位是元。Indexv——大盘成交量, indexa——大盘成交金额。Buyvol——外盘

, sellvol——内盘,只能取得与最后一根K线相对应的数据。

成交量:VOL;{V}

成交金额:=AMOUNT;

大盘成交量:=INDEXV;

大盘成交金额:=INDEXA;

外盘:BUYVOL;

内盘:SELLVOL;


涨幅、振幅、均价,成交量复权:工具——系统设置——设置1——勾选“分析图成交量复权”——按确定——再按确定——退出K线图——重

新进入K线图。

涨幅:=(C-REF(C,1))/REF(C,1)*100;

振幅:=(H-L)/L*100;

均价1:(H+L+O+C)/4;

均价2:AMOUNT/(V*100);


即时行情函数只取得与最后一根K线相对应的数据。

振幅1:DYNAINFO(13)*100;

振幅2:(H-L)/L*100;

finance(7)的单位是股,根据流通盘变化而变化。capital的单位是手,只取得最新流通盘。

流通盘1:FINANCE(7);

流通盘2:CAPITAL;

换手率,finance(7)写的换手率更合理。

换手率1:V*100/FINANCE(7)*100;

换手率2:V/CAPITAL*100;


FINANCE(42)——上市日期,date——日期,date加19六个0,一号的日为0, year——年份,month——月份,day——日,weekday——星期。

上市日期:FINANCE(42);

日期1:DATE;

日期2:DATE+19000000;

年:YEAR;

月:MONTH;

日:DAY;

日期3:YEAR*10000+MONTH*100+DAY;

星期:WEEKDAY;

Time——时间,hour——小时,MINUTE——分钟,只在日线以下周期有效。FROMOPEN——当前时刻距离开盘分钟数。

时间:TIME;

小时:HOUR;

分钟:MINUTE;

距开盘分钟数:FROMOPEN;

BARSCOUNT——某数据从第一个有效值到现在的周期数,TOTALBARSCOUNT——总周期数,下载完整盘后数据、不连接行情使用。CURRBARSCOUNT

——当前K线到最后交易日周期数。

有效数据周期数:BARSCOUNT(C);

总周期数:TOTALBARSCOUNT;

到最后周期数:CURRBARSCOUNT;

Cross——是否发生交叉,两条指标线不一定全是变化的曲线。Barslast——上一次条件成立到当前的周期数,BARSSINCE——第一次条件成立

到当前的周期数,count——统计在一定周期内满足条件的周期数。

K1:KDJ.K;

D1:KDJ.D;

金叉:CROSS(K1,D1)*10;

死叉:CROSS(D1,K1)*-10;

{K1上穿60:CROSS(K1,60);

K1下穿20:CROSS(20,K1);}

上次到现周期数:BARSLAST(金叉);

首次到现周期数:BARSSINCE(金叉),NODRAW;

统计{N周期内满足条件}次数:COUNT(金叉=10,20);


Hhvbars——某数据在一定周期内的最大值到当前的周期数,llvbars——某数据在一定周期内的最小值到当前的周期数。

上一高点{到现在}周期:HHVBARS(H,20);

上一低点{到现在}周期:LLVBARS(L,20);

某数据是近多少周期内的最大值——TOPRANGE,某数据是近多少周期内的最小值——LOWRANGE。

多少周期的最大:TOPRANGE(H);

多少周期的最小:LOWRANGE(L);

BARSLASTCOUNT——统计连续满足条件的周期数,sumbars——某数据向前累加到指定值到当前的周期数。

统计{连续满足条件}周期数:BARSLASTCOUNT(C>REF(C,1));

加到指定值周期:SUMBARS(V,CAPITAL);

PERIOD——当前窗口的周期类型。

窗口周期类型:PERIOD;

在不同周期类型使用不同参数。

参数:=IF(PERIOD=5,20,IF(PERIOD=6,10,0));

MA1:MA(C,参数);

最基本的比较判断是用大于、小于、等于等等。某数据是否在某个范围之内——RANGE,某数据是否在某个范围——BETWEEN。

宽幅震荡:(H-L)/L*100>12;

是否在某个范围1:RANGE(C,8,10);{X>A AND A<B}

是否在某个范围2:BETWEEN(C,10,13);{X>=A AND X<=B};

是否发生交叉——cross,LONGCROSS——是否维持一定周期后发生交叉。

上穿:CROSS(MA(C,5),MA(C,10));

{持续}一段时间后上穿:LONGCROSS(MA(C,5),MA(C,10),10)*2;

UPNDAY——某数据在一定周期内是否连涨,DOWNNDAY——某数据在一定周期内是否连跌,NDAY——是否在一定周期内前面的数据都大于后面的

数据,ISLASTBAR——当前周期是否是最后一个周期。

连涨:UPNDAY(C,5);

连跌:DOWNNDAY(C,5);

连大:NDAY(C,O,5);

是否最后周期:ISLASTBAR;

EXIST——是否在一定周期内存在符合某种条件的情况,EVERY——是否在一定周期内一直存在符合条件的情况,LAST——是否在某一段周期内

一直存在符合某种条件的情况,not——是否不符合条件。

存在:EXIST(C>REF(C,1)*1.099,10);

一直存在:EVERY(C>O,5);

持续存在:LAST(C>O,10,5);

并非:NOT(C>O);

If——是否符合条件,符合条件输出前面的数据,不符合条件输出后面的数据, max——哪个更大输出哪个,min——哪个更小输出哪个。

条件:=CROSS(MA(C,5),MA(C,10));

如果:IF(条件,5,-5);

较大者:MAX(C,O);

较小者:MIN(C,O);


FILTER——过滤连续出现的信号。

J大于80:"KDJ.J">80;

过滤:FILTER(J大于80,10)*2;

Abs——取得数据的绝对值,sum——求的数据在一定周期内的总和。

涨幅:(C-REF(C,1))/REF(C,1)*100;

零轴:0;

绝对值:ABS(涨幅);

求和:SUM(涨幅,5);

Ma——简单移动平均值,ema——指数移动平均值,sma——加权移动平均值(前面参数大于后面参数),dma——动态移动平均值(参数小于1

),后面三个函数降低本周期的权重、减少波动性而使输出变得相对平滑稳定,同时也降低了灵敏度。

简单移动平均:MA(C,5);{(C0+C1+C2+…+C(N-1))/N}

指数移动平均:EMA(C,5);{Y=2*X/(N+1)+(N-1)/(N+1)*Y\',Y\'上一周期Y}

加权移动平均:SMA(C,5{N},1{M});{Y=(M*X+(N-M)*Y\')/N, Y\'上一周期Y,N必须大于M}

动态移动平均:DMA(C,0.5);{Y=N*X+(1-N)*Y\',Y\'上一周期Y,N必须小于1};

LINETHICK——粗细,color——颜色,stick——柱状线,CROSSDOT——小交叉线,CIRCLEDOT——小圆圈线,POINTDOT——小圆点线。

MA1:MA(C,5);

MA2:MA(C,20),LINETHICK3,COLORRED;

均线差值1:(MA1-MA2)*1,STICK;

均线差值2:(MA1-MA2)*3,CROSSDOT;

均线差值3:(MA1-MA2)*6,CIRCLEDOT;

均线差值4:(MA1-MA2)*9,POINTDOT;

LINESTICK——指标线加柱状线。

MA1:=MA(C,5);

MA2:=MA(C,10);

均线差值:MA1-MA2,LINESTICK;

COLORSTICK——彩色柱状线。

MA1:=MA(C,5);

MA2:=MA(C,10);

均线差值:MA1-MA2,COLORSTICK;

VOLSTICK——成交量柱状线。

MA1:=MA(C,5);

MA2:=MA(C,10);

均线差值:MA1-MA2,VOLSTICK;

DRAWTEXT——写文字(必须写在一对单引号内),DRAWICON——画图标。

MA1:MA(C,5);

MA2:MA(C,10);

金叉:=CROSS(MA1,MA2);

写文字:DRAWTEXT(金叉,MA1,\'金叉\');

画图标:DRAWICON(金叉,MA2,1);

STICKLINE——画柱线,0实心柱,-1虚线空心柱,1实线空心柱。后面的输出会遮挡住前面的输出。

MA5:MA(C,5);

画柱线1:STICKLINE(C>O,C,O,2,0);

画柱线2:STICKLINE(C>O,H,L,0,0),COLORBLUE;

画柱线3:STICKLINE(C<O,H,L,1,1);

画柱线4:STICKLINE(C<O,C,O,3,-1);

MA10:MA(C,10),COLORGREEN;

DRAWLINE——绘制直线段,0不延长,1向右延长。PLOYLINE——绘制折线。

画直线:DRAWLINE(L=LLV(L,10),L,H=HHV(H,10),H,0);

画折线:PLOYLINE(H=HHV(H,30),H);

均线变色,DRAWNULL——返回无效值。nodraw——只输出数值、不输出线条,不影响公式坐标。LINETHICK0——只输出数值、不输出线条,在

其它软件中不影响公式坐标,在通达信中影响公式坐标。

MA1:MA(C,5);

MA2:MA(C,10);

变色:IF(MA1>REF(MA1,1),MA1,DRAWNULL),LINETHICK2,COLORRED;

成交量:V,NODRAW;

MA1:MA(C,5);

MA2:MA(C,10);

变色:IF(MA1>MA2,MA1,DRAWNULL),LINETHICK2,COLORRED;

成交量:V,LINETHICK0;

Winner——获利盘,cost——成本分布情况。

获利盘:WINNER(C)*100;

成本分布:COST(80);

Zig——之字转向,1最高价、2最低价、3收盘价。PEAK——波峰价格,1最高价、2最低价、3收盘价。TROUGH——波谷价格,1最高价、2最低价

、3收盘价。

之字转向:ZIG(3,10);

波峰:PEAK(3,10,1);

波谷:TROUGH(3,10,1);

波峰到现在的周期数——PEAKBARS,波谷到现在的周期数——TROUGHBARS。

波峰到现在周期:PEAKBARS(3,10,1);

波谷到现在周期:TROUGHBARS(3,10,1);

BACKSET——回设,马后炮。

MA10:MA(C,10);

回设:=BACKSET(C/REF(C,1)>1.09,2);

A:=IF(REF(回设,1)=0 AND 回设=1,1,0);

DRAWICON(A,L*0.98,1);

跨周期引用的公式也具有未来性质。

周J:"KDJ.J#WEEK";

周D:"KDJ.D#WEEK";

金叉:CROSS(周J,周D)*30;

还有一种作弊手法——将公式信号限制在有行情的时段发出。

另外一种作弊:O<REF(C,1) AND DATE=1080918;

建议暂时关闭本教程,把讲义中这一节的内容挨个复制到你自己的软件中,按照这一节开始时所讲的函数学习方法复习一遍。

要将自己的思路用公式去表达出来,首先是确定需要哪些数据,然后观察这些数据之间的关系,再按语句规则的要求用函数去定义观察到的关

系。

{K线形态}

阴线:C<O;

阳线:C>O;


上涨:C>REF(C,1);

下跌:C<REF(C,1);

平盘:C=REF(C,1);


大阳线:C/REF(C,1)>1.05;

大阴线:C/REF(C,1)<0.95;


高开:O>REF(C,1);

低开:O<REF(C,1);


高开高走:O>REF(C,1) AND C>O;

高开低走:O>REF(C,1) AND C<O;


低开低走:O<REF(C,1) AND C<O;

低开高走:O<REF(C,1) AND C>O;


上跳空:L>REF(H,1);

下跳空:H<REF(L,1);


长上影:H/MAX(O,C)>1.03;

长下影:MIN(O,C)/L>1.03;


十字星:MAX(O,C)/MIN(O,C)<1.02 AND H/MAX(O,C)>1.01 AND MIN(O,C)/L>1.01;

正T字:O=C AND C=H AND L<H;

倒T字:O=C AND C=L AND H>L;

一字涨停:O=C AND C=H AND L=H AND C>REF(C,1);

一字跌停:O=C AND C=L AND L=H AND C<REF(C,1);

横盘:HHV(H,20)/LLV(L,20)<1.15;


均线状况——金叉和死叉。

MA1:MA(C,5);

MA2:MA(C,10);

金叉:CROSS(MA1,MA2);

死叉:CROSS(MA2,MA1);


均线上拐、下拐、将死未死。

MA1:MA(C,5);

MA2:MA(C,10);

上拐:=REF(MA1,1)<REF(MA1,2) AND MA1>REF(MA1,1);

下拐:=REF(MA1,1)>REF(MA1,2) AND MA1<REF(MA1,1);

将死未死:=COUNT(MA1>MA2,5)=5 AND 上拐;

DRAWICON(上拐,MA1*0.98,1);

DRAWICON(下拐,MA1*1.01,2);

DRAWICON(将死未死,MA1*0.96,11);


多头排列、空头排列。

MA1:MA(C,5);

MA2:MA(C,10);

MA3:MA(C,20);

多头排列:=MA1>MA2 AND MA2>MA3;

空头排列:=MA1<MA2 AND MA2<MA3;

STICKLINE(多头排列,MA1,MA3,0,0),COLORRED;

STICKLINE(空头排列,MA1,MA3,0,0),COLORGREEN;


均线粘合、粘合一段时间。

MA1:MA(C,5);

MA2:MA(C,10);

MA3:MA(C,20);

粘合:=MAX(MAX(MA1,MA2),MA3)/MIN(MIN(MA1,MA2),MA3)<1.02;

粘合一段时间:=COUNT(粘合,10)=10;

STICKLINE(粘合,MAX(MAX(MA1,MA2),MIN(MIN(MA1,MA2),MA3)),MA3,1,0),COLORRED;

DRAWICON(粘合一段时间,MA3*0.98,1);

三金叉。

DIF2:"MACD.DIF";

DEA2:"MACD.DEA";

单金叉:CROSS(DIF2,DEA2);

三金叉:(单金叉 AND COUNT(单金叉,10)>=3)*2;

成交量状况——主要观察成交量之间、成交量与均量线之间以及换手率之间的关系。放量、历史天量。

放量1:V>REF(V,1)*2;

放量2:V>MA(V,60);

放量3:V*100/FINANCE(7)*100>8;

历史天量:V=HHV(V,0);

连续放量。

连续放量1:COUNT(V>REF(V,1),5)=5;

连续放量2:(COUNT(V>MA(V,60),5)=5)*2;

连续放量3:(COUNT(V*100/FINANCE(7)*100>8,5)=5)*3;


缩量、历史地量。

缩量1:V<REF(V,1)*0.5;

缩量2:V<MA(V,60);

缩量3:V*100/FINANCE(7)*100<1;

历史地量:V=LLV(V,0);


连续缩量。

连续缩量1:COUNT(V<REF(V,1),5)=5;

连续缩量2:(COUNT(V<MA(V,60),5)=5)*2;

连续缩量3:(COUNT(V*100/FINANCE(7)*100<1,5)=5)*3;


筹码低位密集。

筹码密集:=(WINNER(C*1.1)-WINNER(C*0.9))*100>50;

相对低位:=(C-COST(0.01))/(COST(99.99)-COST(0.01))*100<10;

低位密集:筹码密集 AND 相对低位;