1、自编公式支持的函数1.引用数据AVPRICE 取得均价(在盘后对于国内三个期货交易所指结算价)SETTLE取得结算价(只有在日线周期盘后才能取得当日的结算价)说明:如果用在周期小于日的 K 线上如 5 分钟 K 线,一小时 k 线,每根 k 线返回的值表示这根 k 线当日开盘时到这根 k 线的为止的结算价(均价)如果用在周期大于等于日的 K 线上,返回当根 K 线结束时间所在日的结算价.CLOSE 取得收盘价(在盘中指最新价),也可简写为 C 。HIGH 求高价,也可简写为 H 。LOW 求最低价,也可简写为 L 。OPEN 求开盘价,也可简写为 O 。OPI 取持仓量REF(X,N)引用 X
2、 在 N 个周期前的值例:REF(CLOSE,5);表示引用当前周期前第 5 个周期的收盘价REFX(X,N)引用 N 个周期后的数据。(N 为大于等于 1 的整数)未来函数例:REFX(CLOSE,5);表示引用自当前周期后第 5 个周期的收盘价本函数运算量很大,将占用很多的 CPU 资源,导致行情刷新速度变慢,请谨慎使用!MINPRICE 返回某品种的最小变动价位。用法:MINPRICE(CODE); 返回 CODE 所对应合约的最小变动价位。CODE 文华码或交易代码。例:MINPRICE(IF1107); 表示返回 IF1007 的最小变动价位。注意:某些合约(如橡胶指数)查不到最小变
3、动价位,返回 0。VOL 求成交量,也可简写为 V 。2.金融统计BACKSET(X,N)若 X 条件成立,则将当前位置到 N 周期前的数值设为 1。未来函数例:BACKSET(CLOSEOPEN,3);表示当 K 线收阳时,自当前位置到 3 周期前的数值设为 1BARSLAST(X) 求上一次条件成立到当前的周期数。COUNT(X,N)表示统计在 N 周期内满足 X 条件的周期数。如果 N 为 0 则表示从已申请到的数据的第一天开始算起。例:WR:=-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N); COUNT(WR80,5);表示统计在 5
4、个周期内满足WR80 的次数 DMA(X,A)返回 X 的动态移动平均,其中 A 为常数,并且必须介于 0 及 1之间。计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A 其中 DMA(N-1)为第(N-1)天的 DMA 值。EMA(X,N)表示求 X 在 N 周期内的平滑移动平均。(指数加权)计算方法:EMA(X,N)=2*X+(N-1)*EMA(X,(N-1)/(N+1) 其中EMA(X,(N-1)为第(N-1)天的 EMA 值EMA2(X,N)表示求 X 在 N 周期内的加权平均。(线性加权)计算方法:EMA2(X,N)=(N*X0+(N-1)*X1+(N-2)*X2+.
5、+1*XN-1)/(N+(N-1)+(N-2)+.+1),X0 表示本周期值,X1 表示上一周期值.HHV(X,N)得到 X 在 N 周期内的最高值,如果 N0,则从本地数据的第一个有效周期开始算起。例:HHV(HIGH,13);求 13 个周期内的最高价的最大值。 HHVBARS(X,N)得到 X 在 N 周期内的最高值位置到当前的周期数。如果 N=0,则从本地数据的第一个有效周期开始算起。例:HHVBARS(VOL,0); 求历史成交量最大的周期到当前的周期数LLV(X,N)得到 X 在 N 周期内的最小值,如果 N=0,则从本地数据的第一个有效周期开始算起。例:LLV(LOW,25);表
6、示求 25 个周期内最低价的最小值LLVBARS(X,N)得到 X 在 N 周期内的最小值的位置到当前的周期数。如果 N=0则从本地数据的第一个有效周期开始算起。例:LLVBARS(VOL,0); 求历史成交量最小的周期到当前的周期数MA(X,N) 求 X 在 N 周期内的简单移动平均。计算方法:MA=(A1+A2+A3+A4+A5)/5 求 A 在 5 个周期内的简单移动平均SAR(N,Step,Max)得到抛物转向值。N 为计算周期,Step 为步长,Max 为极值。(系统函数,计算步骤后台自动完成)例:SAR(17,0.03,0.3);表示计算 17 个周期抛物转向,步长为3%,极限值为
7、 30% SMA(X,N,M)得到 X 在 N 个周期内的移动平均,M 为权重(M 为常数)。计算方法:SMA(N)=SMA(N-1)*(N-M)/N+X(N)*M/N SUM(X,N)得到 X 在 N 周期内的总和,如果 N=0,则从第一个有效周期开始算起。例: SUM(VOL,10);表示统计 10 周期内的成交量总和 SUMBARS(X,A) 得到 X 向前累加直到大于 A 时的周期数。 TRMA(X,N) 求 X 在 N 周期内的三角移动平均。 TSMA(X,N) 求 X 在 N 周期内的时间序列移动平均。计算方法:TSMA(X,N)= FOCAST(X,N)+SLOPE(X,N) 3
8、.数理统计 AVEDEV(X,N) 求 X 在 N 周期内的平均绝对偏差DEVSQ(X,N) 数据偏差平方和。FORCAST(X,N)得到 X 的 N 周期线性回归预测值。例:FORCAST(CLOSE,5);表示求 5 周期线性回归预测VAR(X,N) 得到 X 在 N 周期内的样本方差VARP(X,N) 得到 X 在 N 周期内的总体样本方差数理统计举例说明:设一个数列,数列中数据的总个数为 N,以今天(2005-10-14)五天内的 A0605 收盘价为例,N 就为 5。数列的内容为:2766,2805,2814,2886,2885。1、算术平均值 MA(CLOSE,5):数据总和除以总
9、个数 N。 (2766+2805+2814+2886+2885)/5=2831.20。 可以用公式 MA(CLOSE,5),从今天的值上看出。2、偏差:每个数据,减去算术平均值的结果。 2766-2831.20=-65.2, 2805-2831.20=-26.2, 2814-2831.20=-17.2, 2886-2831.20=54.8, 2885-2831.20=53.8, 各偏差相加,应该是等于 0 的。3、平均绝对偏差 AVEDEV(X,N):将偏差的绝对值相加,除以总个数 N。 (65.2+26.2+17.2+54.8+53.8)/5=43.44 4、数据偏差平方和 DEVSQ(X,
10、N):将偏差的平方相加。 (-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2=11130.80 5、总体样本方差 VARP(X,N):将偏差的平方相加,总和除以总个数 N。用公式可以这样算: (-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2/5=2226.16 6、样本方差 VAR(X,N):是总体方差的 N/(N-1)倍。 2226.16*5/(5-1)=2782.70 估算样本方差,总比总体样本方差大一点,当 N 够大时,两者趋于相等。SLOPE(X,N)求线型回归的斜率。用法:SLOPE(X,N)得到
11、X 的 N 周期的线型回归的斜率。例:SLOPE(CLOSE,5);表示求收盘价 5 个周期线性回归线的斜率STD(X,N)求标准差。用法:STD(X,N)求 X 在 N 个周期内的标准差。STDP(X,N)求总体标准差。用法:STDP(X,N)为 X 的 N 日总体标准差。4.逻辑判断BETWEEN(A,B,C)判断条件“A 位于 B 及 C 之间”是否成立,如果条件成立则返回 1 (yes),否则返回 0 (no)。例:BETWEEN(CLOSE,MA5,MA40); 表示收盘价介于 5 日均线与 40 日均线之间。CROSS(X,Y)表示 X 上穿 Y。例:CROSS(CLOSE,MA(
12、CLOSE,5);表示收盘线从下方向上穿过 5 日均线FILTER(COND,N)过滤连续出现的信号。用法:FILTER(COND,N) 当 COND 条件成立时,将其后 N 周期内的数据置为 0。例:FILTER(CLOSEOPEN,3) 查找阳线,3 天内再次出现的阳线不被记录在内注:不能与 BKPRICE,BARSBK,SKPRICE,BARSSK 一起使用EXIST(COND,N)判断 N 个周期内是否有满足条件 COND 的情况发生。例:EXIST(CLOSEREF(HIGH,1),10);表示 10 个周期中是否存在收盘价大于前一个周期的最高价EVERY(COND,N)判断过去 N
13、 个周期内是否一直满足条件 COND。例:EVERY(CLOSEOPEN,5);表示 5 个周期内一直是阳线LAST(COND,N1,N2)判断过去 N1 到 N2 周期内是否一直满足条件 COND。例:LAST(CLOSEOPEN,10,5);表示从过去第 10 个周期到第 5 个周期内一直是阳线LONGCROSS(A,B,N)如果 A 在前 N 个周期内都小于 B,本周期上穿 B,则返回1。否则返回 0。例:LONGCROSS(CLOSE,MA(CLOSE,10),20);表示收盘线在10 日均线之下持续 20 周期后从下向上穿过 10 日均线IFELSE(C,A,B)如果条件 C 成立则
14、取 A 值,否则取 B 值例:A:=IFELSE(MA5MA10,CROSS(DIFF,DEA),IFELSE(CROSS(D,K),2,0);当 MA5MA10 时,取是否满足DIFF 上穿 DEA,否则(MA5 不大于 MA10),当 K,D 死叉时,令 A 赋值为 2,若上述条件都不满足,A 赋值为 0A=1,BPK;/当 MA5MA10,以 DIFF 上穿 DEA 作为开多仓条件A=2,SPK;/当 MA5 不大于 MA10,以 K D 死叉作为开空仓条件ISDOWN 判断该周期是否收阴。ISEQUAL 判断该周期是否平盘。ISUP 判断该周期是否收阳。VALUEWHEN(COND,D
15、ATA)当条件 COND 满足时,取当时的 DATA 的值,否则取得前面一个满足条件 COND 的值。例:VALUEWHEN(HIGHREF(HIGH,5),HIGH);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价。5.数学运算ABS(X) 求 X 的绝对值例:ABS(SAR(17,0.03,0.3);返回抛物转向SAR(17,0.03,0.3)的绝对值。ACOS(X) 求 X 的反余弦值ASIN(X) 求 X 的反正弦值ATAN(X) 求 X 的反正切值COS(X) 返回 X 的余弦值EXP(X) 返回 e 的 X 次幂CUBE(X) 返回 X 的三次方。CEILING(X)
16、向上舍入,返回沿 X 数值增大方向最接近的整数。FLOOR(X) 向下舍入,返回沿 X 数值减小方向最接近的整数。INTPART(X) 取 X 的整数部分,返回沿 X 绝对值减小方向最接近的整数。LN(X) 得到 X 的自然对数,以 e 为底的对数。例:LN(OPEN);求开盘价的自然对数。LOG(X) 得到 X 的常用对数,取得 X 的以 10 为底的对数。例:LOG(OPEN);求开盘价的以 10 为底的对数。MAX(A,B) 求 A,B 中的较大者。例:MAX(CLOSE-OPEN,0);表示若收盘价大于开盘价返回它们的差值,否则返回 0。MIN(A,B) 求 A,B 中的较小者。例:M
17、IN(OPEN,CLOSE);返回开盘价和收盘价中的较小值。MOD(A,B) 返回 A 对 B 得到模。例:MOD(CLOSE,500);收盘价除以 500 所得余数NOT(X) 当 X 为 0 时返回 1,否则返回 0。例:NOT(TIME=090530);表示该周期对应的时间不是9:05:30AM。POW(A,B) 得到 A 的 B 次幂。例:POW(CLOSE,2);求得收盘价的 2 次方。REVERSE(X) 取反,返回符号相反的数值。例:REVERSE(LOW);返回-LOW。RANGE(A,B,C) 表示 A 大于 B 同时小于 C 时返回 1,否则返回 0SGN(X) 得到 X
18、的符号,如果 X0 则返回 1,如果 X1445/距闭市还有 1 分钟平多单。7.绘图BACKGROUNDSTYLE(i) 设置背景的样式。用法:BACKGROUNDSTYLE(i)设置背景的样式。i = 0 或 1。DRAWLINE(C1,P1,C2,P2,COLOR)当条件 C1 及 C2 均满足时,从 P1 画直线到 P2,颜色为 COLOR。例:DRAWLINE(MA18CLOSE,CLOSE,COLORCYAN); 表示当收盘价大于 18日均线并且小于 5 日均线时,从开盘价画青色直线到收盘价。 DRAWTEXT(C,P,TEXT) 表示当条件 C 满足时在 P 上写 TEXT 文字
19、。例:DRAWTEXT(CLOSE1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED); 表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。FILLRGN(COND,DATA1,DATA2,COLOR)填充区域,当条件 COND 满足时,填充 DATA1 及DATA2 包围的区域。例:FILLRGN(MA5MA10,MA5,MA10,COLORRED); 表示 MA5MA10 时以红色填充 MA5 和 MA10 之间的区域。POLYLINE(COND,DATA,COLOR)画折线,当条件 COND 满足时,连接各个 DATA 点。例:POLYL
20、INE(CLOSE=HHV(CLOSE,100),CLOSE,COLORRED); 表示在收盘价创 100 天新高点之间画折线。 PARTLINE(COND,DATA,COLOR)同 POLYLINE。例:PARTLINE(HIGHREF(HIGH,1),HIGH,COLORRED);表示当期最高价大于前期最高价用红色绘制最高价连线线段。 STICKLINE(C,P1,P2,Color,Empty)如果条件 C 满足时,从 P1 到 P2 画柱线,颜色为Color,如果 Empty 取 1,则为空心柱;如果 Empty取 0,则为实心柱。例:STICKLINE(OPEN-CLOSE0,OPEN,CLOSE,COLORCYAN,0); 表示当开盘价大于收盘价时,从开盘价到收盘价画青色的实心柱,即 K 线阴线的实体部分。 VERTLINE(COND,COLOR)画垂直线,当条件 COND 满足时,画垂直线。例:VERTLINE(HIGH=HHV(HIGH,30),COLORRED); 表示在价格创 30 天新高时画垂直线。 RGB(R,G,B) 自定义颜色函数。R,G,B 的数值范围都在 0255 之间,例:RGB(225,225,225)表示白色COLORSTICK 画彩色柱线VOLUMESTICK 画成交量线BAMBOOLINE 画竹线