编辑平台支持的函数
1.引用数据
AVPRICE
|
引用均价(在盘后对于国内三个期货交易所指结算价)
|
CLOSE
|
引用收盘价(在盘中指最新价)
|
HIGH
|
引用最高价
|
LOW
|
引用最低价
|
OPEN
|
引用开盘价
|
OPI
|
引用持仓量
|
REF(X,N)
|
引用X在N个周期前的值 例:REF(CLOSE,5);表示引用当前周期前第5个周期的收盘价
|
REFX(X,N)
|
引用N个周期后的数据。(N为大于等于1的整数)(未来函数) 例:REFX(CLOSE,5);表示引用自当前周期后第5个周期的收盘价
|
SETTLE
|
引用结算价(只有盘后才能引用当日的结算价)
|
VOL
|
引用成交量
|
2.金融统计
BACKSET(X,N)
|
若X非0,则将当前位置到N周期前的数值设为1。 例:BACKSET(CLOSE>OPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1
|
BARSLAST(X)
|
求上一次条件成立到当前的周期数。
|
COUNT(X,N)
|
表示统计在N周期内满足X条件的周期数。如果N为0则表示从第一天开始算起。 例:WR:=-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N)); COUNT(WR>80,5);表示统计在5个周期内满足WR>80的次数
|
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(N-1)]/(N+1) 其中EMA(N-1)为第(N-1)天的EMA值
|
EMA2(X,N)
|
表示求X在N周期内的加权平均。(线性加权) 计算方法:EMA2(N)=(N*X0+(N-1)*X1+(N-2)*X2+...+1*XN)/(N+(N-1)+(N-2)+...+1),X0表示本周期值,X1表示上一周期值...
|
HHV(X,N)
|
得到X在N周期内的最高值,如果N=0,则从第一个有效周期开始算起。 例:HHV(HIGH,13);求13个周期内的最高价的最大值。
|
HHVBARS(X,N)
|
得到X在N周期内的最高值位置到当前的周期数。如果N=0,则从第一个有效周期开始算起。 例:HHVBARS(VOL,0); 求历史成交量最大的周期到当前的周期数
|
LLV(X,N)
|
得到X在N周期内的最小值,如果N=0,则从第一个有效周期开始算起。 例:LLV(LOW,25);表示求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个周期内的简单移动平均
|
ZIGZAG(X,P,C)
|
之字转向(未来函数),当C取1,P为百分比数;当C取0,P为价位差值。 例:ZIGZAG(HIGH,10,1);表示最高价的10%的之字转向 ZIGZAG(MA(HIGH,34),100,0);表示34个周期内最高价均线的100个价位的之字转向
|
PEAK(X,P,M,C)
|
取得ZIGZAG前M个波峰的值。其中X为数据,P为转折值(如果C为1的话,这个值为百分比,否则为绝对值),M为大于等于1的整数。(未来函数) 例:PEAK(HIGH,10,1,1);表示最高价的10%的之字转向的上一个波峰的数值 PEAK(MA(HIGH,34),100,1,0);表示34个周期内最高价均线的100个价位的之字转向的上一个波峰的数值
|
PEAKBARS(X,P,M,C)
|
取得ZIGZAG前M个波峰到当前周期的周期数。(未来函数) 例:PEAKBARS(HIGH,10,1,1);表示最高价的10%的之字转向的上一个波峰到当前的周期数 PEAKBARS(MA(HIGH,34),100,1,0);表示34个周期内最高价均线的100个价位的之字转向的上一个波峰到当前的周期数
|
TROUGH(X,P,M,C)
|
取得ZIGZAG前M个波谷的值。(未来函数) 例:TROUGH(LOW,10,1,1);表示最低价的10%的之字转向的上一个波谷的数值 TROUGH (MA(LOW,34),100,1,0);表示34个周期内最低价均线的100个价位的之字转向的上一个波谷的数值
|
TROUGHBARS(X,P,M,C)
|
取得ZIGZAG前M个波谷到当前周期的周期数 (未来函数) TROUGHBARS(LOW,10,1,1);表示最低价的10%的之字转向的上一个波谷到当前的周期数 TROUGHBARS(MA(LOW,34),100,1,0);表示34个周期内最低价均线的100个价位的之字转向的上一个波谷到当前的周期数
|
SAR(N, Step, Max)
|
得到抛物转向值。N为计算周期,Step为步长,Max为极值。 例:SAR(17,3,30);表示计算17个周期抛物转向,步长为3%,极限值为30%
|
SMA(X,N,M)
|
得到X在N个周期内的移动平均,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.数理统计
AVEDEV(X,N)
|
求X在N周期内的平均绝对偏差。
|
DEVSQ(X,N)
|
数据偏差平方和。
|
FORCAST(X,N)
|
得到X的N周期线性回归预测值。 例:FORCAST(CLOSE,5);表示求5周期线性回归预测
|
SLOPE(X,N)
|
得到X在N周期内的线性回归的斜率。 例:SLOPE(CLOSE,5);表示求5周期线性回归线的斜率
|
STD(X,N)
|
得到X在N周期内的标准差。
|
STDP(X,N)
|
得到X在N周期内的总体标准差。
|
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):数据总和除以总个数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,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够大时,两者趋于相等。 7、总体标准差STDP(X,N):方差的开方。 [(-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2/5]?=47.18 8、标准差STD(X,N):估算样本方差的开方。 [2226.16*5/(5-1)]?=52.75 同样,估算标准差也比总体标准差大一点,当N够大时,两者趋于相等。
|
4.逻辑判断
BETWEEN(A,B,C)
|
判断A是否位于B及C之间,如果A介于B,C之间则返回1,否则返回0。 例:BETWEEN(CLOSE,MA5,MA40); 表示收盘价介于5日均线与40日均线之间
|
CROSS(X,Y)
|
如果X上穿Y则返回1(yes),否则返回0(no)。 例:CROSS(CLOSE,MA(CLOSE,5));表示收盘线从下方向上穿过5日均线
|
EXIST(COND,N)
|
判断过去N个周期内是否有满足条件COND。 例:EXIST(CLOSE>REF(HIGH,1),10);表示10个周期中是否存在收盘价大于前一个周期的最高价
|
EVERY(COND,N)
|
判断过去N个周期内是否一直满足条件COND。 例:EVERY(CLOSE>OPEN,5);表示5个周期内一直是阳线
|
LAST(COND,N1,N2)
|
判断过去N1到N2周期内是否一直满足条件COND。 例:LAST(CLOSE>OPEN,10,5);表示从过去第10个周期到第5个周期内一直是阳线
|
LONGCROSS(A,B,N)
|
如果A在前N个周期内都小于B,本周期上穿B,则返回1。否则返回0。 例:LONGCROSS(CLOSE,MA(CLOSE,10),20);表示收盘线在10日均线之下持续20周期后从下向上穿过10日均线
|
NOFILTER
|
信号过滤函数。 公式后加“NOFILTER;”是指不需要过滤,出现任何交易指令都会执行。公式后不加“NOFILTER;”是指当连续出现同方向的交易指令时,系统只显示出第一个交易指令,其他交易指令自动被过滤。
|
IF(C,A,B)
|
如果C成立返回A,否则返回B。 例:IF(CLOSE>REF(CLOSE,1),1,0);表示若今日收盘价高于前一日收盘价,则返回1,否则返回0
|
ISDOWN
|
如果该周期收阴则返回1,否则返回0。
|
ISEQUAL
|
如果该周期平盘则返回1,否则返回0。
|
ISUP
|
如果该周期收阳则返回1,否则返回0。
|
ISLASTBAR
|
取得当前周期是否为最后一根K线。最后一个周期返回值为1,其余为0。
|
VALUEWHEN(COND,DATA)
|
当条件COND满足时,取当时的DATA的值,否则取得VALUEWHEN的前一个值。 例:VALUEWHEN(HIGH>REF(HIGH,5),HIGH);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价
|
5.数学运算
ABS(X)
|
求X的绝对值。 例:ABS(CLOSE-10) 返回收盘价和10的价差的绝对值
|
ACOS(X)
|
求X的反余弦值。
|
ASIN(X)
|
求X的反正弦值。
|
ATAN(X)
|
求X的反正切值。
|
CEILING(X)
|
向上舍入。返回沿X数值增大方向最接近的整数。
|
COS(X)
|
返回X的余弦值。
|
EXP(X)
|
表示求e的X次幂。
|
FLOOR(X)
|
向下舍入。返回沿X数值减小方向最接近的整数。
|
INTPART(X)
|
取X的整数部分。INTPART(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中的较小者。 例:MIN(OPEN,CLOSE);返回开盘价和收盘价中的较小值
|
MOD(A,B)
|
返回A对B得到模。 例:MOD(CLOSE,OPEN);收盘价除以开盘价所得余数
|
NOT(X)
|
当X为0时返回1,否则返回0。 例:NOT(TIME=0905);表示该周期对应的时间不是9:05AM
|
POW(A,B)
|
得到A的B次幂。 例:POW(CLOSE,2);求得收盘价的2次方
|
REVERSE(X)
|
取反。 例:REVERSE(LOW);返回-LOW
|
SGN(X)
|
得到X的符号,如果X>0则返回1,如果X<0则返回-1,否则返回0。
|
SIN(X)
|
得到X的正弦值。
|
SQRT(X)
|
得到X的平方根。 例:SQRT(CLOSE);收盘价的平方根
|
SQUARE(X)
|
得到X的平方。 例:SQUARE(CLOSE);收盘价的平方
|
TAN(X)
|
得到X的正切值。
|
6.时间函数
BARPOS
|
取得当前K线的位置。
|
DATE
|
取得当前周期的日期数(700101-341231)。
|
DAY
|
取得当前周期的日数(1-31)。
|
HOUR
|
取得当前周期的小时数(0-23)。
|
MINUTE
|
取得当前周期的分钟数(0-59)。
|
MONTH
|
取得当前周期的月数(1-12)。
|
TIME
|
取得当前周期的时间数(0-2359)。
|
WEEKDAY
|
取得当前周期的星期数(0-6)。
|
YEAR
|
取得当前周期的年数(1970-2034)。
|
7.绘图
DRAWLINE (C1,P1,C2,P2, COLOR)
|
当条件C1及C2均满足时,从P1画直线到P2,颜色为COLOR。 例:DRAWLINE(MA18< CLOSE,OPEN,MA5 >CLOSE,CLOSE,COLORCYAN); 表示当收盘价大于18日均线并且小于5日均线时,从开盘价画青色直线到收盘价。
|
DRAWTEXT(C,P,TEXT)
|
表示当条件C满足时在P上写TEXT文字。 例:DRAWTEXT(CLOSE< OPEN&&REF(CLOSE,1)< REF(OPEN,1) &&REF(VOL,1)*1.1< VOL,LOW,‘注‘); 表示连续两日收阴并且成交量比前一日至少多10%时,在最低价上写“注”字。
|
DRAWSL(COND,DATA, SLOPE,LEN,EXPAND, COLOR)
|
画斜线,当条件COND满足时,从DATA开始以每个周期相差SLOPE个点的斜率画斜线,划线长度为LEN个周期,EXPAND为线段的延长方式(0:不延伸;1:向左延伸;2:向右延伸;3:双向延伸)。 例:DRAWSL(LOW=LLV(LOW,50),LOW,5,3,2,COLORRED); 表示当前最低价等于50周期内的最小值时,从当前最小值开始以每隔5个点的斜率画长度为3个周期向右延伸的斜线,颜色为红色
|
DRAWNUMBER (COND,DATA,NUMBER,PRECISION,COLOR)
|
画数字。当条件COND满足时,在DATA位置写数字NUMBER(为数组),精度为PRECISION(小数点后有几位数字)。 例:DRAWNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED); 表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。
|
FILLRGN (COND,DATA1,DATA2,COLOR)
|
填充区域,当条件COND满足时,填充DATA1及DATA2包围的区域。 例:FILLRGN(MA5>MA10,MA5,MA10,COLORRED); 表示MA5>MA10时以红色填充MA5和MA10之间的区域。
|
POLYLINE (COND,DATA,COLOR)
|
画折线,当条件COND满足时,连接各个DATA点。 例:POLYLINE(CLOSE>=HHV(CLOSE,100),CLOSE,COLORRED); 表示在收盘价创100天新高点之间画折线。
|
PARTLINE (COND,DATA,COLOR)
|
同POLYLINE。 例:PARTLINE(HIGH>REF(HIGH,1),HIGH,COLORRED); 表示当期最高价大于前期最高价用红色绘制最高价连线。
|
STICKLINE (C,P1,P2,Color,Empty)
|
如果条件C满足时,从P1到P2画柱线,颜色为Color,如果Empty不为0,则为空心柱,否则为实心柱。 例:STICKLINE(OPEN-CLOSE>0,OPEN,CLOSE,COLORCYAN,0); 表示当开盘价大于收盘价时,从开盘价到收盘价画青色的实心柱,即K线阴线的实体部分。
|
VERTLINE (COND,COLOR)
|
画垂直线,当条件COND满足时,画垂直线。 例:VERTLINE(HIGH>=HHV(HIGH,30),COLORRED); 表示在价格创30天新高时画垂直线。
|
|