文华期货自动化交易模型编写教程

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、程序化交易的编写

㈠、交易模型编写规范和一般原则

1、编辑平台支持的操作符

:= 只定义一个局部变量

(这个变量在画图时是不画的) TMP1:=(OPEN+CLOSE)/2;

:MA(TMP1,10);

上面的公式的第一个语句定义了一个局部变量TMP1,在下面一行中引用了这个局部变量,但是要注意的是这个公式在画图的时候只画了第二条语句MA10所求出的结果。相反下面这个公式则需要画出两条线,第一条是自己定义的均价线,同时显示了均价的名称为A VP,第二条线是均价的简单移动平均线。

A VP:(OPEN+CLOSE)/2;

MA(A VP,10);

:声明了一个变量,

在画图时画出它并且按这个名字显

示。

2、编辑平台支持的函数

⑴引用数据

A VPRICE 引用均价(在盘后对于国内三个期货交易

所指结算价)

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 V AR (Mytrader2009和Myadvisor (赢智)支持) #IMPORT[CODE,PERIOD,FORMULA]AS

V AR;

CODE 文华码PERIOD 周期FORMULA

引用模型名

V AR 定义变量名

例子:

#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

V ARTEST

DD:V ARTEST.CL;

DF:V ARTEST.OP;

引用的约束

1.只能引用 .FML 文件

2.只能引用如下周期 MIN1 MIN3 MIN5

MIN10 MIN15 MIN30 HOUR1 HOUR3

HOUR8 DAY WEEK MONTH

3.只能短周期引用长周期比如不能日线周

期上加载引用了分钟数据的指标。

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

⑵金融统计

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为价位差值绝对值。『未来函数』

相关文档
最新文档