文华财经WH策略函数列表.docx
《文华财经WH策略函数列表.docx》由会员分享,可在线阅读,更多相关《文华财经WH策略函数列表.docx(50页珍藏版)》请在冰点文库上搜索。
文华财经WH策略函数列表
Corporationstandardizationoffice#QS8QHH-HHGX8Q8-GNHHJ8
文华财经WH策略函数列表
函数列表
函数名
函数说明
ABS
ABS(X):
取的X的绝对值。
注:
1、正数的绝对值是它本身;
2、负数的绝对值是它的相反数;
3、0的绝对值还是0;
例1:
ABS(-10);
0是保持本身坐标不变。
1是将坐标固定在0到100之间。
2是将坐标以0为中轴的坐标系。
2、参数i的选择根据想要显示的指标数据范围而定。
3、不支持将该函数直接定义为变量,即不支持下面的写法:
A:
BACKGROUNDSTYLE(i);
例1:
MA5:
MA(C,5);
MA10:
MA(C,10);
BACKGROUNDSTYLE(0);
例2:
DIFF:
EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:
EMA(DIFF,9);
2*(DIFF-DEA),COLORSTICK;
BACKGROUNDSTYLE
(2)
BARPOS
BARPOS,返回从第一根K线开始到当前的周期数。
注:
1、BARPOS返回本地已有的K线根数,从本机上存在的数据开始算起。
2、本机已有的第一根K线上返回值为1。
例1:
LLV(L,BARPOS);
史信号计算中,出现BK信号的当根K线,BARSBK返回空值
b.加载运行过程中,信号固定后BARSBK返回空值
(2)设置信号执行方式为K线走完复核(例如:
在模型中写入CHECKSIG_SEC(BK,'A',N,'D',0);)
BARSBK返回值为上一个BK信号距离当前的K线根数(包含当前K线)
例:
1、BARSBK>10,SP;
史信号计算中,出现SK信号当根K线,BARSSK返回空值
b.加载运行过程中,SK信号当根K线,信号固定后BARSSK返回空值
(2)设置信号执行方式为K线走完复核(例如:
在模型中写入CHECKSIG_SEC(SK,'A',N,'D',0);)
BARSSK返回值为上一个SK信号距离当前的K线根数(包含当前K线)
例:
1、BARSSK>10,BP;
史信号计算中,出现BP信号当根K线,BARSBP返回空值
b.加载运行过程中,BP信号当根K线,信号固定后BARSBP返回空值
(2)设置信号执行方式为K线走完复核(例如:
在模型中写入CHECKSIG_SEC(BP,'A',N,'D',0);)
BARSBP返回值为上一个BP信号距离当前的K线根数(包含当前K线)
例:
?
1、BARSBP>10,BK;
史信号计算中,出现SP信号当根K线,BARSSP返回空值
b.加载运行过程中,SP信号当根K线,信号固定后BARSSP返回空值
(2)设置信号执行方式为K线走完复核(例如:
在模型中写入CHECKSIG_SEC(SP,'A',N,'D',0);)
BARSSP返回值为上一个SP信号距离当前的K线根数(包含当前K线)
例:
1、BARSSP>10,BK;
史回测:
BKPRICE返回信号发出时的数据合约行情最新价
b.模组运行:
BKPRICE返回信号发出时的数据合约行情最新价
(2)信号执行方式选择K线走完确认信号下单
a.历史回测:
BKPRICE返回信号发出时数据合约当根K线的收盘价
b.模组运行:
BKPRICE返回信号发出时数据合约当根K线的收盘价
(3)信号执行方式设置为K线走完进行信号复核
a.历史回测:
BKPRICE返回信号发出时数据合约当根K线的收盘价
b.模组运行:
复核前,返回上一次BK信号当根K线数据合约的行情最新价;复核后,返回本次BK信号当根K线数据合约的行情最新价
4、当模组自动初始化时,BKPRICE返回的为上一次买开信号时数据合约行情的最新价;手动初始化,BKPRICE返回为初始化弹出框中填入的持仓价格。
例:
BKPRICE-CLOSE>60&&BKPRICE>0&&BKVOL>0,SP;
史回测:
BKPRICE1返回信号发出时的交易合约行情最新价
b.模组运行:
BKPRICE1返回信号发出时的交易合约行情最新价
(2)信号执行方式选择K线走完确认信号下单
a.历史回测:
BKPRICE1返回信号发出时交易合约当根K线的收盘价
b.模组运行:
BKPRICE1返回信号发出时交易合约当根K线的收盘价
(3)信号执行方式设置为K线走完进行信号复核
a.历史回测:
BKPRICE1返回信号发出时交易合约当根K线的收盘价
b.模组运行:
复核前,返回上一次BK信号当根K线交易合约的行情最新价;复核后,返回本次BK信号当根K线交易合约的行情最新价
3、当模组自动初始化时,BKPRICE1取最近的BK信号发出时的交易合约行情的最新价;手动初始化时,BKPRICE1取初始化弹出框中填入的持仓价格。
BKPRICE2
BKPRICE2模组子账户交易合约多头开仓均价。
用法:
BKPRICE2返回模组子账户交易合约多头开仓均价。
注:
1、历史回测未指定交易合约时:
(1)过滤模型开仓信号后,未出平仓信号时:
BKPRICE2取值和BKPRICE取值相同。
(2)过滤模型平仓信号后:
BKPRICE2返回值为0。
(3)非过滤模型持仓不为0时:
BKPRICE2返回理论持仓的开仓均价。
(4)非过滤模型持仓为0时:
BKPRICE2返回值为0。
2、历史回测指定交易合约时:
(1)过滤模型开仓信号后,未出平仓信号时:
BKPRICE2取值和BKPRICE1取值相同。
(2)过滤模型平仓信号后:
BKPRICE2返回值为0。
(3)非过滤模型持仓不为0时:
BKPRICE2返回交易合约理论持仓的开仓均价。
(4)非过滤模型持仓为0时:
BKPRICE2返回值为0。
3、模组运行,盘中出现BK信号,BKPRICE2取值为交易合约模组多头持仓的开仓均价。
4、该函数在模组运行中读取的是模组实际持仓的开仓均价,非理论持仓。
5、挂单时开仓均价不变,实际成交后才计算开仓均价。
例:
CLOSE-BKPRICE2>60&&BKPRICE2>0&&BKVOL>0,SP;
史信号计算中,BK(BPK)信号之后的K线返回委托以来的行情的最高价
b.加载运行过程中,BK(BPK)信号当根K线返回的为信号发出时行情的最新价,BK之后的K线返回委托以来的行情最高价
2、信号执行方式选择K线走完复核(例如:
在模型中写入CHECKSIG_SEC(BK,'A',0,'D',0);),从BK(BPK)信号发出时行情时开始统计行情的最高价;信号消失,返回
上次买开以来的行情的最高价,信号确认存在,返回当根K线记录的行情的最高价
注:
BK信号发出后,中间出了信号消失,从最后一次信号出现开始统计最高价
3、信号执行方式选择不进行信号复核(例如:
在模型中写入MULTSIG_SEC或MULTSIG_MIN;),BK(BPK)信号的当根K线返回从信号发出到K线走完时行情的最高价;BK
(BPK)信号之后的K线返回信号发出以来行情的最高价。
例:
C>O,BK;
C>BKPRICE&&CAUTOFILTER;
史信号计算中,BK(BPK)信号之后的K线返回委托以来的行情的最低价
b.加载运行过程中,BK(BPK)信号当根K线返回的为信号发出时行情的最新价,BK之后的K线返回委托以来的行情最低价
2、信号执行方式选择K线走完复核(例如:
在模型中写入CHECKSIG_SEC(BK,'A',0,'D',0);),从BK(BPK)信号发出时行情时开始统计行情的最低价;信号消失,返回
上次买开以来的行情的最低价,信号确认存在,返回当根K线记录的行情的最低价
注:
BK信号发出后,中间出了信号消失,从最后一次信号出现开始统计最低价
3、信号执行方式选择不进行信号复核(例如:
在模型中写入MULTSIG_SEC或MULTSIG_MIN;),BK(BPK)信号的当根K线返回的从信号发出到K线走完时行情的最低价;
BK(BPK)信号之后的K线返回信号发出以来行情的最低价。
例:
C>O,BK;
C>BKLOW+5,SP;
AUTOFILTER;
号执行方式选择K线走完确认信号下单或者出信号立即下单,K线走完复核(例如:
在模型中写入CHECKSIG_SEC(BK,'A',0,'D',0);)
BK(BPK)信号出现的当根K线上:
BK信号未确认时,BKVOL取值不变,与上根K线上返回值保持一致;
BK信号确认后,BKVOL的取值增加开仓手数的数值
SP(SPK)信号出现的当根K线上:
SP信号未确认时,BKVOL取值不变,与上根K线上返回值保持一致;
SP信号确认后,BKVOL的取值减少平仓手数的数值;
b.信号执行方式选择出信号立即下单,不进行复核(例如:
在模型中写入MULTSIG_SEC或MULTSIG_MIN;)
BK(BPK)信号出现的当根K线上,BKVOL取值增加开仓手数的数值;
BK(BPK)信号的下根K线上,BKVOL的取值不变,与上根K线上返回值保持一致;
SP(SPK)信号出现的当根K线上,BKVOL取值减少平仓手数的数值;
SP(SPK)信号的下根K线上,BKVOL的取值不变,与上根K线上返回值保持一致;
(2)模组运行中:
1、模组运行中过滤模型初始化上一信号选择买开,并且初始化进来多头持仓为M,BKVOL返回值增加M,选择上一信号为其他信号,BKVOL返回值为0
2、模组运行中非过滤模型初始化上一信号选择买开或者卖平,并且初始化进来多头持仓为M,BKVOL返回值增加M,选择上一信号为其他信号,BKVOL返回值为0
3、模组运行过程中BK(BPK)信号出现并且确认固定后,BKVOL的取值增加开仓手数的数值;SP(SPK)信号出现并且确认固定后,BKVOL的取值减少平仓手数的数值
4、
回测中:
如果资金不够开仓,开仓手数为0,BKVOL返回值为0。
页面盒子和模组加载中:
不受资金情况的限制,按照信号显示开仓手数。
例:
BKVOL=0&&C>O,BK
(1);
号执行方式选择K线走完确认信号下单或者出信号立即下单,K线走完复核(例如:
在模型中写入CHECKSIG_SEC(BK,'A',0,'D',0);)
BK(BPK)信号出现的当根K线上:
BK信号未确认时,BKVOL1取值不变,与上根K线上返回值保持一致;
BK信号确认后,BKVOL1的取值增加开仓手数的数值
SP(SPK)信号出现的当根K线上:
SP信号未确认时,BKVOL1取值不变,与上根K线上返回值保持一致;
SP信号确认后,BKVOL1的取值减少平仓手数的数值;
b.信号执行方式选择出信号立即下单,不进行复核(例如:
在模型中写入MULTSIG_SEC或MULTSIG_MIN;)
BK(BPK)信号出现的当根K线上,BKVOL1取值增加开仓手数的数值;
BK(BPK)信号的下根K线上,BKVOL1的取值不变,与上根K线上返回值保持一致;
SP(SPK)信号出现的当根K线上,BKVOL1取值减少平仓手数的数值;
SP(SPK)信号的下根K线上,BKVOL1的取值不变,与上根K线上返回值保持一致;
(2)模组运行中:
1、模组运行中过滤模型初始化上一信号选择买开,并且初始化进来多头持仓为M,BKVOL1返回值增加M,选择上一信号为其他信号,BKVOL1返回值为0
2、模组运行中非过滤模型初始化上一信号选择买开或者卖平,并且初始化进来多头持仓为M,BKVOL1返回值增加M,选择上一信号为其他信号,BKVOL1返回值为0
3、模组运行过程中BK(BPK)信号出现并且确认固定后,BKVOL1的取值增加开仓手数的数值;SP(SPK)信号出现并且确认固定后,BKVOL1的取值减少平仓手数的数值
4、
回测中:
如果回测参数中设置的资金不够开仓,开仓手数为0,BKVOL1返回值为0。
模组加载中:
如果模组子账户资金不够开仓,开仓手数为0,BKVOL1返回值为0。
例:
BKVOL1=0&&C>O,BK
(1);
DAYTRADE
DAYTRADE分钟周期上只用日内数据计算。
用法:
DAYTRADE模型中写入该函数,分钟周期上,只用日内数据进行计算,以避免行情跳空导致指标数据失真。
注:
1、该函数适用日线以下周期。
2、不同函数对当天数据的引用不同,使用时需注意函数用法,如:
MA(X,N)函数N的取值:
当天如果k线小于N根,则返回空值。
如果k线为大于等于N根,则取N。
HHV(X,N)函数N的取值:
当天如果k线小于N根,则返回实际根数,如果k线为大于等于N根,则取N。
例:
MA5^^MA(C,5);
MA10^^MA(C,10);
CROSSUP(MA5,MA10),BK;
MP格式。
3、不支持将函数定义为变量,即不支持下面的写法:
A:
DRAWBKBMP(COND,IMAGE);
例1:
DRAWBKBMP(CLOSE>OPEN,'壁纸20');
MP格式
3、图片路径需要添加.BMP后缀
4、不支持将函数定义为变量,即不支持下面的写法:
A:
DRAWBMP(COND,DATA,IMAGE);
5、输出的图片不能过大,否则会影响显示速度。
例1:
DRAWBMP(CLOSE>OPEN,H,'壁纸');
.+1*X(N-1)]/[N+(N-1)+(N-2)+...+1],X0表示本周期值,X1表示上一周期值?
注:
1、N包含当前k线。
2、当N为有效值,但当前的k线数不足N根,返回值为空值。
3、N为0或空值时返回值为空值。
4、N可以为变量
5、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
例1:
EMA2(H,5);
例2:
N:
=BARSLAST(DATE<>REF(DATE,1))+1;
EXIST(C>MA(C,5),N);
注:
1、N为空值,返回空值。
2、N不能为变量
3、不能与BKPRICE,BARSBK,SKPRICE,BARSSK一起使用
例1:
FILTER(CLOSE>OPEN,3);
.+m(3)*m(3)=[y
(1)-a-b*1]*[y
(1)-a-b*1]+...+[y(3)-a-b*3]*[y(3)-a-b*3]
5、对线性方程中的参数a,b求一阶偏导:
2*{[y
(1)-a-b*1]+...+[y(3)-a-b*3]}*(-1)=0
2*[y
(1)-a-b*1]*(-1)+...+[y(3)-a-b*3]*(-3)=0
6、联立以上两个公式,解出a,b的值:
a=(y
(1)+y
(2)+y(3))/3-b(i
(1)+i
(2)+i(3))/3
b=y
(1)*i
(1)+y
(2)*i
(2)+y(3)*i(3)-3*((y
(1)+y
(2)+y(3))/3)*((i
(1)+i
(2)+i(3))/3)
7、将a,b,i值带入1,求出y值:
以上公式用麦语言函数可以表示如下:
BB:
(3*C+2*REF(C,1)+REF(C,2)-(3*((1+2+3)/3)*MA(C,3)))/((SQUARE
(1)+SQUARE
(2)+SQUARE(3))-3*SQUARE((1+2+3)/3));
AA:
MA(C,3)-BB*(1+2+3)/3;
YY:
AA+BB*3;
例:
FORCAST(CLOSE,5);
号执行方式选择K线走完确认信号下单及K线走完进行信号复核(例如:
在模型中写入CHECKSIG_SEC(BK,'A',0,'D',0);)
BK信号未确认时,ISLASTBK返回值0;
BK信号确认后,ISLASTBK返回1
b.信号执行方式选择不进行信号复核(例如:
在模型中写入MULTSIG_SEC或MULTSIG_MIN;),BK信号当根ISLASTBK返回值为1
注:
模型中含有BPK条件,且上一个信号为平仓信号时,BPK会自动转化为BK信号发出,此时虽然满足BPK条件,但图中发出的信号为BK信号,所以ISLASTBK返回为1
例:
C>O,BK;
ISLASTBK&&C>BKPRICE,SP;
AUTOFILTER;
号执行方式选择K线走完确认信号下单及K线走完进行信号复核(例如:
在模型中写入CHECKSIG_SEC(SK,'A',0,'D',0);)
SK信号未确认时,ISLASTSK返回值0;
SK信号确认后,ISLASTSK返回1
b.信号执行方式选择不进行信号复核(例如:
在模型中写入MULTSIG_SEC或MULTSIG_MIN;),SK信号当根ISLASTSK返回值为1
注:
模型中含有SPK条件,且上一个信号为平仓信号时,SPK会自动转化为SK信号发出,此时虽然满足SPK条件,但图中发出的信号为SK信号,所以ISLASTSK返回为1
例:
CISLASTSK&&CAUTOFILTER;
号执行方式选择K线走完确认信号下单及K线走完进行信号复核(例如:
在模型中写入CHECKSIG_SEC(BP,'A',0,'D',0);)
BP信号未确认时,ISLASTBP返回值0;
BP信号确认后,ISLASTBP返回1
b.信号执行方式选择不进行信号复核(例如:
在模型中写入MULTSIG_SEC或MULTSIG_MIN;),BP信号当根ISLASTBP返回值为1
例:
C(2);
C>O,BP
(1);
ISLASTBP,BP
(1);
号执行方式选择K线走完确认信号下单及K线走完进行信号复核(例如:
在模型中写入CHECKSIG_SEC(SP,'A',0,'D',0);)
SP信号未确认时,ISLASTSP返回值0;
SP信号确认后,ISLASTSP返回1
b.信号执行方式选择不进行信号复核(例如:
在模型中写入MULTSIG_SEC或MULTSIG_MIN;),SP信号当根ISLASTSP返回值为1
例:
C>O,BK
(2);
C(1);
ISLASTSP,SP
(1);
号执行方式选择K线走完确认信号下单及K线走完进行信号复核(例如:
在模型中写入CHECKSIG_SEC(BPK,'A',0,'D',0);)
BPK信号未确认时,ISLASTBPK返回值0;
BPK信号确认后,ISLASTBPK返回1
b.信号执行方式选择不进行信号复核(例如:
在模型中写入MULTSIG_SEC或MULTSIG_MIN;),BPK信号当根ISLASTBPK返回值为1
注:
模型中含有BPK条件,且上一个信号为平仓信号时,BPK会自动转化为BK信号发出,此时虽然满足BPK条件,但图中发出的信号为BK信号,所以ISLASTBPK返回为0
例:
C>O,BPK;
ISLASTBPK&&CAUTOFILTER;
号执行方式选择K线走完确认信号下单及K线走完进行信号复核(例如:
在模型中写入CHECKSIG_SEC(SPK,'A',0,'D',0);)
SPK信号未确认时,ISLASTSPK返回值0;
SPK信号确认后,ISLASTSPK返回1
b.信号执行方式选择不进行信号复核(例如:
在模型中写入MULTSIG_SEC或MULTSIG_MIN;),SPK信号当根ISLASTSPK返回值为1
注:
模型中含有SPK条件,且上一个信号为平仓信号时,SPK会自动转化为SK信号发出,此时虽然满足SPK条件,但图中发出的信号为SK信号,所以ISLASTSPK返回为0
例:
CISLASTSPK&&C>O,BPK;
AUTOFILTER;
号执行方式选择K线走完确认信号下单及K线走完进行信号复核(例如:
在模型中写入CHECKSIG_SEC(CLOSEOUT,'A',0,'D',0);)
CLOSEOUT信号未确认时,ISLASTCLOSEOUT返回值0;
CLOSEOUT信号确认后,ISLASTCLOSEOUT返回1
b.信号执行方式选择不进行信号复核(例如:
在模型中写入MULTSIG_SEC或MULTSIG_MIN;),CLOSEOUT信号当根ISLASTCLOSEOUT返回值为1
例:
ISLASTCLOSEOUT&&C>O,BK
(1);
LASTSIG
LASTSIG判断最近一个信号
例:
AA:
LASTSIG=BK;LASTSIG的不同返回值代表的信号:
BK:
200;
SK:
201;
BP:
202;
SP:
203;
BPK:
204;
SPK:
205;
注意
本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
LINETHICK
添加线型粗细控制。
用法:
LINETHICK1LINETHICK2————LINETHICK7线型由细至粗。
注:
1、不支持将该函数直接定义为变量,即不支持下面的写法:
A:
LINETHICK1;
2、该函数可以和颜色函数一起使用,即支持下面的写法:
AA:
C,COLORBLUE,LINETHICK5;
例:
MA5:
MA(C,5),COLORRED,LINETHICK4;给5日均线中度加粗,颜色为红色。
LLV
LLV(X,N):
求X在N个周期内的最小值。
注:
1、N包含当前k线。
2、若N为0则从第一个有效值开始算起;
3、当N为有效值,但当前的k线数不足N根,按照实际的根数计算;
4、N为空值时,返回空值。
5、N可以是变量。
例1:
LL:
LLV(L,5);
例2:
LOG(0)返回空值。
LONGCROSS
LONGCROSS(A,B,N)表示A在N个周期内都小于B,本周期A从下向上穿越B
注:
1、当N为有效值,但当前的k线数不足N根,
2、N为空值的情况下,代表不成立,函数返回0
例1:
LONGCROSS(CLOSE,MA(CLOSE,10),20);
.P)在A到P中取最大值。
注:
1、支持2-16个数值进行比较。
2、A...P可以为数字也可以为变量。
例1:
MAX1(CLOSE,OPEN);