2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算,第一根k线返回空值;
3、N为空值时,返回空值。 4、N可以是变量。
例1:
LLVBARS(VOL,0); 求历史成交量最小的周期到当前的周期数(最小值那根k线上LLVBARS(VOL,0);的返回值为0,最小值后的第一根k线返回值为1,依次类推)。 例2:
N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,日内k线根数
ZLBARS:REF(LLVBARS(L,N),N);//在分钟周期上,求昨天最低价所在的k线到当前k线之间的周期数。
MA(X,N) 求X在N个周期内的简单移动平均
算法:MA(X,5)=(X1+X2+X3+X4+X5)/5 注:
1、简单移动平均线沿用最简单的统计学方式,将过去某特定时间内的价格取其平均值。 2、当N为有效值,但当前的k线数不足N根,函数返回空值。 3、N为0或空值的情况下,函数返回空值。
例1:
MA5:=MA(C,5);//求5周期收盘价的简单移动平均。 例2:
N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,日内k线根数
M:=IFELSE(N>10,10,N);//如果k线超过10根,M取10,否则M取实际根数
MA10:MA(C,M);//在分钟周期上,如果当天k线不足10根,按照实际根数计算MA10,如果超过10根按照10周期计算MA10。 SAR(N,STEP,MAX) 返回抛物转向值。 注:
1、参数N,Step,Max均不支持变量
例1:
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 注:
1、当N为有效值,但当前的k线数不足N根,按实际根数计算。 2、 N为0或空值的情况下,函数返回空值。
例1:
SMA10:=SMA(C,10,3);//求的10周期收盘价的移动平均。权重为3。 SUM(X,N) 求X在N个周期内的总和。
注:
1、若N为0则从第一个有效值开始算起。
2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算。 3、N为空值时,返回空值。 4、N可以是变量。
例1:
SUM(VOL,25);表示统计25周期内的成交量总和 例2:
N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,日内k线根数 SUM(VOL,N);//分钟周期上,取当天成交量总和。 SUMBARS(X,A):求累加到指定值的周期数 例1:
SUMBARS(VOL,20000); 将成交量向前累加直到大于等于20000,返回这个区间的周期数。 TRMA(X,N): 求X在N个周期的三角移动平均值。
算法:三角移动平均线公式,是采用算数移动平均,并且对第一个移动平均线再一次应用算数移动平均。
TRMA(X,N) 算法如下 ma_half= MA(X,N/2) trma=MA(ma_half,N/2) 注:
1、当N为有效值,但当前的k线数不足N根,函数返回空值。 2、N为0或空值的情况下,函数返回空值。
例1:
TRMA5:TRMA(CLOSE,5);//计算5个周期内收盘价的三角移动平均。(N不能被2整除) //TRMA(CLOSE,5)=MA(MA(CLOSE,(5+1)/2)),(5+1)/2);
例2:
TRMA10:TRMA(CLOSE,10);// 计算10个周期内收盘价的三角移动平均。(N能被2整除) TRMA(CLOSE,10)=MA(MA(CLOSE,10/2),(10/2)+1));
TSMA(X,N):求X在N个周期内的时间序列三角移动平均 TSMA(a,n) 算法如下: ysum=a[i]+a[i-1]+...+a[i-n+1] xsum=i+i-1+..+i-n+1
xxsum=i*i+(i-1)*(i-1)+...+(i-n+1)*(i-n+1)
xysum=i*a[i]+(i-1)*a[i-1]+...+(i-n+1)*a[i-n+1]
k=(xysum -(ysum/n)*xsum)/(xxsum- xsum/n * xsum) //斜率 b= ysum/n - k*xsum/n
forcast[i]=k*i+b //线性回归
tsma[i] = forcast[i]+k //线性回归+斜率
注:
1、当N为有效值,但当前的k线数不足N根,函数返回空值。 2、N为0或空值的情况下,函数返回空值。 例1:
TSMA5:TSMA(CLOSE,5);//计算5个周期内收盘价的序列三角移动平均
逻辑判断函数
BETWEEN(A,B,C) 表示A是否处于B和C之间,成立返回1(Yes),否则返回0(No)。
注:
1、其中若A=B、A=C、或A=B且B=C时函数返回值为1(Yse)。
例1:
BETWEEN(CLOSE,MA5,MA10); //表示收盘价介于5日均线与10日均线之间。 CROSS(A,B) 表示A从下方向上穿过B,成立返回1(Yes),否则返回0(No)
注:
1、满足穿越的条件必须上根k线满足A<=B,当根k线满足A>B才被认定为穿越。
例1:
CROSS(CLOSE,MA(CLOSE,5));//表示收盘线从下方向上穿过5周期均线
CROSSUP(A,B) 表当A从下方向上穿过B,成立返回1(Yes),否则返回0(No) 注:
1、CROSSUP(A,B)等同于CROSS(A,B),CROSSUP(A,B)编写更利于理解。
例1:
MA5:=MA(C,5); MA10:=MA(C,10);
CROSSUP(MA5,MA10),BK;//MA5上穿MA10,买开仓。
//CROSSUP(MA5,MA10),BK; 与 CROSSUP(MA5,MA10)=1,BK;表达同等意义
CROSSDOWN(A,B):表示当A从上方向下穿B,成立返回1(Yes),否则返回0(No) 注:
1、CROSSDOWN(A,B)等同于CROSS(B,A),CROSSDOWN(A,B)编写更利于理解
例1:
MA5:=MA(C,5); MA10:=MA(C,10);
CROSSDOWN(MA5,MA10),SK;//MA5下穿MA10卖开仓
//CROSSDOWN(MA5,MA10),SK; 与 CROSSDOWN(MA5,MA10)=1,SK;表达同等意义CROSS2(A,B,N) 表示N个周期内当A从下方向上穿B偶数次。 赢顺不支持 注:
1、若N为0,则从第一个有效的值开始算。
2、当N为有效值,但当前的k线数不足N根,或者N空值的情况下,代表不成立,该函数返回0
例1:
MA5:=MA(C,5);
CROSS2(C,MA5,10) 返回值为1(Yes),表示当前周期是10个周期内(包含当前周期)收盘价从下方向上穿过5周期均线的第偶数次;返回值为0(No),表示当前周期不是10个周期内(包含当前周期)收盘价从下方向上穿过5周期均线的第偶数次
EVERY(COND,N),判断N周期内,是否一直满足COND条件。若满足函数返回值为1,不满足函数返回值为0;
注:
1、N包含当前k线。
2、若N是有效数值,但前面没有那么多K线,或者N为空值,代表条件不满足,函数返回值为0。
例1:
EVERY(CLOSE>OPEN,5);//表示5个周期内一直是阳线 例2:
MA5:=MA(C,5);//定义5周期均线 MA10:=MA(C,10);//定义10周期均线
EVERY(MA5>MA10,4),BK;//4个周期内MA5都大于MA10,则买开仓。
//EVERY(MA5>MA10,4),BK; 与 EVERY(MA5>MA10,4)=1,BK; 表达同等意义 EXIST(COND,N) 判断N个周期内是否有满足COND的条件(包含当前周期) 注:
1、N可以是变量。
2、若N是有效数值,但前面没有那么多K线,或者N为空值,代表条件不满足,该函数返回值为0
例1:
EXIST(CLOSE>REF(HIGH,1),10);表示10个周期中是否存在收盘价大于前一个周期的最高价,存在返回1,不存在则返回0. 例2:
N:=BARSLAST(DATE<>REF(DATE,1))+1;
EXIST(C>MA(C,5),N);// 表示当天是否有满足收盘价大于5周期均线的k线,存在返回1,不存在返回0
FILTER(COND,N) 当COND条件成立,将其后N周期内的数据设置为0. 注:
1、N为空值,返回空值。
2、不能与BKPRICE,BARSBK,SKPRICE,BARSSK一起使用