




已阅读5页,还剩75页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
麦语言自编策略模型函数列表文华财经资讯有限公司“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过8年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。麦语言,是国内使用人数最多的程序化模型开发平台。 麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用目录自编策略模型支持的函数21.数学运算(24)22.金融统计函数(25)63.数理统计函数(8)134.逻辑判断函数(22)165.时间函数(15)216.绘图函数(26)257.画线函数(10)328.波峰波谷统计函数(7)389.未来函数(2)4210.头寸函数 (47)4311.历史数据引用 (18)6812.日内高频数据引用(46)7213.引用其他合约价格(1)7714.颜色常数78自编策略模型支持的函数1.数学运算(24)abs(x)求x的绝对值注:1、正数的绝对值是它本身;2、负数的绝对值是它的相反数;3、0的绝对值还是0;例1: abs(-10);/返回10。例2: abs(close-10);/返回收盘价和的10价差的绝对值。例3: abs(c-o);/当前k线实体长度acos(x)求x的反余弦值注: 1、x取值范围-1,1。 2、若x不在取值范围,返回值为空值。例1: acos(-1);/求-1的反余弦值;例2: acos(1);/求1的反余弦值;asin(x)求x的反正弦值注: 1、x取值范围-1,1。 2、若x不在取值范围,返回值为空值。例1: asin(-1);/求-1的反正弦值;例2: asin(1);/求1的反正弦值;atan(x)求x的反正切值注:x的取值为r(实数集)例1: atan(-1.75);/求-1.75的反正切值;例2:atan(1.75);/求1.75的反正切值;cos(x)返回x的余弦值注: 1、x的取值为r(实数集) 2、值域为-1,1例1: cos(-1.57);/返回-1.57的余弦值例2: cos(1.57);/返回1.57的余弦值exp(x)返回e的x次幂例1: c*exp(0.01);/求收盘价乘以e的0.01次幂cube(x)返回x的三次方。例1: cube(4);/求4的立方。ceiling(x)向上舍入,返回沿a数值增大方向最接近的整数,若a为整数,则返回值为a。例1: ceiling(2.1);/求得3。例2: ceiling(-8.8);/求得-8。例3: ceiling(c*1.01);/求收盘价的1.01倍向上取整例4: ifelse(c-intpart(c)=0.5,ceiling(c),floor(c);/对收盘价四舍五入后取整数部分floor(x)向下舍入,返回沿a数值减小方向最接近的整数,若a为整数,则返回值为a。注: floor(a)返回沿a数值减小方向最接近的整数,若a为整数,则返回值为a。例1: floor(2.1);/返回值为2;例2: floor(-8.8);/返回值为-9;例3: floor(5);/返回值为5;例4: ifelse(c-intpart(c)=0.5,ceiling(c),floor(c);/对收盘价四舍五入后取整数部分。intpart(x)取x的整数部分。例1: intpart(12.3);/返回值为12;例2: intpart(-3.5);/返回值为-3;例3: intpart(10);/返回值为10;例5: intpart(c);/求收盘价的整数部分。ln(x)求x的自然对数。注: 1、x取值范围为非0自然数,即1、2、3、4、5 2、若x取值为0或负数,返回值为空值。例: ln(open);/求开盘价的对数。log(x)求x的常用对数值。注:1、该函数中x的取值范围为x0 2、0和负数没有对数,x为0或负数时返回值为空值。例1: log(100) 返回2.例2: log(0) 返回空值。max(a,b)取最大值。取a,b中较大者。注:若a=b,返回值为a或者b的值。例1: max(close,open);/表示取开盘价和收盘价中较大者。例2: max(close-open,0);/表示若收盘价大于开盘价返回它们的差值,否则返回0。例3: max(a,max(b,max(c,d);/求 a b c d四者中的最大值min(a,b)取最小值。取a,b中较小者。注:若a=b,返回值为a或者b的值。例1: min(open,close);/表示取开盘价和收盘价中的较小者。例2: min(c,min(o,ref(c,1);/求当前周期的开盘价,收盘价,以及上周期的收盘价间最小的数值mod(a,b)取模。返回a对b求模。例1: mod(26,10);/返回6,26除以10所得余数为6,即26对10 的模为6。例2: drawicon(mod(barpos,3)=0,h,ico1);/从数据开始第一根k线开始 分别在第3、6、9、 12等k线依次往后每隔3根k线标注一个笑脸图案例3: mod(a,2)=0;/判断a为偶数。not(x)取非。当x0时返回1,否则返回0。例1: not(islastbk);如果上一个信号不是bk信号,则not(islastbk)返回值为1;如果上一个信号是bk信号,则not(islastbk)返回值为0。例2: not(barsbk=1)=1;/bk信号发出的当根k线上满足条件。 /not(barsbk=1)=1 与 not(barsbk=1) 表达同等意义。pow(a,b)求x的y次幂。注:当x为负数时,y必须为整数,因为底数为负时,不能进行开方运算,返回值为空值。例1: pow(close,2);/求得收盘价的2次方。例2: pow(10,2);/返回值为100例3: pow(1/2,-2);/返回值为4例4: pow(100,1/2);/返回值为10reverse(x)取相反值,返回x。例1: reverse(low);/返回-low。例2: reverse(-55);/返回值为55例3: reverse(0);/返回值为0range(a,b,c)介于某个范围之内。表示a大于b同时小于c时返回1,否则返回0例1: range(5,4,6);/返回值为1;例2: range(8,3,6);/返回值为0;例3: ma5:ma(c,5); ma10:ma(c,10); ma20:ma(c,20); range(ma10,ma20,ma5),bk;/10周期均线在5周期均线与20周期均线之间买开仓 /range(ma10,ma20,ma5)=1,bk; 与 range(ma10,ma20,ma5),bk; 表达同等意义sgn(x)取符号。若x0返回1,若xclose); /上一根阴线到现在的周期数。例2: n:=barslast(dateref(date,1)+1;/分钟周期,当日k线数。 /由于条件成立的当根k线上barslast(cond)的返回值为0,所以“+1”才是当日k线根数。barslastcount(cond)从当前周期向前计算,统计连续满足条件的周期数。注:1、返回值为从当前周期计算cond连续不为0的周期数2、条件第一次成立的当根k线上barslastcount(cond)的返回值为1例:barslastcount(closeopen);/计算当根k线在内连续为阳线的周期数barssince(cond)第一个条件成立到当前的周期数。注:1、返回值为cond第一次成立到当前的周期数2、条件第一次成立的当根k线上barssince(cond)的返回值为0例:barssince(closeopen);/统计第一次满足阳线这个条件的k线到现在的周期数count(x,n)统计n周期中满足cond条件的周期数。注: 1、若n为0则从第一个有效值算起; 2、当n为有效值,但当前的k线数不足n根,从第一根统计到当前周期。 3、n 为空值时返回值为空值 。 4、n可以为变量例1: n:=barslast(dateref(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周期均线的次数。condbars(a,b)取得最近的满足a、b条件的k线间周期数注意:1、该函数返回周期数不包含最后满足条件的k线2、如果距离当前k线最近的满足的条件为b条件,则该函数返回值为最后一次满足a条件的k线到满足b条件的k线的周期数(a条件满足后的第一次满足b条件的k线) 如果距离当前k线最近的满足的条件为a条件,则该函数返回值为最后一次满足b条件的k线到满足a条件的k线的周期数(b条件满足后的第一次满足a条件的k线)例1:ma5:=ma(c,5);/5周期均线ma10:=ma(c,10)/;10周期均线condbars(crossup(ma5,ma10),crossdown(ma5,ma10);/最近一次满足5周期均线上穿10周期均线与5周期均线下穿10周期均线之间的周期数dma(x,a)求x的动态移动平均,其中a必须小于1大于0。注:a可以为变量计算公式: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.3ema(x,n)求n周期x值的指数移动平均(平滑移动平均)。注: 1、对距离当前较近的k线赋予了较大的权重。 2、当n为有效值,但当前的k线数不足n根,按实际根数计算。 3、n为0或空值时返回值为空值。 4、n可以为变量 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、n可以为变量 4、本函数运算量很大,将占用很多的cpu资源,导致行情刷新速度变慢,请谨慎使用!例1: ema2(h,5);/求最高价在5个周期的加权移动平均值。emawh(c,n)指数移动平均,也叫平滑移动平均,采用指数加权方法,对距离当前较近的k线赋予了较大的权重。注:1、当n为有效值,当前的k线数不足n根时,或者前面周期的取值仍作用于当前周期时,emawh返回值为空值因为emawh计算公式中着重考虑了当周期的权重,所以当周期较长,前面的周期取值对当前的影响越小,emawh从前面数据对当前周期不再影响时的取值开始显示,所以即使选择的数据起始时间不同,当前已经显示的k线的emawh的取值也不会发生变化2、当n为0或空值时返回值均为空值3、n不能为变量emawh=2*x/(n+1)+(n-1)*emawh(n-1)/(n+1)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(dateref(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(dateref(date,1)+1;nn:=ref(n,n); zh:valuewhen(dateref(date,1),hv(h,nn);/在分钟周期上,求昨天最高价。例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(dateref(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(dateref(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(dateref(date,1)+1;/分钟周期,日内k线根数 zl:valuewhen(dateref(date,1),lv(l,n);/在分钟周期上,求昨天最低价。例3: lv(l,5) 和 ref(llv(l,5),1) 的结果是一样的,用lv编写更加方便。llvbars(x,n)求n周期内x最低值到当前周期数注: 1、若n为0则从第一个有效值开始算起(不包含当前k线); 2、当n为有效值,但当前的k线数不足n根,按照实际的根数计算,第一根k线返回空值; 3、n为空值时,返回空值。 4、n可以是变量。例1: llvbars(vol,0); 求历史成交量最小的周期到当前的周期数(最小值那根k线上llvbars(vol,0);的返回值为0,最小值后的第一根k线返回值为1,依次类推)。例2: n:=barslast(dateref(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或空值的情况下,函数返回空值。 4、n可以为变量例1: ma5:=ma(c,5);/求5周期收盘价的简单移动平均。例2: n:=barslast(dateref(date,1)+1;/分钟周期,日内k线根数 m:=ifelse(n10,10,n);/如果k线超过10根,m取10,否则m取实际根数 ma10:ma(c,m);/在分钟周期上,如果当天k线不足10根,按照实际根数计算ma10,如果超过10根按照10周期计算ma10。numpow(x,n,m)自然数幂方和算法:numpow(x,n,m)=nm*x+(n-1)m*ref(x,1)+(n-2)m*ref(x,2)+.+2m*ref(x,n-2)+1m*ref(x,n-1)rn注意:1、n为自然数,m为实数;且n与m不能为变量2、x为基础变量例1:rnjz:=numpow(c,5,2)/numpow(1,5,2);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。smma(x,n)x为变量,n为周期,smma(x,n)表示当前k线上x在n个周期的通畅移动平均线算法:smma(x,n)=(sum1-mma+close)/n其中sum1=x1+x2+.+xn mma=sum1/n例1:smma(c,5);/收盘价的5周期通畅移动平均线sum(x,n)求x在n个周期内的总和。注:1、若n为0则从第一个有效值开始算起。2、当n为有效值,但当前的k线数不足n根,按照实际的根数计算。 3、n为空值时,返回空值。 4、n可以为变量。例1: sum(vol,25);表示统计25周期内的成交量总和例2: n:=barslast(dateref(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或空值的情况下,函数返回空值。 3、n支持使用变量例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=ai+ai-1+.+ai-n+1 xsum=i+i-1+.+i-n+1 xxsum=i*i+(i-1)*(i-1)+.+(i-n+1)*(i-n+1) xysum=i*ai+(i-1)*ai-1+.+(i-n+1)*ai-n+1 k=(xysum -(ysum/n)*xsum)/(xxsum- xsum/n * xsum) /斜率 b= ysum/n - k*xsum/n forcasti=k*i+b /线性回归 tsmai = forcasti+k /线性回归+斜率注:1、当n为有效值,但当前的k线数不足n根,函数返回空值。 2、n为0或空值的情况下,函数返回空值。 3、n支持使用变量例1: tsma5:tsma(close,5);/计算5个周期内收盘价的序列三角移动平均3.数理统计函数(8)avedev(x,n)返回x在n周期内的平均绝对偏差。注: 1、n为有效值,但当前的k线数不足n根,该函数返回空值; 2、n为0时,该函数返回空值; 3、n为空值,该函数返回空值;4、n不能为变量例: avedev(c,5);/返回收盘价在5周期内的平均绝对偏差。 /表示5个周期内每个周期的收盘价与5周期收盘价的平均值的差的绝对值的平均值,判断收盘价与其均值的偏离程度devsq(x,n)计算数据x的n个周期的数据偏差平方和。注: 1、n为有效值,但当前的k线数不足n根,该函数返回空值; 2、n为0时,该函数返回空值; 3、n为空值,该函数返回空值; 4、n不支持为变量例: devsq(c,5);计算数据收盘价5个周期的数据偏差平方和。 /表示平均绝对偏差分别平方之后求和,devsq(c,5)表示5个周期的平均绝对偏差分别平方之后求和。forcast(x,n)为x的n周期线性回归预测值。注: 1、n为有效值,但当前的k线数不足n根,该函数返回空值; 2、n为0时,该函数返回空值; 3、n为空值,该函数返回空值; 4、n可以是变量例: forcast(close,5);/表示求5周期线性回归预测值slope(x,n)得到x的n周期的线型回归的斜率。注: 1、n为有效值,但当前的k线数不足n根,该函数返回空值; 2、n为0时,该函数返回空值; 3、n为空值,该函数返回空值。 4、n可以为变量例: slope(close,5);表示求收盘价5个周期线性回归线的斜率std(x,n)求x在n个周期内的标准差。注: 1、n为有效值,但当前的k线数不足n根,该函数返回空值; 2、n为0时,该函数返回空值; 3、n为空值,该函数返回空值。 4、n可以为变量例: std(c,10)求收盘价在10个周期内的标准差。 /标准差表示总体各单位标准值与其平均数离差平方的算术平均数的平方根,它反映一个数据集的离散程度。std(c,10)表示收盘价与收盘价的10周期均线之差的平方和的平均数的算术平方根。标准差是样本方差的平方根。stdp(x,n)为x的n周期总体标准差。注: 1、n为有效值,但当前的k线数不足n根,该函数返回空值; 2、n为0时,该函数返回空值; 3、n为空值,该函数返回空值。 4、n可以为变量例: stdp(c,10)为收盘价的10周期总体标准差。 /总体标准差是反映研究总体内个体之间差异程度的一种统计指标,总体方差是一组资料中各数值与其算术平均数离差平方和的平均数,总体标准差则是总体方差的平方根。var(x,n)求x在n周期内的样本方差。注: 1、n为有效值,但当前的k线数不足n根,该函数返回空值; 2、n为0时,该函数返回空值; 3、n为空值,该函数返回空值; 4、n支持使用变量例1: var(c,5)求收盘价在5周期内的样本方差。 /表示总体方差的n/(n-1)倍,var(c,5)表示收盘价的5周期总体样本方差的5/4倍。varp(x,n)为x的n周期总体样本方差注: 1、n为有效值,但当前的k线数不足n根,该函数返回空值; 2、n为0时,该函数返回空值; 3、n为空值,该函数返回空值; 4、n支持使用变量例: varp(c,5)为收盘价的5周期总体样本方差 /表示数据偏差平方和除以总周期数n,varp(c,5)表示收盘价5个周期的数据偏差平方和除以5.数理统计举例说明:设一个数列,数列中数据的总个数为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够大时,两者趋于相等。4.逻辑判断函数(22)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(x,y)表示a从下方向上穿过b,成立返回1(yes),否则返回0(no)注: 1、满足穿越的条件必须上根k线满足ab才被认定为穿越。例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个周期内当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周期均线的第偶数次divergence(x1,x2,s,l,hl)变量x1与x2在指定周期内是否发生背离用法:s: 设置转折点两边需要的周期数,取值应小于l的四分之一;s不可以为变量; l: 计算的总的范围的周期数;l不可以为变量。hl: 可以取值为1和-1 1表示根据x1的峰值判断背离情况;x1在l周期内波峰取值创了新高,但x2在x1峰值对应的取值没有创新高,熊背离,或称顶背离 -1表示计算波谷点,x1在l周期内波谷取值创了新低,但x2在x1波谷对应的取值没有创新低,牛背离,或称底背离;例1:ma10:ma(c,10);divergence(c,ma10,2,20,1);/在20个周期内,收盘价与5周期均线存在顶背离说明:收盘价峰值的判断标准-收盘价大于前2个周期的收盘价,并且大于后2个周期的收盘价,认为为收盘价的峰值;即在当根k线前面的20个周期(不包含当根k线)内,收盘价存在两个这样的峰值,且峰值创了新高,但是在两个峰值对应k线取到的10周期均线照的值未创新高every(cond,n)判断n周期内,是否一直满足cond条件。若满足函数返回值为1,不满足函数返回值为0;注: 1、n包含当前k线。 2、若n是有效数值,但前面没有那么多k线,或者n为空值,代表条件不满足,函数返回值为0。 3、n可以是变量例1: every(closeopen,5);/表示5个周期内一直是阳线例2: ma5:=ma(c,5);/定义5周期均线 ma10:=ma(c,10);/定义10周期均线 every(ma5ma10,4),bk;/4个周期内ma5都大于ma10,则买开仓。 /every(ma5ma10,4),bk;与every(ma5ma10,4)=1,bk;表达同等意义exist(cond,n)判断n个周期内是否有满足cond的条件(包含当前周期)注: 1、n可以是变量。 2、若n是有效数值,但前面没有那么多k线,或者n为空值,代表条件不满足,该函数返回值为0例1: exist(closeref(high,1),10);表示10个周期中是否存在收盘价大于前一个周期的最高价,存在返回1,不存在则返回0.例2: n:=barslast(dateref(date,1)+1; exist(cma(c,5),n);/ 表示当天是否有满足收盘价大于5周期均线的k线,存在返回1,不存在返回0filter(cond,n)当cond条件成立,将其后n周期内的数据设置为0.注: 1、n为空值,返回空值。 2、n不能为变量 3、不能与bkprice,barsbk,skprice,barssk一起使用例1: filter(closeopen,3);/ 查找阳线,3天内再次出现的阳线不被记录在内ifelse(cond,a,b)若cond条件成立,则返回a,否则返回b注: 1、cond是判断条件;a、b可以是条件,也可以是数值。例1: ifelse(isup,h,l);/如果k线为阳线,取最高价,否则取最低价例2: a:=ifelse(ma5ma10,cross(diff,dea),ifelse(cross(d,k),2,0);/当ma5ma10时,取是否满足diff上穿dea,否则(ma5不大于ma10),当k,d死叉时,令a赋值为2,若上述条件都不满足,a赋值为0 a=1,bpk;/当ma5ma10,以diff上穿dea作为开多仓条件 a=2,spk;/当ma5不大于ma10,以k、d死叉作为开空仓条件isdown判断该周期是否收阴注: 1、isdown等同于co例: isdown=1&cref(c,1),sk;/如果当根k线收阴并且收盘价小于前一周期收盘价,则开空 /isdown=1&cref(c,1),sk; 与 isdown&c=1000,closeout;/如果当根k线是交割日并且时间是10:00,则全平。islastbar判断该周期是否为最后一根k线 注:1、该函数属于未来函数。 例1:valuewhen(islastbar=1,ref(h,1);/如果当前k线是最后一根k线,则取前一周期的最高价。islastkline判断该周期是否为每日收盘前最后一根k线,返回是1(yes),否则返回0(no)。例1: islastkline=1,closeout;/如果该周期是当日收盘前最后一根k线,则全平isup判断该周期是否收阳注: 1、isup等同于co例: isup=1&cref(c,1),bk;/如果当根k线收阳并且收盘价大于前一周期收盘价,则开多 /isup=1&cref(c,1),bk; 与 isup&cref(c,1),bk;/表达同等意义klineend判断k线当前状态是否是k线结束。用法: 1、klinestart 如果当前k线状态为k线的结束,则返回1,否则返回0。2、模组运行及效果测试选择信号执行方式为“不进行信号复核”时,可以采用该函数来控制信号出现的时间klinestart判断k线当前状态是否是k线开始。用法: 1、klinestart 如果当前k线状态为k线的开始,则返回1,否则返回0。2、模组运行及效果测试选择信号执行方式为“不进行信号复核”时,可以采用该函数来控制信号出现的时间last(cond,n1,n2)判断过去n1到n2周期内,是否一直满足cond条件。注: 1、若n1与n2只相差一个周期(如n1=3,n2=2),则函数判断距离当前k线最近的那个周期上是否满足条件(即判断过去n2个周期的那根k线上是否满足条件) 2、当n为有效值,但当前的k线数不足n根,或者n空值的情况下,代表不成立,该函数返回0 3、n可以是变量。例1: last(closeopen,10,5);/表示从过去第10个周期到第5个周期内一直是阳线例2: ma5:=ma(c,5); last(cma5,4,3);/判断距离当前k线3个周期的那根k线上是否满足c大于ma5.longcross(a,b,n)表示a在n个周期内都小于b,本周期a从下向上穿越b注:1、当n为有效值,但当前的k线数不足n根, 2、n为空值的情况下,代表不成立,函数返回0例1: longcross(close,ma(close,10),20);/表示收盘线在10日均线之下持续20周期后从下向上穿过10日均线trend获取k线趋势。用法: 1:trend 如果k线的形成过程中最高价先出现,则返回值为3;如果最低价先出现,则返回值为2;若最高和最低一起出现,则返回值为1;默认为0。 2:该函数只支持效果测试和模组运行。valuewhen(cond,data)当cond条件成立时,取x的当前值。如cond条件不成立,则取上一次cond条件成立时x的值。注: x可以是数值也可以是条件。例1 valuewhen(highref(hhv(high,5),1),high);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价例2: valuewhen(dateref(date,1),o);表示取当天第一根k线的开盘价(即当天开盘价)例3: valuewhen(dateref(date,1),lref(h,1);表示在当天第一根k线上判断当前最低价是否大于昨天最高价。如果返回1,说明当天跳空高开。返回0,说明当天不满足跳空高开条件。5.时间函数(15)barpos返回从第一根k线开始到当前的周期数。 注:1:barpos返回本地已有的k线根数,从本机上存在的数据开始算起。2:本机已有的第一根k线上返回值为1。 例1:llv(l,barpos);/求本地已有数据的最小值。 例2:ifelse(barpos=1,h,0);/如果当前k线是本机已有的第一根k线取最高值,否则取0。closeminute返回距离收盘前的分钟数。 注:1:该函数返回分钟数,不支持小数。2:该函数包含小结和午休的时间,以商品期货为例,当天第一根k线closeminute返回为360。3:closeminute适合应用于日线以下的周期,在日线上加载此函数,每根k线的返回值都为1。4:closeminute返回的是交易所的时间,不是本机的时间。5:closeminute支持上海夜盘使用,例如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年化工工艺工程师面试题及解析
- 2025年计算机编程技能测试模拟题集PythonJava等含答案解析
- 2025年特岗教师招聘笔试初中地理高频考点归纳与解析
- 2025年银行安保岗位保安业务笔试题目及答案
- 骨质疏松的概念症状临床诊断及护理要点
- 甲状腺彩超课件
- 甲烷和烷烃课件
- 中班小朋友教学课件模板
- 书签超链接的教学课件
- 江苏苏州2020-2022年中考满分作文41篇
- DB65-T 4846-2024 工贸行业企业重大事故隐患认定
- 化学实验室通风柜安装安全操作规程
- 【川剧剧本欣赏】《白蛇传》
- 放射科护理服务规范礼仪课件
- 机场绿化应急预案及保障措施
- 鼻腔内窥镜上颌窦手术配合
- 充电桩安装与使用管理制度
- 海尔采购管理
- 《跨境电商基础与实务》全套教学课件
- 物料提升机安全知识培训
- 出生医学证明警示教育培训
评论
0/150
提交评论