1、引用函数

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) ALIGNRIGHT   有效数据右对齐.

有效数据右对齐.
用法:
 ALIGNRIGHT(X)有效数据向右移动,左边空出来的周期填充无效值
例如:TC:=IF(CURRBARSCOUNT=2 || CURRBARSCOUNT=5,DRAWNULL,C);XC:ALIGNRIGHT(TC);

不绘制距离今天前第二 和 第五个交易日 的收盘价,并将显示的数据右移一格

4) BARSCOUNT 有效数据周期数

有效数据周期数.
用法:
 BARSCOUNT(X)第一个有效数据到当前的间隔周期数
注意:判断范围为指标或条件选股计算时送给公式的数据,如果给画线指标的数据少(比如没有按下箭头取更多K线)或给条件选股给的数据少,这个有效值也可能少。

5)BARSTATUS   数据位置状态

BARSTATUS返回数据位置信息,1表示第一根K线,2表示最后一个数据,0表示中间位置.
例如:
 BARSTATUS=2表示当天是该数据的最后一个周期.

6)CURRBARSCOUNT   求到最后交易日的周期数

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

7)TOTALBARSCOUNT 总的周期数

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

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

9)BARSLAST  上一次条件成立到当前的周期数

上一次条件成立到当前的周期数.
用法:
 BARSLAST(X):上一次X不为0到现在的周期数
例如:
 BARSLAST(CLOSE/REF(CLOSE,1)>=1.1)表示上一个涨停板到当前的周期数。

10)BARSNEXT   下一次条件成立到当前的周期数

属于未来函数,下一次条件成立到当前的周期数.
用法:
 BARSNEXT(X):下一次X不为0到现在的周期数
例如:
 BARSNEXT(CLOSE/REF(CLOSE,1)>=1.1)表示下一个涨停板到当前的周期数。

11)  BARSSINCEN    N周期内第一个条件成立到当前的周期数

N周期内第一个条件成立到当前的周期数.
用法:
 BARSSINCEN(X,N):N周期内第一次X不为0到现在的周期数,N为常量
例如:
 BARSSINCEN(HIGH>10,10)表示10个周期内股价超过10元时到当前的周期数。

12)  BARSSINCE   第一个条件成立到当前的周期数

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

13)COUNT   统计满足条件的周期数

统计满足条件的周期数.
用法:
 COUNT(X,N),统计N周期中满足X条件的周期数,若N<0则从第一个有效值开始.
例如:
 COUNT(CLOSE>OPEN,20)表示统计20周期内收阳的周期数。

14) BARSLASTCOUNT   条件连续成立次数

统计连续满足条件的周期数.
用法:
 BARSLASTCOUNT(X),统计连续满足X条件的周期数.
例如:
 BARSLASTCOUNT(CLOSE>OPEN)表示统计连续收阳的周期数。

15)HHV    最高值

求最高值.
用法:
 HHV(X,N),求N周期内X最高值,N=0则从第一个有效值开始.
例如:
 HHV(HIGH,30)表示求30日最高价。

16)  HHVBARS  上一高点位置

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

17)  HOD   高值名次

求高值名次.
用法:
 HOD(X,N):求当前X数据是N周期内的第几个高值,N=0则从第一个有效值开始.
例如:
 HOD(HIGH,20)返回是20日的第几个高价。

18)LLV   最低值

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

19)LLVBARS  上一低点位置

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

20) LOD  低值名次

求低值名次.
用法:
 LOD(X,N):求当前X数据是N周期内的第几个低值,N=0则从第一个有效值开始.
例如:
 LOD(LOW,20)返回是20日的第几个低价。

21)REVERSE  取相反数

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

22) REF   日前的

引用若干周期前的数据(平滑处理).
用法:
 REF(X,A),引用A周期前的X值.A可以是变量.
平滑处理:当引用不到数据时进行的操作.此函数中,平滑时使用上一个周期的引用值.
例如:
 REF(CLOSE,BARSCOUNT(C)-1)表示第二根K线的收盘价.

23) REFX   日后的

属于未来函数,引用若干周期后的数据(平滑处理).
用法:
 REFX(X,A),引用A周期后的X值.A可以是变量.
平滑处理:当引用不到数据时进行的操作.此函数中,平滑时使用上一个周期的引用值.
例如:
 TT:=IF(C>O,1,2);
 REFX(CLOSE,TT);表示阳线引用下一周期的收盘价,阴线引用日后第二周期的收盘。

24)REFV   日前的(未做平滑处理)

引用若干周期前的数据(未作平滑处理).
用法:
 REFV(X,A),引用A周期前的X值.A可以是变量.
平滑处理:当引用不到数据时进行的操作.
例如:
 REFV(CLOSE,BARSCOUNT(C)-1)表示第二根K线的收盘价.

25)REFXV   日后的 (未做平滑处理)

属于未来函数,引用若干周期后的数据(未作平滑处理).
用法:
 REFXV(X,A),引用A周期后的X值.A可以是变量.
平滑处理:当引用不到数据时进行的操作.
例如:
 REFXV(CLOSE,1)表示下一周期的收盘价,在日线上就是明天收盘价。

26)REFDATE    指定日期

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

27)CALCSTOCKINDEX  指标引用

指标引用.
用法:CALCSTOCKINDEX(品种代码,指标名称,指标线),返回该指标相应输出的计算值.
例如:
 CALCSTOCKINDEX('SH600000','KDJ',3)表示上证600000的KDJ指标第3个输出即J之值,第一个参数可在前面加SZ(深市),SH(沪市),或市场_,,
CALCSTOCKINDEX('47_IFL0','MACD',2)表示IFL0品种的MACD指标第2个输出值.

注意:引用品种的对应周期的数据必须要先下载到本地。

28)SUM    累和

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

29)MULAR   累积

求累乘.
用法:
 MULAR(X,N),统计N周期中X的乘积.N=0则从第一个有效值开始.
例如:
 MULAR(C/REF(C,1),0)表示统计从上市第一天以来的复利。

30)FILTER  过滤

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

31)FILTERX  反向过滤

反向过滤连续出现的信号.
用法:FILTERX(X,N):X满足条件后,将其前N周期内的数据置为0,N为常量.
例如:
 FILTERX(CLOSE>OPEN,5)查找阳线,前5天内出现过的阳线不被记录在内。

32)TFILT   区间过滤

对指定时间段的数据进行过滤,该时间段以外的数据无效.
用法:
 TFILT(X,D1,M1,D2,M2)
例如:
 TFILT(CLOSE,1040101,1025,1040101,1345)表示在2004年1月1日的10:25到2004年1月1日的13:45的收盘价是有效的.
周期以日为基本单位的,分时为0有效.

33)TFILTER  信号过滤(多头)

过滤连续出现的信号.
用法:TFILTER(买入条件,卖出条件,N);过滤掉买入(卖出)信号发出后,下一个反向信号发出前的所有买入(卖出)信号.

N=1表示仅对买入信号过滤;
N=2表示仅对卖出信号过滤;
N=0表示对买入和卖出信号都过滤,返回1,2表示买入或卖出条件成立;
同一K线上只能有一个信号;

例如:
ENTERLONG:TFILTER(买入,卖出,1);
EXITLONG:TFILTER(买入,卖出,2);

34)TTFILTER  信号过滤(多空)

按照开平配对等原则过滤不合理的信号.
用法:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,N);

主要规则有:
1.连续的同方向指令只有第一个有效,其他的将被过滤;
2.交易信号必须配对出现(比如前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被过滤掉);

N=1表示仅对买入开仓信号过滤;
N=2表示仅对卖出平仓信号过滤;
N=3表示仅对卖出开仓信号过滤;
N=4表示仅对买入平仓信号过滤;
N=0表示都过滤,返回1,2,3,4分别表示对应的条件成立;
同一K线上只能有一个信号;

例如:
ENTERLONG:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,1);
EXITLONG:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,2);
ENTERSHORT:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,3);
EXITSHORT:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,4);

35)TR  真实波幅

求真实波幅.
用法:
 TR,求真实波幅.
 例如:ATR:=MA(TR,10);
 表示求真实波幅的10周期均值。

36)SUMBARS  向前累加到指定值到现在的周期数

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

37) MA  简单移动平均

返回简单移动平均
用法:
 MA(X,N):X的N日简单移动平均,算法(X1+X2+X3+...+Xn)/N,N支持变量。

38)SMA  移动平均

返回移动平均
用法:
 SMA(X,N,M):X的N日移动平均,M为权重,如Y=(X*M+Y'*(N-M))/N

39)TMA   移动平均

返回移动平均
用法:
 TMA(X,A,B),A和B必须小于1,算法    Y=(A*Y'+B*X),其中Y'表示上一周期Y值.初值为X

40)MEMA  平滑移动平均

返回平滑移动平均
用法:
 MEMA(X,N):X的N日平滑移动平均,如Y=(X+Y'*(N-1))/N
 MEMA(X,N)相当于SMA(X,N,1)

41)EMA  指数移动平均

返回指数移动平均
用法:
 EMA(X,N):X的N日指数移动平均.算法:Y=(X*2+Y'*(N-1))/(N+1)
 EMA(X,N)相当于SMA(X,N+1,2),N支持变量

42)EXPMA 指数移动平均

与EMA的用法一致

43)EXPMEMA  指数平滑移动平均

回指数平滑移动平均
用法:
 EXPMEMA(X,N):X的N日指数平滑移动平均
 EXPMEMA同EMA(EXPMA)的差别在于他的起始值为一平滑值。

44)WMA  加权移动平均

返回加权移动平均
用法:
 WMA(X,N):X的N日加权移动平均.算法:Yn=(1*X1+2*X2+...+n*Xn)/(1+2+...+n)

45)DMA 动态移动平均

求动态移动平均.
用法:
 DMA(X,A),求X的动态移动平均.
算法:Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须大于0且小于1.A支持变量.
例如:
 DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价

46)AMA  自适应均线

求自适应均线值.
用法:
 AMA(X,A),A为自适应系数,必须小于1.
算法:
 Y=Y'+A*(X-Y').初值为X

47) XMA 偏移平均移动

属于未来函数,返回偏移移动平均
用法:
 XMA(X,N):X的N日偏移移动平均,用到了当日以后N/2日的数据,N支持变量,只供内部测试使用

48)RANGE  介于某个范围之间

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

49)CONST 取值为常量

CONST(A):取A最后的值为常量.
用法:
 CONST(INDEXC)表示取指数现

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

当前值是近多少周期内的最大值.
用法:
 TOPRANGE(X):X是近多少周期内X的最大值
例如:
 TOPRANGE(HIGH)表示当前最高价是近多少周期内最高价的最大值

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

当前值是近多少周期内的最小值.
用法:
 LOWRANGE(X):X是近多少周期内X的最小值
例如:
 LOWRANGE(LOW)表示当前最低价是近多少周期内最低价的最小值

52)FINDHIGH  N周期前的M周期内的第T个最大值

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

53)FINDHIGHBARS      N周期前的M周期内的第T个最大值到当前周期的周期数

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

54)FINDLOW      N周期前的M周期内的第T个最小值

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

55)FINDLOWBARS       N周期前的M周期内的第T个最小值到当前周期的周期数

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

56)EXTERNSTR     引用自定义外部字符串数据

EXTERNSTR(TYPE,ID) 
TYPE为1表示是系统保留数据,
TYPE为0表示是自定义外部数据,读取signals目录下面的的extern_user.txt,请用自定义数据管理器来维护 
 extern_user.txt为文本结构,如下 1|600717|1|好股|0.33 
市场(0:深圳,1:上海)|品种代码|数据号|文字串|数值 如果是导出格式,则不需要数据号

57)EXTERNVALUE    引用自定义外部数值数据

EXTERNVALUE(TYPE,ID),用法同EXTERNSTR类似

58)SIGNALS_SYS      引用自定义序列数据(系统)

引用自定义序列数据(系统)

59)SIGNALS_USER  引用自定义序列数据

引用自定义序列数据.
读取个人目录下的signals目录下面的[signals_user_?]目录,请用自定义数据管理器来维护.
SIGNALS_USER(11,TYPE):表示读当前品种的11数据号的序列数据(自定义数据需按日期从小到大排序),TYPE:1表示做平滑处理,没有自定义数据的周期返回上一周期的值;0表示不做平滑处理;2表示没有数据则为0.

60)EXTDATA_USER      引用扩展数据

引用扩展数据.
请用扩展数据管理器来设置和刷新数据.
EXTDATA_USER(N,TYPE),N取(1-100),表示读当前品种的N号扩展序列数据,TYPE:1表示做平滑处理,没有数据的周期返回上一周期的值;0表示不做平滑处理;2表示没有数据则为0.

61)SPLIT     除权除息数据

除权除息数据
SPLIT(N,TYPE),取得之前第N次除息除权(送转股,分红)的除权除息数据,参数为0表示送转股的比例(送转/(送转+10)),1表示每股分红(分红/10)),例如:SPLIT(0,0)=0.5表示最近一次除权可能是10送10

62)SPLITBARS           除权除息到现在的周期数

除权除息到现在的周期数
SPLITBARS(N,TYPE),取得之前第N次除权除息到当前的周期数,参数为0表示送转股,1表示分红,2表示送转股或分红,例如:SPLITBARS(0,0)=0表示当天发生除权

63)ZTPRICE  计算涨停价

返回涨停价
用法:
 ZTPRICE(REF(CLOSE,1),0.1):按10%计算得到在昨收盘基础上的涨停价(对于复权序列K线,由于复权处理,根据前一天的收盘价计算结果可能与涨停价不符)
比如:
 ZTPrice(REF(QHJSJ,1),0.1),得到期货的涨停价

64) DTPRICE    计算跌停价

返回跌停价
用法:
 DTPRICE(REF(CLOSE,1),0.1):按10%计算得到在昨收盘基础上的跌停价(对于复权序列K线,由于复权处理,根据前一天的收盘价计算结果可能与跌停价不符)
比如:
 DTPrice(REF(QHJSJ,1),0.6),得到期货的跌停价(跌停比例为0.6的话)

65)TDDLL1    第1号 DLL

调用DLL中的函数.
用法:
 DLL1(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号.

66) TDDLL2 、TDDLL3、TDDLL4、TDDLL5、TDDLL6

TDDLL7、TDDLL8、TDDLL9 、TDDLL10    第n号 DLL

用法同上

67)USERFUNC0   DLL函数 (无参数)

调用DLL中的函数,DLL中内部对应定义.
用法:
 USERFUNC0

68)USERFUNC1   DLL函数 (1参数)

调用DLL中的函数,DLL中内部对应定义.
用法:
 USERFUNC1(param1)

69) USERFUNC2      DLL函数 (2参数)

调用DLL中的函数,DLL中内部对应定义.
用法:
 USERFUNC2(param1,param2)

70) USERFUNC3       DLL函数 (3参数)

调用DLL中的函数,DLL中内部对应定义.
用法:
 USERFUNC3(param1,param2,param3)

71)USERFUNC4       DLL函数 (4参数)

调用DLL中的函数,DLL中内部对应定义.
用法:
 USERFUNC4(param1,param2,param3,param4)