关键词不能为空

当前您在: 主页 > 英语 >

文华程序化交易函数

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-11 17:30
tags:

-

2021年2月11日发(作者:7752)


3


日线上穿


8


日线买进 开仓



3


日线下穿

8


日线卖出平仓



测试结果:



测试天数:




239



23



100000



测试周期数:



157



指令总数:





初始资金:





平均交易周期:


13




最终权益:



100050



盈利:



50.00



总收益率

< p>
(


盈利


/


初始资金


)



0.05%



扣除最大盈利后收益率:




扣除最大亏损后收益率:





可靠性


(


胜率


)




25.00%



期望收益


(


平均


R


乘数


)






总交易次数:




12






-0.87%


0.44%



成交额:




390950


0.02R



总手续费:



0



盈利次数比例:



25.00%



平均利润率:




标准离差率:




多头次数:







亏损次数比例:



66.67%




平均每次盈利:



4



标准离差:




0


359.44


0.00%


8626.5%



11





空头次数:





多头盈利次数:



3




盈利次数:





总盈利:




3



空头盈利次数:



0




亏损次数:



8


-1715(-1.71%)


-215(-0.21%)


-385(-0.38%)


1765(1.77%)



总亏损:





592(0.59%)


915(0.92%)



平均盈利率:




最大盈利额:




平均亏损率:




最大亏损额:




平均盈利周期:



13




最大盈利周期:



16




最大连续盈利次数:



2



平均亏损周期:



3



最大亏损周期:



5




最大连续亏损次数:



6



最大连续盈利:



915(0.92%)




空仓总时间:




73



46.50%



最大连续亏损:



-1490(-1.48%)



最长空仓时间:



12



空仓时间


/


总时间:



自编公式支持的函数






1.


引用


数据



AVPRICE


引用均价


(


在盘后对于国内三个期货交易所指结算



)


SETTLE


引用结算价


(


只有在日线周期盘后才能引用当日的


结算价


)


CLOSE


HIGH


LOW


OPEN


OPI


REF(X,N)


引用收盘价


(


在盘中指最新价


)


,也可简写为


C


引用最高价,也可简写为


H




引用最低价,也可简写为


L




引用开盘价,也可简写为


O




引用持仓量



引用

X



N


个周期前的值




:REF(CLOSE,5);


表示引用当前周期前第


5


个周期


的收盘价



REFX(X,N)


引 用


N


个周期后的数据。(


N

< p>
为大于等于


1


的整数)


『 未来函数』



例:


REFX(CLOS E,5);


表示引用自当前周期后第


5



周期的收盘价



VOL


GETPRICE(N)


引用成交量,也可简写为


V




根据文华码取出某一品种的最新价。



例:


GETPRICE(1209);


返回文华码为

< p>
1209


的合约品


种的最新价。

< br>


PARAM


[


参数名称,最 小值,最大值,缺省值


]


在源码中定义参数。



例:


PARAM[N,1,100,12]


MAN:MA(CLOSE,N);


表示参数为


N


,最小值为


1


,最大值为


100


,缺省值


12.


#IMPORT[CODE,PERIOD,FORMULA]AS VAR;


CODE


文华码


PERIOD


周期


FORMULA


引用模型名



VAR


定义变量名



例子:



#IMPORT [1205,MIN5,TEST] AS M1005


意思是引用

< br>[


豆粕


1005]


五分钟图上指标


[]


的数据



使用的方法:



如当前存在一个指标



//


CL:=CLOSE;


#IMPORT [CODE,PERIOD,FORMULA] AS VAR



Mytrader2009



Myadvisor

< p>
(赢智)支


持)



OP:=OPEN;


我想在新建的指标


TEST1


中引用


[


豆粕


1005]


五分


钟周期上指标


[]


的数据



可以如下编写


TEST1


指标



//


#IMPORT [1205,MIN5,TEST] AS VARTEST


DD:;


DF:;


引用的约束



1.


只能引用


.FML


文件



2.


只能引用如下周期


MIN1 MIN3 MIN5 MIN10 MIN15


MIN30 HOUR1 HOUR3 HOUR8 DAY WEEK MONTH


3.


只能短周期 引用长周期比如不能日线周期上加载


引用了分钟数据的指标。



4.


被引用的指标中不能存在引用


< /p>


5.


如果不写文华码,默认引用当前合约




2.


金融统计



BACKSET(X,N)



X


条件成立


,


则将当前位置到


N


周期前的数值设为


1


。『未 来函数』



例:


BACKSET(CL OSE>OPEN,3);


表示当


K


线 收阳时,自当前位置到


3


周期前的数


值 设为


1


BARSLAST(X)


COUNT(X,N)


求上一次条件成立到当前的周期数。



表示统计在


N


周期内满足


X

< p>
条件的周期数。如果


N



0


则表示从已申请到的数


据的第一天开始算起。



例:


WR:=-100*(HHV(HIGH,N) -CLOSE)/(HHV(HIGH,N)-LLV(LOW,N));


COUNT (WR>80,5);


表示统计在


5


个 周期内满足


WR>80


的次数



DMA(X,A)


返回


X

< p>
的动态移动平均,其中


A


为常数,并且必须介于< /p>


0



1


之间。< /p>



计算方法:


DMA(N)=DMA(N -1)*(1-A)+X(N)*A


其中


DMA(N-1)< /p>


为第


(N-1)


天的

DMA


值。



EMA(X,N)


表示求


X



N


周期内的平滑移动平均。(指数加权)



计算方法:


EMA(X,N)=[2*X+(N-1)*EMA(X,(N-1))] /(N+1)


其中


EMA(X,(N-1))




(N-1)


天的


EMA




EMA2(X,N)


表示求


X



N


周期内的加权平均。(线性加权)



计算方法:


EMA2(X,N)=(N*X 0+(N-1)*X1+(N-2)*X2+...+1*XN)/(N+(N-1)+(N-2)+...+1 ),X0


表示本周期值,


X1


表示上一 周期值


...


HHV(X,N)


得 到


X



N


周期 内的最高值,


如果


N



0



则从本地数据的第一个有效周期开始


算起。



例:


HHV(HI GH,13);



13


个周期内的最高 价的最大值。



HHVBARS(X,N)


得到


X



N

< br>周期内的最高值位置到当前的周期数。如果


N=0


,则从 本地数据的


第一个有效周期开始算起。



例:


HHVBARS(VOL,0);


求历史成交量最大的周期到当前的周期数



LLV(X,N)


得到


X

< p>


N


周期内的最小值,如果


N=0


,则从本地数据的第一个有效周期开始


算起。



例:


LLV(LOW,25);


表示求


25


个周期内最低价的最小值



LLVBARS(X,N)


得到

< br>X



N


周期内的最小值的位置到 当前的周期数。如果


N=0


则从本地数据的

第一个有效周期开始算起。



例:


LLVBARS(VOL,0);


求历史成交量最小的周期到当前的周期数



MA(X,N)



X



N


周期内的简单移动平均。



计算方法:


MA=(A1+A2+A3+A4+A5)/5



A



5


个周期内的简单移动平均



ZIGZAG(X,P,N)


之字转向

,



X


变化量超过


P


时转向


,



N



1,P


为百分比数


;



N


< p>
0,P


为价位


差值绝对值。『未来函数』



例:


ZIGZAG(HIGH,10,1);


表示最高价的


10%


的之字转向



ZIGZAG(MA(HIGH,34),100,0);


表示


34


个周期内最高价均线的


100


个价位的之字


转向



PEAK(X,P,M,N)


取得


ZIGZAG



M


个波峰的值。其中< /p>


X


为数据,


P


为 转折值(如果


N



1

< br>,这个


值为百分比数,否则为价位差值绝对值),


M


为大于等于


1


的整数。『未来函

< p>
数』



例:


PEAK(H IGH,10,1,1);


表示最高价的


10%


的之字转向的上一个波峰的数值


;


PEAK(MA (HIGH,34),100,1,0);


表示


34

< p>
个周期内最高价均线的


100


个价位的之字


转向的上一个波峰的数值



PEAKBARS(X,P,M,N)


取得

< br>ZIGZAG



M


个波峰到当前 周期的周期数。其中


X


为数据,


P


为转折值(如



N



1



这个值为百分比数,

< p>
否则为价位差值绝对值)



M

为大于等于


1


的整


数。『未来函数 』



例:


PEAKBARS(HIGH ,10,1,1);


表示最高价的


10%


的之字转向的上一个波峰到当


前的周期数



PEAKBARS(MA(HIGH,34),100,1,0);


表示


34


个周期内最高价均线的


100

< p>
个价位的


之字转向的上一个波峰到当前的周期数



TROUGH(X,P,M,N)


取得


ZIGZAG



M


个波谷的值。其中


X


为数据,


P


为转折值(如果


N



1


,这个


值为百分比数,否则为价位差值绝对值),


M< /p>


为大于等于


1


的整数。『未来函


数』



例:


TROUG H(LOW,10,1,1);


表示最低价的


10%

< p>
的之字转向的上一个波谷的数值



TROUGH


(MA(LOW,34),100,1,0);


表示

< p>
34


个周期内最低价均线的


100


个价位的之


字转向的上一个波谷的数值



TROUGHBARS(X,P,M,N)


取得


ZIGZAG



M


个波谷到 当前周期的周期数。其中


X


为数据,


P


为转折值(如



N


1



这个值为百分比数,


否则为价位差值绝对值)



M


为大于等于


1


的整


数。『未来 函数』



TROUGHBARS(LOW,10,1,1);


表示最低价的


10%


的之字转向的上一 个波谷到当前


的周期数



TROUG HBARS(MA(LOW,34),100,1,0);


表示


34


个周期内最低价均线的


100


个价 位


的之字转向的上一个波谷到当前的周期数



SAR(N,Step,Max)


得到抛物转向值。


N


为计算周期


,Step


为步长


,Max


为极值。(系统函数,计算

< br>步骤后台自动完成)



例:


SA R(17,0.03,0.3);


表示计算


17


个周期抛物转向,


步长为


3%



极限值为


30%


SMA(X,N,M)


得到


X



N


个周期内的移动平均,

< br>M


为权重(


M


为常数)。



计算方法:


SMA(N)=SMA(N-1 )*(N-M)/N+X(N)*M/N


SUM(X,N)


得到


X



N


周期内的总和,如果


N=0


,则从第一个有效周期开始算起。< /p>




: SUM(VOL,10);


表示统计


10


周期内的成交量总和



SUMBARS(X,A)


TRMA(X,N)


TSMA(X,N)

< br>得到


X


向前累加直到大于


A


时的周期数。




X



N


周期内的三角移动平均。




X



N


周期内的时间序列移动平均。



计算方法:


TSMA(X,N)= FORCAST(X,N)+SLOPE(X,N)



3.


数理统计



AVEDEV(X,N)


DEVSQ(X,N)


FORCAST(X,N)



X



N


周期内的平均绝对偏差



数据偏差平方和。



得到< /p>


X



N


周期线性 回归预测值。




:FORCAST( CLOSE,5);


表示求


5


周期线性 回归预测



SLOPE(X,N)


得 到


X



N


周期 内的线性回归的斜率




:SLOPE (CLOSE,5);


表示求


5


周期线 性回归线的斜率



STD(X,N)


STDP(X,N)


VAR(X,N)


VARP(X,N)


得到


X



N


周期内的标准差



得到


X



N< /p>


周期内的总体标准差



得到


X



N


周期内的样本方差< /p>



得到


X



N


周期内的总体样本方差



设一个数列,数列中数据的总个数为


N


,以今天(


2005-10-14


)五天


内的


A0605


收盘价为例,


N

就为


5


。数列的内容为:{


276 6



2805



2814



2886



2885


}。



1


、算术平均值


MA(CLOSE,5)


:数据总 和除以总个数


N



< br>(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)< /p>


:将偏差的平方相加。


(-65.2)2+


(-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2=11130.80


5


< br>总体样本方差


VARP(X,N)


将偏差的平方相加,


总和除以总个数


N


用公式可以这样算:


(-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+


(53.8)2/5=2226.16


6

< br>、样本方差


VAR(X,N)


:是总体方差的

< p>
N/(N-1)


倍。



2226.16*5/(5-1)=2782.70


估算样本 方差,总比总体样本方差大一


点,当


N


够大时,两者趋于相等。



7


、总体标 准差


STDP(X,N)


:方差的开方。


[(-65.2)2+ (-26.2)2+


(-17.2)2+ (54.8)2+ (53.8)2/5]?=47.18


8


、标准差


STD(X,N)


:估算样本方差的开方。



[2226.16*5/(5-1)]?=52.75


同样,估算标准差也比总体标准差大一


点,当


N


够大时,两者趋于相等。




4.


逻辑判断



BETWEEN(A,B,C)


判断条件“A


位于


B



C

< br>之间”是否成立,如果条件成立则返回


1


(yes),


否则返回


0 (no)




例:


BETWEEN(CLOSE,MA5,MA40); < /p>


表示收盘价介于


5


日均线与


40


日均线之间。



CROSS(X,Y)


表示


X


上穿


Y




例:


CROSS(CLOSE,MA(CLOSE,5));

< p>
表示收盘线从下方向上穿过


5


< br>均线



EXIST(COND,N)

< br>判断


N


个周期内是否有满足条件


COND


的情况发生。



例:


EXIST(CLOSE>REF(HIGH,1),10);


表示


10


个周期中是否存在收


盘价大于前一个周 期的最高价



EVERY(COND,N)

< br>判断过去


N


个周期内是否一直满足条件

< br>COND




例:


EVERY(CLOSE>OPEN,5);


表示


5


个周期内一直是阳线



LAST(COND,N1,N2)


判断过去


N1



N2


周期内是否一直满 足条件


COND



< br>例:


LAST(CLOSE>OPEN,10,5);


表 示从过去第


10


个周期到第


5


个周


期内一直是阳线



LONGCROSS(A,B,N)


如果

A


在前


N


个周期内都小于


B


,本周期上穿


B


,则 返回


1


。否则


返回

0




例:


LONGCROSS(CLOSE,MA(CLOSE,10),20);


表示收盘线 在


10


日均线


之下持续


20


周期后从下向上穿过


10


日均线



NOFILTER


交易模型买卖指令信号过滤函数。(仅适用于交易模型的过滤)



交易模型公式后加“NOFILTER;”是指不需要过滤,出现任何交易


指令都会执行。公式后不加“NOFILTER;”是指当连续出现同方向


的 交易指令时,


系统只显示出第一个交易指令,


其他交易指令自动


被过滤。



ISDOWN


ISEQUAL


ISUP


ISLASTBAR


VALUEWHEN(COND,DATA)


判断该周期是否收阴。



判断该周期是否平盘。



判断该周期是否收阳。



判断当前周期 是否为最后一根


K


线。



当条件


COND


满足时,


取 当时的


DATA


的值,


否则取得前面一 个满足


条件


COND


的值。

< p>


例:


VALUEWHEN(HIGH>REF( HIGH,5),HIGH);


表示当前最高价大于前


五个周期 最高价的最大值时返回当前最高价。




5.


数学运算



ABS(X)



X


的绝对值



例:


ABS(SAR(17,0.03,0.3));


返回抛物转向


SAR(17,0.03,0.3)


的绝对值。



ACOS(X)


ASIN(X)


ATAN(X)


COS(X)


EXP(X)


CEILING(X)


FLOOR(X)

< br>求


X


的反余弦值




X


的反正弦值




X


的反正切值



返回


X


的余弦值



返回


e



X< /p>


次幂



向上舍入,返回沿


X


数值增大方向最接近的整数。


向下舍入,返回沿


X


数值减小方向最接近的整数。


-


-


-


-


-


-


-


-



本文更新与2021-02-11 17:30,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/637825.html

文华程序化交易函数的相关文章