文华程序化交易函数
- 格式:doc
- 大小:170.00 KB
- 文档页数:19
3日线上穿8日线买进开仓 3日线下穿8日线卖出平仓 测试结果: 测试天数: 239 测试周期数: 157 指令总数: 23 平均交易周期:13 初始资金: 100000 最终权益: 100050 总收益率(盈利/初始资金): 0.05% 盈利: 50.00 扣除最大盈利后收益率: -0.87% 扣除最大亏损后收益率: 0.44%
可靠性(胜率): 25.00% 成交额: 390950 期望收益(平均R乘数): 0.02R 总手续费: 0
总交易次数: 12 盈利次数比例: 25.00% 亏损次数比例: 66.67% 平均利润率: 0.00% 平均每次盈利: 4 标准离差率: 8626.5% 标准离差: 359.44 多头次数: 11 空头次数: 0 多头盈利次数: 3 空头盈利次数: 0
盈利次数: 3 亏损次数: 8 总盈利: 1765(1.77%) 总亏损: -1715(-1.71%) 平均盈利率: 592(0.59%) 平均亏损率: -215(-0.21%) 最大盈利额: 915(0.92%) 最大亏损额: -385(-0.38%) 平均盈利周期: 13 平均亏损周期: 3 最大盈利周期: 16 最大亏损周期: 5 最大连续盈利次数: 2 最大连续亏损次数: 6 最大连续盈利: 915(0.92%) 最大连续亏损: -1490(-1.48%)
空仓总时间: 73 最长空仓时间: 12 空仓时间/总时间: 46.50% 1.引用数据
AVPRICE 引用均价(在盘后对于国内三个期货交易所指结算价)
SETTLE 引用结算价(只有在日线周期盘后才能引用当日的结算价)
CLOSE 引用收盘价(在盘中指最新价),也可简写为 C HIGH 引用最高价,也可简写为 H 。 LOW 引用最低价,也可简写为L 。 OPEN 引用开盘价,也可简写为O 。 OPI 引用持仓量 REF(X,N) 引用X在N个周期前的值 例:REF(CLOSE,5);表示引用当前周期前第5个周期的收盘价
REFX(X,N) 引用N个周期后的数据。(N为大于等于1的整数)『未来函数』 例:REFX(CLOSE,5);表示引用自当前周期后第5个周期的收盘价
VOL 引用成交量,也可简写为V 。 GETPRICE(N) 根据文华码取出某一品种的最新价。 例:GETPRICE(1209);返回文华码为1209的合约品种的最新价。
PARAM [参数名称,最小值,最大值,缺省值] 在源码中定义参数。 例:PARAM[N,1,100,12] MAN:MA(CLOSE,N);
自编公式支持的函数 表示参数为N,最小值为1,最大值为100,缺省值为12.
#IMPORT [CODE,PERIOD,FORMULA] AS VAR(Mytrader2009和Myadvisor(赢智)支持)
#IMPORT[CODE,PERIOD,FORMULA]AS VAR; CODE 文华码PERIOD 周期FORMULA 引用模型名 VAR 定义变量名
例子: #IMPORT [1205,MIN5,TEST] AS M1005 意思是引用[豆粕1005] 五分钟图上指标[TEST.FML] 的数据 使用的方法: 如当前存在一个指标TEST.FML //TEST.FML CL:=CLOSE; OP:=OPEN;
我想在新建的指标 TEST1中引用[豆粕1005] 五分钟周期上指标[TEST.FML] 的数据 可以如下编写TEST1指标 //TEST1.FML #IMPORT [1205,MIN5,TEST] AS VARTEST DD:VARTEST.CL; DF:VARTEST.OP;
引用的约束 1.只能引用 .FML文件 2.只能引用如下周期 MIN1 MIN3 MIN5 MIN10 MIN15 MIN30 HOUR1 HOUR3 HOUR8 DAY WEEK MONTH 3.只能短周期引用长周期比如不能日线周期上加载引用了分钟数据的指标。 4.被引用的指标中不能存在引用 5.如果不写文华码,默认引用当前合约
2.金融统计 BACKSET(X,N) 若X条件成立,则将当前位置到N周期前的数值设为1。『未来函数』 例:BACKSET(CLOSE>OPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1
BARSLAST(X) 求上一次条件成立到当前的周期数。 COUNT(X,N) 表示统计在N周期内满足X条件的周期数。如果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的动态移动平均,其中A为常数,并且必须介于0及1之间。 计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A 其中DMA(N-1)为第(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*X0+(N-1)*X1+(N-2)*X2+...+1*XN)/(N+(N-1)+(N-2)+...+1),X0表示本周期值,X1表示上一周期值...
HHV(X,N) 得到X在N周期内的最高值,如果N=0,则从本地数据的第一个有效周期开始算起。 例:HHV(HIGH,13);求13个周期内的最高价的最大值。
HHVBARS(X,N) 得到X在N周期内的最高值位置到当前的周期数。如果N=0,则从本地数据的第一个有效周期开始算起。 例:HHVBARS(VOL,0); 求历史成交量最大的周期到当前的周期数 LLV(X,N) 得到X在N周期内的最小值,如果N=0,则从本地数据的第一个有效周期开始算起。 例:LLV(LOW,25);表示求25个周期内最低价的最小值
LLVBARS(X,N) 得到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取0,P为价位差值绝对值。『未来函数』
例:ZIGZAG(HIGH,10,1);表示最高价的10%的之字转向 ZIGZAG(MA(HIGH,34),100,0);表示34个周期内最高价均线的100个价位的之字转向
PEAK(X,P,M,N) 取得ZIGZAG前M个波峰的值。其中X为数据,P为转折值(如果N为1,这个值为百分比数,否则为价位差值绝对值),M为大于等于1的整数。『未来函数』 例:PEAK(HIGH,10,1,1);表示最高价的10%的之字转向的上一个波峰的数值;
PEAK(MA(HIGH,34),100,1,0);表示34个周期内最高价均线的100个价位的之字转向的上一个波峰的数值
PEAKBARS(X,P,M,N) 取得ZIGZAG前M个波峰到当前周期的周期数。其中X为数据,P为转折值(如果N为1,这个值为百分比数,否则为价位差值绝对值),M为大于等于1的整数。『未来函数』 例:PEAKBARS(HIGH,10,1,1);表示最高价的10%的之字转向的上一个波峰到当前的周期数 PEAKBARS(MA(HIGH,34),100,1,0);表示34个周期内最高价均线的100个价位的之字转向的上一个波峰到当前的周期数 TROUGH(X,P,M,N) 取得ZIGZAG前M个波谷的值。其中X为数据,P为转折值(如果N为1,这个值为百分比数,否则为价位差值绝对值),M为大于等于1的整数。『未来函数』 例:TROUGH(LOW,10,1,1);表示最低价的10%的之字转向的上一个波谷的数值 TROUGH (MA(LOW,34),100,1,0);表示34个周期内最低价均线的100个价位的之字转向的上一个波谷的数值
TROUGHBARS(X,P,M,N) 取得ZIGZAG前M个波谷到当前周期的周期数。其中X为数据,P为转折值(如果N为1,这个值为百分比数,否则为价位差值绝对值),M为大于等于1的整数。『未来函数』 TROUGHBARS(LOW,10,1,1);表示最低价的10%的之字转向的上一个波谷到当前的周期数 TROUGHBARS(MA(LOW,34),100,1,0);表示34个周期内最低价均线的100个价位的之字转向的上一个波谷到当前的周期数
SAR(N,Step,Max) 得到抛物转向值。N为计算周期,Step为步长,Max为极值。(系统函数,计算步骤后台自动完成)
例:SAR(17,0.03,0.3);表示计算17个周期抛物转向,步长为3%,极限值为30% SMA(X,N,M) 得到X在N个周期内的移动平均,M为权重(M为常数)。 计算方法:SMA(N)=SMA(N-1)*(N-M)/N+X(N)*M/N
SUM(X,N) 得到X在N周期内的总和,如果N=0,则从第一个有效周期开始算起。 例: SUM(VOL,10);表示统计10周期内的成交量总和
SUMBARS(X,A) 得到X向前累加直到大于A时的周期数。 TRMA(X,N) 求X在N周期内的三角移动平均。 TSMA(X,N) 求X在N周期内的时间序列移动平均。 计算方法:TSMA(X,N)= FORCAST(X,N)+SLOPE(X,N)
3.数理统计