期货交易模型编写经典教程

上传人:第*** 文档编号:31498074 上传时间:2018-02-08 格式:DOC 页数:28 大小:629.08KB
返回 下载 相关 举报
期货交易模型编写经典教程_第1页
第1页 / 共28页
期货交易模型编写经典教程_第2页
第2页 / 共28页
期货交易模型编写经典教程_第3页
第3页 / 共28页
期货交易模型编写经典教程_第4页
第4页 / 共28页
期货交易模型编写经典教程_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《期货交易模型编写经典教程》由会员分享,可在线阅读,更多相关《期货交易模型编写经典教程(28页珍藏版)》请在金锄头文库上搜索。

1、一、 程序化交易的编写、交易模型编写规范和一般原则1、编辑平台支持的操作符操作符 意义 例 加法CLOSEOPEN 表示求收盘价及开盘价的和。 减法CLOSEOPEN 表示求收盘价及开盘价的差。* 乘法CLOSE*OPEN 表示求收盘价及开盘价的积。/ 除法CLOSE/OPEN 表示求收盘价及开盘价的商。AND 与(并且) ,也可简写为&OR 或(或者), 也可简写为| 大于CLOSEOPEN 表示判断当前周期是否收阳。= 大于等于不等于= 等于:= 只定义一个局部变量 TMP1:=(OPEN+CLOSE)/2; 2(这个变量在画图时是不画的): 声明了一个变量,在画图时画出它并且按这个名字显

2、示。:MA(TMP1,10); 上面的公式的第一个语句定义了一个局部变量 TMP1,在下面一行中引用了这个局部变量,但是要注意的是这个公式在画图的时候只画了第二条语句 MA10 所求出的结果。相反下面这个公式则需要画出两条线,第一条是自己定义的均价线,同时显示了均价的名称为 AVP,第二条线是均价的简单移动平均线。AVP:(OPEN+CLOSE)/2;MA(AVP,10); 2、编辑平台支持的函数引用数据AVPRICE 引用均价(在盘后对于国内三个期货交易所指结算价)SETTLE 引用结算价(只有在日线周期盘后才能引用当日的结算价)CLOSE 引用收盘价(在盘中指最新价 ),也可简写为 C H

3、IGH 引用最高价,也可简写为 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) 根据文华码取出某一品种的最新价。3例:GETPRICE(1209);返回文华码为 1209的合约品种的最新价。PARAM参数名称

4、,最小值,最大值,缺省值在源码中定义参数。例:PARAMN,1,100,12MAN:MA(CLOSE,N);表示参数为 N,最小值为 1,最大值为100,缺省值为 12.#IMPORT CODE,PERIOD,FORMULA AS VAR(Mytrader2009 和Myadvisor(赢智)支持)#IMPORTCODE,PERIOD,FORMULAAS VAR;CODE 文华码 PERIOD 周期 FORMULA 引用模型名VAR 定义变量名例子:#IMPORT 1205,MIN5,TEST AS M1005意思是引用豆粕 1005 五分钟图上指标TEST.FML 的数据使用的方法:如当前存

5、在一个指标 TEST.FML/TEST.FMLCL:=CLOSE;OP:=OPEN;我想在新建的指标 TEST1 中引用豆粕1005 五分钟周期上指标TEST.FML 的数据可以如下编写 TEST1 指标/TEST1.FML#IMPORT 1205,MIN5,TEST AS VARTESTDD:VARTEST.CL;DF:VARTEST.OP;引用的约束1.只能引用 .FML 文件2.只能引用如下周期 MIN1 MIN3 MIN5 MIN10 MIN15 MIN30 HOUR1 HOUR3 HOUR8 DAY WEEK MONTH3.只能短周期引用长周期比如不能日线周期上加载引用了分钟数据的指

6、标。4.被引用的指标中不能存在引用 金融统计4BACKSET(X,N) 若 X 条件成立,则将当前位置到 N 周期前的数值设为 1。 未来函数例:BACKSET(CLOSEOPEN,3);表示当 K 线收阳时,自当前位置到 3 周期前的数值设为 1BARSLAST(X) 求上一次条件成立到当前的周期数。COUNT(X,N) 表示统计在 N 周期内满足 X 条件的周期数。如果 N 为 0 则表示从已申请到的数据的第一天开始算起。例:WR:=-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N); COUNT(WR80,5);表示统计在 5 个周期内满足W

7、R80 的次数 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+.

8、+1*XN)/(N+(N-1)+(N-2)+.+1),X0 表示本周期值,X1 表示上一周期值.HHV(X,N) 得到 X 在 N 周期内的最高值,如果 N0,则从本地数据的第一个有效周期开始算起。例:HHV(HIGH,13);求 13 个周期内的最高价的最大值。 HHVBARS(X,N) 得到 X 在 N 周期内的最高值位置到当前的周期数。如果 N=0,则从本地数据的第一个有效周期开始算起。例:HHVBARS(VOL,0); 求历史成交量最大的周期到当前的周期数LLV(X,N) 得到 X 在 N 周期内的最小值,如果 N=0,则从本地数据的第一个有效周期开始算起。例:LLV(LOW,25);

9、表示求 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%的之字

10、转向ZIGZAG(MA(HIGH,34),100,0);表示 34 个周期内最高价均线的 100个价位的之字转向 5PEAK(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

11、 个波峰到当前周期的周期数。其中 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 的

12、整数。 未来函数例: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 的整数。 未来函数TROUGH(LOW,10,1,1);表示最低价的 10%的之字转向的上一个波谷到当前的周期数 TROUGH (MA(LOW,34),1

13、00,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,则从第一个有效周期开始算起。例:

14、SUM(VOL,10);表示统计 10 周期内的成交量总和 SUMBARS(X,A) 得到 X 向前累加直到大于 A 时的周期数。 TRMA(X,N) 求 X 在 N 周期内的三角移动平均。 TSMA(X,N) 求 X 在 N 周期内的时间序列移动平均。计算方法:TSMA(X,N)= FOCAST(X,N)+SLOPE(X,N) 6数理统计AVEDEV(X,N) 求 X 在 N 周期内的平均绝对偏差。DEVSQ(X,N) 数据偏差平方和。FORCAST(X,N) 得到 X 的 N 周期线性回归预测值。例:FORCAST(CLOSE,5);表示求 5 周期线性回归预测SLOPE(X,N) 得到

15、X 在 N 周期内的线性回归的斜率例:SLOPE(CLOSE,5);表示求 5 周期线性回归线的斜率STD(X,N) 得到 X 在 N 周期内的标准差STDP(X,N) 得到 X 在 N 周期内的总体标准差VAR(X,N) 得到 X 在 N 周期内的样本方差VARP(X,N) 得到 X 在 N 周期内的总体样本方差数理统计举例说明:设一个数列,数列中数据的总个数为 N,以今天(2005-10-14)五天内的 A0605 收盘价为例,N 就为 5。数列的内容为:2766,2805,2814,2886,2885 。1、算术平均值 MA(CLOSE,5):数据总和除以总个数N。(2766+2805+

16、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)+ (-26.2)+ (-17.2)+ (54.8)+ (53.8)=11130.80。5、总体样本方差 VARP(X,N):将偏差的平方相加,总和除以总个数N。用公式可以这样算: (-65.2)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号