文华财经主要函数学习 下载本文

金融统计函数

BARSLAST(COND):上一次条件COND成立到当前的周期数 注:

1、条件成立的当根k线上BARSLAST(COND)的返回值为0

2、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!

例1:

BARSLAST(OPEN>CLOSE); //上一根阴线到现在的周期数。 例2:

N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,当日k线数。

//由于条件成立的当根k线上BARSLAST(COND)的返回值为0,所以“+1”才是当日k线根数。

COUNT(COND,N):统计N周期中满足COND条件的周期数。 注:

1、若N为0则从第一个有效值算起;

2、当N为有效值,但当前的k线数不足N根,从第一根统计到当前周期。 3、N 为空值时返回值为空值 。

例1:

N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,当日k线数。 M:COUNT(ISUP,N);//统计分钟周期上开盘以来阳线的根数。 例2:

MA5:=MA(C,5);//定义5周期均线 MA10:=MA(C,10);//定义10周期均线

M:COUNT(CROSSUP(MA5,MA10),0);//统计从申请到的行情数据以来到当前这段时间内,5周期均线上穿10周期均线的次数。

DMA(X,A):求X的动态移动平均,其中A必须小于1大于0。

计算公式:DMA(N)=DMA(N-1)*(1-A)+X(N)*A 其中DMA(N-1)为第(N-1)天的DMA值

例1:

DMA3:=DMA(C,0.3);//计算结果为REF(DMA3,1)*(1-0.3)+C*0.3 EMA(X,N):求N周期X值的指数移动平均(平滑移动平均)。 注:

1、对距离当前较近的k线赋予了较大的权重。

2、当N为有效值,但当前的k线数不足N根,按实际根数计算。 3、N为0或空值时返回值为空值。 EMA==2*X/(N+1)+(N-1)*EMA(N-1)]/(N+1) 举例:X1=6 X2=7 X3=8 X4=9

则EMA(X,4)=2/5*X4+3/10*X3+3/15*X2+3/30*X1=4/10*9+3/10*8+2/10*7+1/10*6=8 例1:

EMA10:=EMA(C,10);//求收盘价10周期平滑移动平均值

EMA2(X,N);//求N周期X值的线性加权平均(也称WMA)

EMA2(X,N)=(N*X0+(N-1)*X1+(N-2)*X2)+...+1*X(N-1))/(N+(N-1)+(N-2)+...+1),X0表示本周期值,X1表示上一周期值 注:

1、当N为有效值,但当前的k线数不足N根,返回值为空值。 2、N为0或空值时返回值为空值。

3、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用! 例1:

EMA2(H,5);//求最高价在5个周期的加权移动平均值。

Exponential Moving Average,指数移动平均,也叫平滑移动平均,采用指数加权方法,对距离当前较近的K线赋予了较大的权重。 注:

(1)当N为有效值,当前的k线数不足N根时,或者前面周期的取值仍作用于当前周期时,EMAWH返回值为空值

因为EMAWH计算公式中着重考虑了当周期的权重,所以当周期较长,前面的周期取值对当前的影响越小,EMAWH从前面数据对当前周期不再影响时的取值开始显示,所以即使选择的数据起始时间不同,当前已经显示的K线的EMAWH的取值也不会发生变化 (2)当N为0或空值时返回值均为空值

EMAWH==2*X/(N+1)+(N-1)*EMAWH(N-1)〕/(N+1)

注:

EMAWH用法同EMA(C,N)

HHV(X,N):求X在N个周期内的最高值。 注:

1、若N为0则从第一个有效值开始算起;

2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算;

3、N为空值时,返回空值。 4、N可以是变量。

例1:

HH:HHV(H,4);//求4个周期最高价的最大值,即4周期高点(包含当前k线)。 例2:

N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,日内k线根数 HH1:=HHV(H,N);//在分钟周期上,日内高点

HV(X,N): 求X在N个周期内(不包含当前k线)的最高值。

注:

1、若N为0则从第一个有效值开始算起(不包含当前K线);

2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算,第一根k线返回空值;

3、N为空值时,返回空值。 4、N可以是变量。

例1:

HH:HV(H,10);//求前10根k线的最高点。 例2:

N:=BARSLAST(DATE<>REF(DATE,1))+1;

ZH:VALUEWHEN(DATE<>REF(DATE,1),HV(H,N));//在分钟周期上,求昨天最高价。 例3:

HV(H,5) 和 REF(HHV(H,5),1) 的结果是一样的,用HV编写更加方便。

HHVBARS(X,N): 求N周期内X最高值到当前周期数

注:

1、若N为0则从第一个有效值开始算起(不包含当前K线);

2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算,第一根k线返回空值;

3、N为空值时,返回空值。 4、N可以是变量。

例1:

HHVBARS(VOL,0); 求历史成交量最大的周期到当前的周期数(最大值那根k线上HHVBARS(VOL,0);的返回值为0,最大值后的第一根k线返回值为1,依次类推)。 例2:

N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,日内k线根数 ZHBARS:REF(HHVBARS(H,N),N);//在分钟周期上,求昨天最高价所在的k线到当前k线之间的周期数。

LLV(X,N): 求X在N个周期内的最小值。

注:

1、若N为0则从第一个有效值开始算起;

2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算; 3、N为空值时,返回空值。 4、N可以是变量。

例1:

LL:LLV(L,5);//求5根k线最低点(包含当前k线)。 例2:

N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,日内k线根数

LL1:=LLV(L,N);//在分钟周期上,求当天第一根k线到当前周期内所有k线最低价的最小值。 LV(X,N) 求X在N个周期内的最小值(不包含当前k线)

注:

1、若N为0则从第一个有效值开始算起;

2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算; 3、N为空值时,返回空值。 4、N可以是变量。

例1:

LL:LV(L,10);//求前面10根k线的最低点。(不包含当前k线) 例2:

N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,日内k线根数

ZL:VALUEWHEN(DATE<>REF(DATE,1),LV(L,N));//在分钟周期上,求昨天最低价。 例3:

LV(L,5) 和 REF(LLV(L,5),1) 的结果是一样的,用LV编写更加方便。 LLVBARS(X,N): 求N周期内X最低值到当前周期数 注:

1、若N为0则从第一个有效值开始算起(不包含当前K线);