通达信全部函数和用法.docx
《通达信全部函数和用法.docx》由会员分享,可在线阅读,更多相关《通达信全部函数和用法.docx(35页珍藏版)》请在冰豆网上搜索。
通达信全部函数和用法
通达信全部函数及其用法
(2014-01-0215:
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 分钟 求当前时刻距开盘有多长时间.用法:
FROMOPENFROMOPEN.返回当前时刻距开盘有多长时间,单位为分钟.例如:
当前时刻为早上十点,那么返回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的天数.
TOSEC当日秒数求指定时刻距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-111:
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〕BARSSINCENN周期首个条件成立位置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)=2ANDC>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模糊股票代码
以此可应用于归类选择或分类过滤
例:
去除ST
S1:
=IF(NAMELIKE('S'),0,1);{取得股票名称中的第一个字符为返回条件}
S2:
=IF(NAMELIKE('*'),0,1);
ST:
S1ANDS2;{最后一句NOT(ST)用取返就成专门选出ST股}
这里的ST条件就在选股中去除了股票名称以S开头及*开头的股票,XD及新股N可用同样方法,创业版可用CODELIKE函数,因为代码300。
例:
过滤条件〔留ST〕:
=NAMELIKE('ST')ORNAMELIKE('*'){ORCODELIKE('3')}{创业板}
ORBARSCOUNT(V)<=100{次新}OR{总量}DYNAINFO(9)=0{停牌};
去掉ST:
IF(NAMELIKE('*ST'),0,1)ANDIF(NAMELIKE('S'),0,1)andIF(DYNAINFO(9)=0{停牌},0,1);
去掉板块:
=IF(NAMELIKE('*ST'),0,1)ANDIF(NAMELIKE('S'),0,1)ANDIF(DYNAINFO(9)=0,0,1)ANDIF(CODELIKE('3'),0,1)ANDIF(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为权重,如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日均线交金叉
2〕LONGCROSS 持续周期后上穿 两条线维持一定周期后穿插.用法:
LONGCROSS(A,B,N)表示A在N周期都小于B,本周期从下方向上穿过B时返回1,否那么返回0
例如:
COUNT(LONGCROSS(C,MA(C,20),10),30)=1AND COUNT(C>MA(C,20),5)>=4AND(CROSS(C,MA(C,20)*1.02)ORCROSS(MA(C,20),C))ANDC>MA(C,20)*0.98ANDMA(C,20)>REF(MA(C,20),1)ANDMA(C,10)>MA(C,20); 股价突破20日均线,然后回踩20均线
3〕UPNDAY 连涨 返回是否连涨周期数.用法:
UPNDAY(CLOSE,M)表示连涨M个周期
4〕DOWNNDAY 连跌 返回是否连跌周期.用法:
DOWNNDAY(CLOSE,M)表示连跌M个周期
5〕NDAY 连大 返回是否持续存在X>Y用法:
NDAY(CLOSE,OPEN,3)表示连续3日收阳线
6〕EXIST 存在 是否存在.用法:
EXIST(CLOSE>OPEN,10) 表示前10日存在着阳线例;EXIST(REF(C,1)/REF(C,2)>=1.098,5)表示最近5日存在着昨收/2日前的收盘价>=1.098
7〕EVERY 一直存在 一直存在.用法:
EVERY(CLOSE>OPEN,10) 表示前10日一直阳线
8〕LAST 持续存在 LAST(X,A,B):
持续存在.用法:
LAST(CLOSE>OPEN,10,5) 表示从前10日到前5日一直阳线假设A为0,表示从第一天开场,B为0,表示到最后日止
9〕TESTSKIP