分享

通达信全部函数及其用法

 lyfd2003 2022-01-16

(2014-01-02 15:19:08)

通达信全部函数及其用法

(一)行情函数

1)HIGH(H)最高价返回该周期最高价.

2)LOW(L)最低价返回该周期最低价.

3)CLOSE(C)收盘价返回该周期收盘价.

4)VOL(V)成交量(手)返回该周期成交量.

5)OPEN(O)开盘价返回该周期开盘价.

6)ADVANCE 上涨家数返回该周期上涨家数. (本函数仅对大盘有效)

7)DECLINE 下跌家数返回该周期下跌家数. (本函数仅对大盘有效)

8)AMOUNT 成交额(元)返回该周期成交额.

9)VOLINSTK 持仓量返回期货该周期持仓量.

10)QHJSJ 期货结算价返回期货该周期结算价.

11)BUYVOL 外盘(手)返回外盘,即时行情数据

12)SELVOL 外盘(手)返回外盘

13)ISBUYORDER 主动性买单返回当前成交是否为主动性买单.用法: ISBUYORDER,当本笔成交为主动性买盘时,返回1,否则为0

14)DHIGH 不定周期最高价返回该不定周期最高价.

15)DOPEN 不定周期开盘价返回该不定周期开盘价.

16)DLOW 不定周期最低价返回该不定周期最低价.

17)DCLOSE 不定周期收盘价返回该不定周期收盘价.

18)DVOL 不定周期成交量价返回该不定周期成交量价.

19)NAMELIKE 模糊股票名称返回股票名称是否以参数开头.

用法: if(NAMELIKE('ST'),x,y);

20)CODELIKE 模糊股票代码返回股票代码是否以参数开头.

用法: if(CODELIKE('600'),x,y);

21)INBLOCK 属于某板块返回股票是否属于某板块.

用法: if(INBLOCK('沪深300'),x,y);

(二)时间函数

1)PERIOD 周期取得周期类型.

结果从0到11,依次分别是1/5/15/30/60分钟,日/周/月,多分钟,多日,季,年.

2)DATE 日期取得该周期从1900以来的的年月日. 用法: DATE 例如函数返回1000101,表示2000年1月1日,DATE+19000000后才是真正的日期值

3)TIME 时间取得该周期的时分秒.用法: TIME 函数返回有效值范围为(000000-235959)

4)YEAR 年份取得该周期的年份.5)MONTH 月份取得该周期的月份.用法: 函数返回有效值范围为(1-12)

6)WEEKDAY 星期取得该周期的星期数.用法: WEEKDAY 函数返回有效值范围为(1-7)

7)DAY 日取得该周期的日期.用法: DAY 函数返回有效值范围为(1-31)

8)HOUR 小时取得该周期的小时数.用法: HOUR 函数返回有效值范围为

(0-23),对于日线及更长的分析周期值为0

9)MINUTE 分钟取得该周期的分钟数.用法: MINUTE 函数返回有效值范围为(0-59),对于日线及更长的分析周期值为0

10)FROMOPEN 分钟求当前时刻距开盘有多长时间.用法: FROMOPEN FROMOPEN.返回当前时刻距开盘有多长时间,单位为分钟.例如:当前时刻为早上十点,则返回31.

11)TFILT 分钟对指定时间段的数据进行过滤,该时间段以外的数据无效.

用法: TFILT(X,D1,M1,D2,M2) 例如TFILT(CLOSE,1040101,1025,1040101,1345)表示在2004年1月1日的10:25到2004年1月1日的13:45的收盘价是有效的.周期以日为基本单位的,分时为0有效.

12)DATETODAY 上指纪元指定日期到1990.12.19的天数.

用法: DATETODAY(date)

DATETODAY(date).返回date到1990.12.19的天数.有效日期为(901219-1341231) 例如:DATETODAY(901219)返回0.

13)DAYTODATE 转换日期求1990.12.19后第若干天的日期.

用法: DAYTODATE(N)

DAYTODATE(N).返回1990.12.19后第N天的日期.有效天数为(0-20000)

例如:DAYTODATE(0)返回901219.

14)TIMETOSEC 当日秒数求指定时刻距0时有多长时间.

用法: TIMETOSEC(time)

TIMETOSEC(time).返回time时刻距0时有多长时间,单位为秒.有效时间为

(0-235959)

例如:TIMETOSEC(93000)返回34200.

15)SECTOTIME 转换时间求0时后若干秒是什么时间.

用法: SECTOTIME(N)

SECTOTIME(N).返回0时后N秒是什么时间.有效秒数为(0-86399)

例如:SECTOTIME(34200)返回93000.

引用函数HHVBARS和LLVBARS的运用引用函数BACKSET等4个函数的运用

引用函数BACKSET等4个函数的运用

(2007-05-1 11:56:19)

1、函数:BACKSET 向前赋值将当前位置到若干周期前的数据设为1。用法:BACKSET(X,N),X非0,则将当前位置到N周期前的数值设为1。例如:BACKSET(CLOSE>OPEN,2),若收阳则将该周期及前一周期数值设为1,否则为0。

请看下面指标:

CSAR:SAR(10,2,20),LINETHICK2;{表示计算10日抛物转向,步长为2%,极限值为20%。}

drawtext(CSAR>=H,CSAR,'°'),color00ff00;{当CSAR大于等于最高价,在CSAR 上画。状线}

drawtext(CSAR<=L,CSAR,'°'),colorred;{当CSAR小于等于最低价,在CSAR上画。状线}

TJ1:=BACKSET(SARTURN(10,2,20)<>0,2);{若10日抛物转向,步长为2%,极限值为20%,则将该周期及前一周期数值设为1,否则为0。}

TJ2:=REF(TJ1,1);{引用上一周期TJ1}

drawtext(TJ2,CSAR,'°'),coloryellow;{TJ2条件满足在CSAR画。状线} STICKLINE(C>O,O,C,4,0),COLORRED;

STICKLINE(C>O,H,C,1,1),COLORRED;

STICKLINE(C>O,O,L,1,1),COLORRED;

STICKLINE(C<=O,O,C,4,0),COLORffcc66;

STICKLINE(C<=O,H,O,1,1),COLORffcc66;

STICKLINE(C<=O,L,C,1,1),COLORffcc66;

{1.向下跌破转向点,卖出;向上突破转向点,买入

2.市道趋势明显时,转向点信号准确}

上面是一个抛物转向指标,在第二步句用到了BACKSET函数,与另一个抛物转向点函数SARTURN构成了一个指标语句

(三)引用函数

1)DRAWNULL 无效数返回无效数.用法:DRAWNULL 例如

IF(CLOSE>REF(CLOSE,1),CLOSE,DRAWNULL)表示下跌时分析图上不画线

2)BACKSET 向前赋值将当前位置到若干周期前的数据设为1.用法: BACKSET(X,N),若X非0,则将当前位置到N周期前的数值设为1.例

如:BACKSET(CLOSE>OPEN,2)若收阳则将该周期及前一周期数值设为1,否则为0

3)BARSCOUNT 有效数据周期数求总的周期数.用法: BARSCOUNT(X)第一个有效数据到当前的天数例如:BARSCOUNT(CLOSE)对于日线数据取得上市以来总交易日数,对于分笔成交取得当日成交笔数,对于1分钟线取得当日交易分钟数

4)CURRBARSCOUNT到最后交易日的周期数求到最后交易日的周期数.用法: CURRBARSCOUNT 求到最后交易日的周期数.例如

DRAWKLINE(HIGH,OPEN,LOW,CLOSE); DRAWTEXT(CURRBARSCOUNT= 20,L*0.98,'-20');

5)TOTALBARSCOUNT 总的周期数求总的周期数.用法: TOTALBARSCOUNT 求总的周期数

6)ISLASTBAR 是否为最后一个周期判断是否为最后一个周期.用法: ISLASTBAR 判断是否为最后一个周期

7)BARSLAST 上一条件成立位置上一次条件成立到当前的周期数.用法: BARSLAST(X):上一次X不为0到现在的天数例

如:BARSLAST(CLOSE/REF(CLOSE,1)>=1.1)表示上一个涨停板到当前的周期数例BARSLAST(C/REF(C,1)>1.08); 另BARSLAST(REF(C,1)/L>1.05);一方面BARSLAST(B<-0.04);另A1:=BARSLAST(REF(CROSS(DIFF,DEA),1));上次昨日DIFF上穿DEA距今天数

8)BARSSINCE 第一个条件成立位置第一个条件成立到当前的周期数.用法: BARSSINCE(X):第一次X不为0到现在的天数例如:BARSSINCE(HIGH>10)表示股价超过10元时到当前的周期数

9)BARSSINCEN N周期内首个条件成立位置N周期内第一个条件成立到当前的周期数.

用法: BARSSINCEN(X,N):N周期内第一次X不为0到现在的天数

例如:BARSSINCEN(HIGH>10,10)表示10个周期内股价超过10元时到当前的周期数

10)BARSSINCE 首个条件成立位置第一个条件成立到当前的周期数.

用法: BARSSINCE(X):第一次X不为0到现在的天数

例如:BARSSINCE(HIGH>10)表示股价超过10元时到当前的周期数

11)COUNT统计统计满足条件的周期数.用法: COUNT(X,N),统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始.例

如:COUNT(CLOSE>OPEN,20)表示统计20周期内收阳的周期数,

例如:2次回踩5日均线不破的选股公式MA5:=MA(C,5);回

踩:=CROSS(C,MA5) ;COUNT(回踩,4)=2 AND C>MA(C,5);

12)BARSLASTCOUNT 统计条件连续成立次数统计连续满足条件的周期数.用法: BARSLASTCOUNT(X),统计连续满足X条件的周期数.例

如:BARSLASTCOUNT(CLOSE>OPEN)表示统计连续收阳的周期数

A1:=MA(C,20);B60:=BARSLASTCOUNT(C>A1);D60:B60>60 收盘价在20日均线之上至少60天选股公式

13)DMA 动态移动平均求动态移动平均.用法: DMA(X,A),求X的动态移动平均.算法: 若Y=DMA(X,A)则Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须小于1.例如:DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价14)HHV 最高值求最高值.用法: HHV(X,N),求N周期内X最高值,N=0则从第一个有效值开始. 例如:HHV(HIGH,30)表示求30日最高

价另 HHV(REF(C,1),5)/C>1.05 表示5日内昨收的最高值/收盘价>1.05

15)HHVBARS上一高点位置求上一高点到当前的周期数.用法: HHVBARS(X,N):求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计例如:HHVBARS(HIGH,0)求得历史新高到到当前的周期

数HHVBARS(V,阳线)

16)HOD 高值名次求高值名次.

用法: HOD(X,N):求当前X数据是N周期内的第几个高值,N=0则从第一个有效值开始.

例如:HOD(HIGH,20)返回是20日的第几个高价

17)LLV 最低值求最低值.用法: LLV(X,N),求N周期内X最低值,N=0则从第一个有效值开始. 例如:LLV(LOW,0)表示求历史最低价

18)LLVBARS 上一低点位置求上一低点到当前的周期数.用法:

LLVBARS(X,N):求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计例如:LLVBARS(HIGH,20)求得20日最低点到当前的周期数

19)LOD 低值名次求低值名次.

用法: LOD(X,N):求当前X数据是N周期内的第几个低值,N=0则从第一个有效值开始.

例如:LOD(LOW,20)返回是20日的第几个低价

20)REVERSE 求相反数求相反数.用法:REVERSE(X)返回-X.例如REVERSE(CLOSE)返回-CLOSE

21)REF 日前的引用若干周期前的数据.用法: REF(X,A),引用A周期前的X值. 例如:REF(CLOSE,1)表示上一周期的收盘价,在日线上就是昨收

22)REFV 日前的引用若干周期前的数据(未作平滑处理).

用法: REFV(X,A),引用A周期前的X值.A可以是变量.

平滑处理:当引用不到数据时进行的操作。

例如:REFV(CLOSE,BARSCOUNT(C)-1)表示第二根K线的收盘价.

23)REFX 日后的引用若干周期后的数据(未作平滑处理).

用法: REFX(X,A),引用A周期后的X值.A可以是变量.

平滑处理:当引用不到数据时进行的操作。

例如:REFX(CLOSE,1)表示下一周期的收盘价,在日线上就是明天收盘价

24)REFXV 日后的引用若干周期后的数据(平滑处理).

用法: REFXV(X,A),引用A周期后的X值.A可以是变量.

平滑处理:当引用不到数据时进行的操作。此函数中,平滑时使用上一个周期的引用值。

例如:TT:=IF(C>O,1,2);

REFXV(CLOSE,TT);表示阳线引用下一周期的收盘价,阴线引用日后第二周期的收盘价.

25)REFDATE 日引用自1900年以来指定日期的数据.用法: REFDATE(X,A),引用A日期的X值. 例如:REFDATE(CLOSE,1011208)表示2001年12月08日的收盘价

26)SUM 累和求总和.用法: SUM(X,N),统计N周期中X的总和,N=0则从第一个有效值开始.例如:SUM(VOL,0)表示统计从上市第一天以来的成交量总和

27)FILTER 过滤过滤连续出现的信号.用法:FILTER(X,N):X满足条件后,删除其后N周期内的数据置为0. 例如:FILTER(CLOSE>OPEN,5)查找阳线,5天内再次出现的阳线不被记录在内

28)FILTERX 反向过滤反向过滤连续出现的信号.

用法:FILTERX(X,N):X满足条件后,将其前N周期内的数据置为0.

例如:FILTERX(CLOSE>OPEN,5)查找阳线,前5天内出现过的阳线不被记录在内

29)TFILTER 交易信号过滤过滤连续出现的交易信号.

用法:TFILTER(开仓,平仓,N);过滤掉开仓(平仓)信号发出后、下一个平仓(开仓)信号发出前的所有开仓(平仓)信号.

N=1表示仅对开仓信号过滤;

N=2表示仅对平仓信号过滤;

N=0表示对开仓、平仓信号都过滤;

例如:ENTERLONG:TFILTER(开仓,平仓,1);

EXITLONG:TFILTER(开仓,平仓,2);

通达信新函数应用一例:NAMELIKE (源码交流)

NAMELIKE模糊股票名称

CODELIKE 模糊股票代码

以此可应用于归类选择或分类过滤

权重,如Y=(X*M+Y'*(N-M))/N

34)TMA返回移动平均

用法:TMA(X,N,M),如若Y=TMA(X,N,M) 则Y=(N*Y'+M*X), 其中Y'表示上一周期Y值。初值为M*X

35)MA 简单移动平均返回简单移动平均用法:MA(X,M):X的M日简单移动平均

36)EMA 指数移动平均返回指数移动平均用法:EMA(X,M):X的M日指数移动平均

37)MEMA 平滑移动平均返回平滑移动平均用法:MEMA(X,M):X的M日平滑移动平均

38)EXPMA 指数移动平均返回指数移动平均用法:EXPMA(X,M):X的M日指数移动平均

39)EXPMEMA 指数平滑移动平均返回指数平滑移动平均用

法:EXPMEMA(X,M):X的M日指数平滑移动平均

40)XMA 偏移移动平均返回偏移移动平均用法:XMA(X,M):X的M日偏移移动平均

41)RANGE 介于某一范围之间 RANGE(A,B,C):A在B和C范围之间.用法: RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0

42)CONST 取值设为常数 CONST(A):取A最后的值为常量.用法:

CONST(INDEXC)表示取大盘现价

43)TOPRANGE 当前值是近多少周期内的最大值.

用法: TOPRANGE(X):X是近多少周期内X的最大值

例如:TOPRANGE(HIGH)表示当前最高价是近多少周期内的最高价

44)LOWRANGE 当前值是近多少周期内的最小值.

用法: LOWRANGE(X):X是近多少周期内X的最小值

例如:LOWRANGE(LOW)表示当前最高价是近多少周期内的最小价

45)FINDHIGH 寻找指定周期内的特定最大值N周期前的M周期内的第T个最大值.

用法: FINDHIGH(VAR,N,M,T):VAR在N日前的M天内第T个最高价

46)FINDHIGHBARS 寻找指定周期内的特定最大值N周期前的M周期内的第T个最大值到当前周期的周期数.

用法: FINDHIGHBARS (VAR,N,M,T):VAR在N日前的M天内第T个最高价到当前周期的周期数

47)FINDLOW 寻找指定周期内的特定最小值N周期前的M周期内的第T个最小值.

用法: FINDLOW(VAR,N,M,T):VAR在N日前的M天内第T个最低价

48)FINDLOWBARS 寻找指定周期内的特定最小值N周期前的M周期内的第T个最小值到当前周期的周期数.

用法: FINDLOWBARS(VAR,N,M,T):VAR在N日前的M天内第T个最低价到当前周期的周期数.

(四)逻辑函数

1)CROSS 上穿两条线交叉.用法: CROSS(A,B)表示当A从下方向上穿过B时返回1,否则返回0 例如:CROSS(MA(CLOSE,5),MA(CLOSE,10))表示5日均线与10日均线交金叉

例:

去除ST

S1:=IF(NAMELIKE('S'),0,1);{取得股票名称中的第一个字符为返回条件}

S2:=IF(NAMELIKE('*'),0,1);

ST:S1 AND S2;{最后一句NOT(ST)用取返就成专门选出ST股}

这里的ST条件就在选股中去除了股票名称以S开头及*开头的股票,XD及新股N可用同样方法,创业版可用CODELIKE函数,因为代码300。

例:过滤条件(留ST):= NAMELIKE('ST') OR NAMELIKE('*') {OR CODELIKE('3')}{创业板}

OR BARSCOUNT(V)<=100{次新} OR{总量}DYNAINFO(9)=0{停牌} ;

去掉ST:IF(NAMELIKE('*ST'),0,1) AND IF(NAMELIKE('S'),0,1) and

IF(DYNAINFO(9)=0{停牌},0,1) ;

去掉板块:=IF(NAMELIKE('*ST'),0,1) AND IF(NAMELIKE('S'),0,1) AND

IF(DYNAINFO(9)=0,0,1) AND IF( CODELIKE('3'),0,1) AND

IF( CODELIKE('002'),0,1);

30)TTFILTER 交易信号过滤过滤多空交易信号.

用法:TTFILTER(多头买入开仓,多头卖出平仓,空头卖出开仓,空头买入平仓,N);

1.过滤掉多(空)开仓信号发出后、下一个多(空)平仓信号发出前的所有多(空)开仓信号.

2.多(空)开仓信号发出且空(多)仓已建时,要发出一个平空(多)仓的信号.

3.过滤掉多(空)平仓信号发出后、下一个多(空)开仓信号发出前的所有多(空)平仓信号.

N=1表示仅对多头开仓信号过滤;

N=2表示仅对多头平仓信号过滤;

N=3表示仅对空头开仓信号过滤;

N=4表示仅对空头平仓信号过滤;

N=0表示对合并多空开仓、平仓信号;

例如:ENTERLONG:TTFILTER(多头买入开仓,多头卖出平仓,空头卖出开仓,空头买入平仓,1);

EXITLONG:TTFILTER(多头买入开仓,多头卖出平仓,空头卖出开仓,空头买入平仓,2);

ENTERSHORT:TTFILTER(多头买入开仓,多头卖出平仓,空头卖出开仓,空头买入平仓,3);

EXITSHORT:TTFILTER(多头买入开仓,多头卖出平仓,空头卖出开仓,空头买入平仓,4);

31)TR 真实波幅求真实波幅.

用法: TR,求真实波幅.例如:ATR:=MA(TR,10);

表示求真实波幅的10周期均值

32)SUMBARS 累加到指定值的周期数向前累加到指定值到现在的周期数.用法: SUMBARS(X,A):将X向前累加直到大于等于A,返回这个区间的周期数例如:SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数

33)SMA 移动平均返回移动平均用法:SMA(X,N,M):X的M日移动平均,M为

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多