文华财经WH82策略函数列表Word格式.docx
《文华财经WH82策略函数列表Word格式.docx》由会员分享,可在线阅读,更多相关《文华财经WH82策略函数列表Word格式.docx(157页珍藏版)》请在冰豆网上搜索。
2、当前的K线数不足N根时,函数返回空值。
3、N为0或空值的情况下,函数返回空值。
算法:
ADMA(X,N,P,Q)=REF(EMA(X,N),1)+CONSTANT*(X-REF(EMA(X,N),1));
CONSTANT是平滑系数,用麦语言函数可以表示为:
CONSTANT:
=SQUARE((ABS((CLOSE-REF(CLOSE,N))/(SUM(ABS((CLOSE-REF(CLOSE,1))),N))))*(2/(P+1)-2/(Q+1))+2/(Q+1));
算法举例:
计算C在9周期的,快线频率参数为2,慢线频率参数为30的考夫曼均值。
1、确定价格方向:
价格方向表示整个时间段中的净价格变化。
比如,使用N天的间隔(或N小时),这里N为9
2、计算方向移动:
DIRECTION:
=ABS(CLOSE-REF(CLOSE,9));
3、计算波动性:
波动性是市场噪音的总数量,计算了时间段内价格变化的总和。
VOLATILITY:
=SUM(ABS((CLOSE-REF(CLOSE,1))),9);
4、确定效率系数:
ER:
=DIRECTION/VOLATILITY;
5、计算平滑系数:
FASTSC:
=2/(2+1);
SLOWSC:
=2/(30+1);
SMOOTH:
=ER*(FASTSC-SLOWSC)+SLOWSC;
=SQUARE(SMOOTH);
6、计算平滑系数为CONSTANT的自适应均线:
AMACLOSE:
REF(EMA(C,9),1)+CONSTANT*(C-REF(EMA(C,9),1));
ALIGN
设置文字对齐方式(左中右)。
DRAWTEXT(COND,PRICE,TEXT),ALIGNX;
COND条件满足时,在PRICE的位置,标注TEXT,文字按照ALIGNX写入的方式对齐。
ALIGN0,ALIGN1,ALIGN2,分别表示左对齐,居中对齐,右对齐。
例:
DRAWTEXT(C>
O,H,'
涨'
),ALIGN1,VALIGN1,FONTSIZE20,COLORGREEN;
//在阳线的最高价标注文字“涨”,文字居中对齐,字体大小为20,颜色为绿色。
ASIN
ASIN(X):
返回X的反正弦值。
ASIN(-1);
//求-1的反正弦值;
ASIN
(1);
//求1的反正弦值;
ASK1
ASK1取得TICK图该笔TICK的卖一价。
1、该函数必须在TICK图中使用,在K线图上返回空值。
2、该函数需要有五档行情授权才能取到有效值,否则返回空值。
AA:
ASK1;
//加载到有五档授权的TICK图中,定义AA为该笔TICK的卖一价;
ASK2
ASK2取得TICK图该笔TICK的卖二价。
ASK2;
//加载到有五档授权的TICK图中,定义AA为该笔TICK的卖二价;
ASK3
ASK3取得TICK图该笔TICK的卖三价。
ASK3;
//加载到有五档授权的TICK图中,定义AA为该笔TICK的卖三价;
ASK4
ASK4取得TICK图该笔TICK的卖四价。
ASK4;
//加载到有五档授权的TICK图中,定义AA为该笔TICK的卖四价;
ASK5
ASK5取得TICK图该笔TICK的卖五价。
ASK5;
//加载到有五档授权的TICK图中,定义AA为该笔TICK的卖五价;
ASK1VOL
ASK1VOL取得TICK图该笔TICK的卖一量。
VV:
ASK1VOL;
//加载到有五档授权的TICK图中,定义VV为该笔TICK的卖一量;
ASK2VOL
ASK2VOL取得TICK图该笔TICK的卖二量。
ASK2VOL;
//加载到有五档授权的TICK图中,定义VV为该笔TICK的卖二量;
ASK3VOL
ASK3VOL取得TICK图该笔TICK的卖三量。
ASK3VOL;
//加载到有五档授权的TICK图中,定义VV为该笔TICK的卖三量;
ASK4VOL
ASK4VOL取得TICK图该笔TICK的卖四量。
ASK4VOL;
//加载到有五档授权的TICK图中,定义VV为该笔TICK的卖四量;
ASK5VOL
ASK5VOL取得TICK图该笔TICK的卖五量。
ASK5VOL;
//加载到有五档授权的TICK图中,定义VV为该笔TICK的卖五量;
ASKBIGCOUNT
ASKBIGCOUNT取得TICK图所定义数据区主动卖大单次数的和。
1、使用该函数前,必须先调用DEF_TICKDATA函数定义TICK数据区。
2、使用该函数前,必须使用SETBIGVOL函数定义大单阀值,否则该函数返回0。
3、该函数必须在TICK图中使用,在K线图上返回空值。
4、该函数需要有五档行情授权才能取到有效值,否则返回空值。
DEF_TICKDATA(0,5);
//调用五秒的TICK数据
SETBIGVOL(10);
//设置大单阀值为10手
ASKBIGCOUNT;
//加载到有五档授权的TICK图中,定义VV为五秒内(包含当笔TICK)所有TICK的主动卖的大单次数的和
ASKBIGTOTVOL
ASKBIGTOTVOL取得TICK图所定义数据区主动卖大单成交量的和。
ASKBIGTOTVOL;
//加载到有五档授权的TICK图中,定义VV为五秒内(包含当笔TICK)所有TICK的主动卖大单成交量的和
ASKVOL
ASKVOL取得TICK图所定义数据区主动卖成交量的和。
2、该函数必须在TICK图中使用,在K线图上返回空值。
3、该函数需要有五档行情授权才能取到有效值,否则返回空值。
ASKVOL;
//加载到有五档授权的TICK图中,定义VV为五秒内(包含当笔TICK)所有TICK的主动卖成交量的和
ATAN
ATAN(X):
返回X的反正切值。
X的取值为R(实数集)
ATAN(-1.75);
//求-1.75的反正切值;
ATAN(1.75);
//求1.75的反正切值;
AUTOFILTER
AUTOFILTER启用信号过滤机制。
模型中含有AUTOFILTER函数,则启用信号过滤机制。
过滤模型的过滤规则:
1、连续的同方向指令只有第一个有效,其他的将被过滤;
2、交易指令必须先开仓后平仓,一开一平配对出现:
出现BK指令,下一个指令只允许出现SP指令;
出现SK指令,下一个指令只允许出现BP指令;
出现SP/BP/CLOSEOUT等平仓指令,下一个可以是BK/SK/SPK/BPK指令任一个;
反手指令SPK和BPK交叉出现。
CLOSE>
OPEN,BK;
CLOSE<
open,sp;
AUTOFILTER;
//启用信号过滤机制<
/open,sp;
AVEDEV
AVEDEV(X,N):
返回X在N周期内的平均绝对偏差。
1、N包含当前k线。
2、N为有效值,但当前的k线数不足N根,该函数返回空值;
3、N为0时,该函数返回空值;
4、N为空值,该函数返回空值;
5、N不能为变量
计算AVEDEV(C,3);
在最近一根K线上的值。
用麦语言函数可以表示如下:
(ABS(C-(C+REF(C,1)+REF(C,2))/3)+ABS(REF(C,1)-(C+REF(C,1)+REF(C,2))/3)+ABS(REF(C,2)-(C+REF(C,1)+REF(C,2))/3))/3;
AVEDEV(C,5);
//返回收盘价在5周期内的平均绝对偏差。
//表示5个周期内每个周期的收盘价与5周期收盘价的平均值的差的绝对值的平均值,判断收盘价与其均值的偏离程度
AVPRICE
AVPRICE取得K线图的均价。
1、表示单根K线内的均价;
2、日线周期上收盘后与SETTLE函数一样取得当日的结算价。
A:
AVPRICE;
//定义变量A为均价线;
MA5:
MA(AVPRICE,5);
//定义五个周期均价的平均值;
C>
//价格大于五个周期均价的平均值则返回1,否则返回0。
BACKGROUNDSTYLE
BACKGROUNDSTYLE函数设置背景的样式。
BACKGROUNDSTYLE(i)设置背景的样式。
i=0或1或2。
1.
0是保持本身坐标不变。
1是将坐标固定在0到100之间。
2是将坐标以0为中轴的坐标系。
2、参数i的选择根据想要显示的指标数据范围而定。
3、不支持将该函数直接定义为变量,即不支持下面的写法:
BACKGROUNDSTYLE(i);
MA(C,5);
MA10:
MA(C,10);
BACKGROUNDSTYLE(0);
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。
LLV(L,BARPOS);
//求本地已有数据的最小值。
IFELSE(BARPOS=1,H,0);
//当前K线是本机已有的第一根K线取最高值,否则取0。
BARSLAST
BARSLAST(COND):
上一次条件COND成立到当前的周期数
1、条件成立的当根k线上BARSLAST(COND)的返回值为0
2、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
BARSLAST(OPEN>
CLOSE);
//上一根阴线到现在的周期数。
N:
=BARSLAST(DATE<
>
REF(DATE,1))+1;
//分钟周期,当日k线数。
//由于条件成立的当根k线上BARSLAST(COND)的返回值为0,所以“+1”才是当日k线根数。
BARSLASTCOUNT
BARSLASTCOUNT(COND)从当前周期向前计算,统计连续满足条件的周期数。
1、返回值为从当前周期计算COND连续不为0的周期数
2、条件第一次成立的当根k线上BARSLASTCOUNT(COND)的返回值为1
BARSLASTCOUNT(CLOSE>
OPEN);
//计算当根K线在内连续为阳线的周期数
BARSSINCE
BARSSINCE(COND)第一个条件成立到当前的周期数。
1、返回值为COND第一次成立到当前的周期数
2、条件第一次成立的当根k线上BARSSINCE(COND)的返回值为0
BARSSINCE(CLOSE>
//统计第一次满足阳线这个条件的K线到现在的周期数
BARSBK
BARSBK上一次买开信号位置
BARSBK返回上一次买开仓的K线距离当前K线的周期数(不包含出现BK信号的那根K线)
取包含BK信号出现的那根K线到当前K线的周期数,则需要在此函数后+1,即BARSBK+1;
由于发出BK信号的当根k线BARSBK返回空值,则BARSBK+1在发出BK信号当根k线
返回空值。
1、若当前K线之前无BK信号,则函数返回值为空值
2、BK信号固定后BARSBK返回为空值。
(1)设置信号执行方式为出信号立即下单,不复核(例如:
在模型中写入MULTSIG_SEC或MULTSIG_MIN;
)
a.历史信号计算中,出现BK信号的当根K线,BARSBK返回空值
b.加载运行过程中,信号固定后BARSBK返回空值
(2)设置信号执行方式为K线走完复核(例如:
在模型中写入CHECKSIG_SEC(BK,'
A'
N,'
D'
0);
BARSBK返回值为上一个BK信号距离当前的K线根数(包含当前K线)
1、BARSBK>
10,SP;
//上一次买开仓(不包含出现买开信号的那根K线)距离当前K线的周期数大于10,卖平;
2、HHV(H,BARSBK+1);
//上一次买开仓(包含开仓信号出现的当根k线)到当前的最高价的最大值。
当根K线出现BK信号,AA返回为空值,需要返回当根K线上最高价,模型需要修改为:
IFELSE(BARSBK>
=1,HHV(H,BARSBK+1),H);
(1)当根K线出现BK信号,BARSBK返回为空值,不满足BARSBK>
=1的条件,则取值为当根K线的最高价H
(2)发出BK信号之后K线BARSBK返回买开仓的K线距离当前K线的周期数,满足BARSBK>
=1的条件,则取值为HHV(H,BARSBK+1),即买开仓(包含开仓信号出现的当根k
线)到当前的最高价的最大值。
修改后如果平仓条件中用到了AA的值,当根K线满足了平仓条件,可以出现平仓信号
3、AA:
=1,REF(C,BARSBK),C);
//取最近一次买开仓K线的收盘价
(1)发出BK信号的当根k线BARSBK返回空值,则当根K线不满足BARSBK>
=1的条件,AA返回当根k线的收盘价;
(2)发出BK信号之后的k线BARSBK返回买开仓的K线距离当前K线的周期数,则AA返回REF(C,BARSBK),即开仓k线的收盘价;
(3)例:
1、2、3三根k线,1K线为开仓信号的当根k线,则返回当根k线的收盘价,2、3K线AA返回值为1K线的收盘价。
BARSSK
BARSSK上一次卖开信号位置
BARSSK返回上一次卖开仓的K线距离当前K线的周期数(不包含出现SK信号的那根K线)
取包含SK信号出现的那根K线到当前K线的周期数,需要在此函数后+1,即BARSSK+1;
由于发出SK信号的当根k线BARSSK返回空值,则BARSSK+1在发出SK信号当根k线返
回空值。
1、若当前K线之前无SK信号,则函数返回值为空值
2、SK信号固定后BARSSK返回为空值。
a.历史信号计算中,出现SK信号当根K线,BARSSK返回空值
b.加载运行过程中,SK信号当根K线,信号固定后BARSSK返回空值
在模型中写入CHECKSIG_SEC(SK,'
BARSSK返回值为上一个SK信号距离当前的K线根数(包含当前K线)
1、BARSSK>
10,BP;
//上一次卖开仓(不包含出现买开信号的那根K线)距离当前K线的周期数大于10,买平;
2、LLV(L,BARSSK+1);
//上一次卖开仓(包含开仓信号出现的当根k线)到当前的最低价的最小值。
当根K线出现SK信号,AA返回为空值,如果需要返回当根K线上最低价,模型需要修改为:
IFELSE(BARSSK>
=1,LLV(L,BARSSK+1),L);
(1)当根K线出现SK信号,BARSSK返回为空值,不满足BARSSK>
=1的条件,则取值为当根K线的最低价L
(2)发出SK信号之后K线SARSBK返回卖开仓的K线距离当前K线的周期数,满足BARSSK>
=1的条件,则取值为LLV(L,BARSSK+1),即卖开仓(包含开仓信号出现的当根k
线)到当前的最低价的最小值。
修改后如果平仓条件中用到了AA的值,当根K线满足了平仓条件,可以出现平仓信号。
=1,REF(C,BARSSK),C);
//取最近一次卖开仓K线的收盘价
(1)发出SK信号的当根k线BARSSK返回空值,则当根K线不满足BARSSK>
(2)发出SK信号之后的k线BARSSK返回卖开仓的K线距离当前K线的周期数,则AA返回REF(C,BARSSK),即开仓k线的收盘价;
1、2、3三根k线,1K线为开仓信号的当根k线,则返回当根k线的收盘价,2、3K线AA返回值为1K线的收盘价。
BARSBP
BARSBP上一次买平信号位置
BARSBP返回上一次买平仓的K线距离当前K线的周期数(不包含出现BP信号的那根K线)
取包含BP信号出现的那根K线到当前K线的周期数,则需要在此函数后+1,即BARSBP+1。
由于发出BP信号的当根k线BARSBP返回空值,则BARSBP+1在发出BP信号当根k线
1、若当前K线之前无BP信号,则函数返回值为空值
2、BP信号固定后BARSBP返回为空值。
a.历史信号计算中,出现BP信号当根K线,BARSBP返回空值
b.加载运行过程中,BP信号当根K线,信号固定后BARSBP返回空值
在模型中写入CHECKSIG_SEC(BP,'
BARSBP返回值为上一个BP信号距离当前的K线根数(包含当前K线)
1、BARSBP>
10,BK;
//上一次买平仓(不包含出现买平信号的那根K线)距离当前K线的周期数大于10,买开。
2、AA:
HHV(H,BARSBP+1);
//上一次买平仓(包含平仓信号出现的当根k线)到当前的最高价的最大值。
当根K线出现BP信号,AA返回为空值,如果需要返回当根K线上最高价,模型需要修改为:
IFELSE(BARSBP>
=1,HHV(H,BARSBP+1),H);
(1)当根K线出现BP信号,BARSBP返回为空值,不满足BARSBP>
=1的条件,则取值为当根K线的最高价H
(2)发出BP信号之后K线BARSBP返回买平仓的K线距离当前K线的周期数,满足BARSBP>
=1的条件,则取值为HHV(H,BARSBP+1),即买平仓(包含平仓信号出现的当根k
=1,REF(C,BARSBP),C);
//取最近一次买平仓K线的收盘价
(1)发出BP信号的当根k线BARSBP返回空值,则当根K线不满足BARSBP>
(2)发出BP信号之后的k线BARSBP返回买平仓的K线距离当前K线的周期数,则AA返回REF(C,BARSBP),即平仓k线的收盘价;
1、2、3三根k线,1K线为平仓信号的当根k线,则返回当根k线的收盘价,2、3K线AA返回值为1K线的收盘价。
BARSSP
BARSSP上一次卖平信号位置
BARSSP返回上一次卖平仓的K线距离当前K线的周期数(不包含出现SP信号的那根K线)
取包含SP信号出现的那根K线到当前K线的周期数,则需要在此函数后+1,即BARSSP+1。
由于发出SP信号的当根k线BARSSP返回空值,则BARSSP+1在发出SP信号当根k线
1、若当前K线之前无SP信号,则函数返回值为空值
2、SP信号固定后BARSSP返回为空值。
a.历史信号计算中,出现SP信号当根K线,BARSSP返回空值
b.加载运行过程中,SP信号当根K线,信号固定后BARSSP返回空值
在模型中写入CHECKSIG_SEC(SP,'
BARSSP返回值为上一个SP信号距离当前的K线根数(包含当前K线)
1、BARSSP>
//上一次卖平仓(不包含出现卖平信号的那根K线)距离当前K线的周期数大于10,买开。
HHV(H,BARSSP+1);
//上一次,卖平仓(包含平仓信号出现的当根k线)到当前的最高价的最大值。
当根K线出现SP信号,AA返回为空值,如果需要返回当根