编程基础知识之金融统计函数

金融统计函数
(一)
BARSCOUNT(COND) 第一个有效周期到当前的周期数。
注:
1、返回值为COND从第一个有效周期开始计算,到现在为止的周期数。
2、条件第一次成立的当根k线上BARSCOUNT(COND)的返回值为0
例:
BARSCOUNT(MA(C,4));//计算MA(C,4)第一次有返回值到当前的周期数。

(二)
BARSSINCE(COND) 第一个条件成立到当前的周期数。
注:
1、返回值为COND第一次成立到当前的周期数
2、条件第一次成立的当根k线上BARSSINCE(COND)的返回值为0
例:
BARSSINCE(CLOSE>OPEN);
//统计第一次满足阳线这个条件的K线到现在的周期数

(三)
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周期的指数加权移动平均

posted on 2015-12-09 13:36  米加米加  阅读(1122)  评论(0编辑  收藏  举报