文华期货自动化交易模型编写教程Word下载.docx
《文华期货自动化交易模型编写教程Word下载.docx》由会员分享,可在线阅读,更多相关《文华期货自动化交易模型编写教程Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
⑴引用数据
AVPRICE
引用均价(在盘后对于国内三个期货
交易所指结算价)
SETTLE
引用结算价(只有在日线周期盘后才
能引用当日的结算价)
CLOSE
引用收盘价(在盘中指最新价),也可
简写为C
HIGH
引用最高价,也可简写为H。
LOW
引用最低价,也可简写为L。
OPEN
引用开盘价,也可简写为O。
OPI
引用持仓量
REF(X,N)
引用X在N个周期前的值
例:
REF(CLOSE,5);
表示引用当前周期
前第5个周期的收盘价
于1的整数)『未来函数』
例:
REFX(CLOSE,5);
表示引用自当前
周期后第5个周期的收盘价
[CODE,PERIOD,FORMULAVAR;
持)
VAR定义变量名
例子:
#IMPORT[1205,MIN5,TEST]ASM1005
意思是引用[豆粕1005]五分钟图上指标[]的数据
使用的方法:
如当前存在一个指标能引用.FML文件
2.只能引用如下周期MINIMIN3MIN5MIN10MIN15MIN30H0UR1HOURHOUR8DAYWEEKMONTH
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),xo表示本周期值,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)
1取得ZIGZAG前M个波谷到当前周期的周期数。
表示最低价的10%勺之字转向的上一个波谷到当前的周期数
表示34个周期内最低价均线的100个
价位的之字转向的上一个波谷到当前的周期数
SAR(N,Step,Max)
得到抛物转向值。
N为计算周期,Step为步长,Max为极值。
(系统函数,
计算步骤后台自动完成)
SAR(17,,;
表示计算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)=FOCAST(X,N)+SLOPE(X,N)
⑶数理统计
AVEDEV(X,N)
求X在N周期内的平均绝对偏差。
DEVSQ(X,N)
数据偏差平方和。
FORCAST(X,N)
得到X的N周期线性回归预测值。
FORCAST(CLOSE,5);
表示求5周期线性回归预测
SLOPE(X,N)
得到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}o
1、算术平均值MA(CLOSE,5):
数据总和除以总个数N。
(2766+2805+2814+2886+2885)/5=。
可以用公式MA(CLOSE,5),从今天的值上看出。
2、偏差:
每个数据,减去算术平均值的结果。
=,=,=,=,=,各
偏差相加,应该是等于0的。
3、平均绝对偏差AVEDEV(X,N):
将偏差的绝对值相加,除以总个数No++++/5=。
4、数据偏差平方和DEVSQ(X,N):
将偏差的平方相加。
2+2+2+2+2=。
5、总体样本方差VARP(X,N):
将偏差的平方相加,总和除以总个数No
用公式可以这样算:
2+2+2+2+2/5=。
6、样本方差VAR(X,N):
是总体方差的N/(N-1)倍。
*5/(5-1)=估算
样本方差,总比总体样本方差大点,当N够大时,两者趋于相等。
7、总体标准差STDP(X,N):
方差的开方。
[2+2+2+2+2/5]?
=。
8、标准差STD(X,N):
估算样本方差的开方。
[*5/(5-1)]?
=冋样,
估算标准差也比总体标准差大一点,当N够大时,两者趋于相等。
更多期货股票学习资料点击:
⑷逻辑判断
BETWEEN(A,B,C)
判断条件“A位于B及C之间”是否成立,如果条件成立则返
回1(yes),否则返回0(no)。
BETWEEN(CLOSE,MA5,MA40);
表示收盘价介于5日均线与40日均线之间。
CROSS(X,Y)
表示X上牙Yo
CROSS(CLOSE,MA(CLOSE,5));
表示收盘线从下方向上牙过5日均线
EXIST(COND,N)
判断N个周期内是否有满足条件COND勺情况发生。
EXIST(CLOSE>
REF(HIGH,1),10);
表示10个周期中是否存在收盘价大于前一个周期的最高价
EVERY(COND,N)
判断过去N个周期内是否一直满足条件COND
EVERY(CLOSE>
OPEN,5表示5个周期内一直是阳线
LAST(COND,N1,N2)
判断过去N1到N2周期内是否一直满足条件COND
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
判断当前周期是否为最后一根K线。
VALUEWHEN(COND,DATA)
当条件CON满足时,取当时的DATA的值,否则取得前面一个满足条件CON啲值。
VALUEWHEN(HIGH>
REF(HIGH,5),HIGH);
表示当前最高价大于前五个周期最高价的最大值时返回当前最高价。
⑸数学运算
ABS(X)
求X的绝对值
ABS(SAR(17,,);
返回抛物转向SAR(17,,的绝对值。
ACOS(X)
求X的反余弦值
ASIN(X)
求X的反正弦值
ATAN(X)
求X的反正切值
COS(X)
返回X的余弦值
EXP(X)
返回e的X次幕
CEILING(X)
向上舍入,返回沿X数值增大方向最接近的整数。
FLOOR(X)
向下舍入,返回沿X数值减小方向最接近的整数。
INTPART(X)
取X的整数部分,返回沿X绝对值减小方向最接近的整数。
LN(X)
得到X的自然对数,以e为底的对数。
LN(OPEN);
求开盘价的自然对数。
LOG(X)
得到X的常用对数,取得X的以10为底的对数。
LOG(OPEN)求开盘价的以10为底的对数。
MAX(A,B)
求A,B中的较大者。
MAX(CLOSE-OPEN,0);
表示若收盘价大于开盘价返回它们的差值,否则返回0。
MIN(A,B)
求A,B中的较小者。
MIN(OPEN,CLOSE)返回开盘价和收盘价中的较小值。
MOD(A,B)
返回A对B得到模。
MOD(CLOSE,OPEN收盘价除以开盘价所得余数
NOT(X)
当X为0时返回1,否则返回0。
NOT(TIME=090530);
表示该周期对应的时间不是
9:
05:
30AM。
POW(A,B)
得到A的B次幕。
POW(CLOSE,2)求得收盘价的2次方。
REVERSE(X)
取反,返回符号相反的数值。
REVERSE(LOW返回-LOW
SGN(X)
得到X的符号,如果X>
0则返回1,如果X<
0则返回一1,否则
返回0。
SIN(X)
得到X的正弦值。
SQRT(X)
得到X的平方根。
SQRT(CLOSE)收盘价的平方根。
SQUARE(X)
得到X的平方。
SQUARE(CLOSE收盘价的平方。
TAN(X)
得到X的正切值。
⑹时间函数
BARPOS
取得当前K线的位置。
DATE
取得当前周期的日数
(700101-341231)。
DAY
取得当前周期的日数(1-31)。
HOUR
取得当前周期的小时数(0-23)。
MINUTE
取得当前周期的分钟数(0-59)。
MONTH
取得当前周期的月数(1-12)。
TIME
取得当前周期的时间数(0-2359),
秒级周期返回值范围为:
0-235959。
WEEKDAY
取得当前周期的星期数(0-6)。
YEAR
取得当前周期的年数(1970-2034)。
⑺绘图
DRAWLINE(C1,P1,C2,P2,COLOR)
当条件C1及C2均满足时,从P1画直线到P2,
颜色为COLOR
例:
DRAWLINE(MA18
CLOSE,OPEN,MA5>
CLOSE,CLOSE,COLORCYA表;
示当收盘价大于18日均线并且小于5日均线时,从开盘价画青色直线到收盘价。
DRAWTEXT(C,P,TEXT)
表示当条件C满足时在P上写TEXT文字。
DRAWTEXT(CLOSE<
OPEN&
REF(CLOSE,1REF(OPEN,1)&
REF(VOL,1)*<
VOL,LOW,'
注'
);
表示连续两日收阴并且成交量比前一日至少多
10%寸,在最低价上写“注”字。
DRAWSL(COND,DATA,SLOPE,LEN,EXPAN[
COLOR)
)画斜线,当条件COND满足时,从DATA开始以每个周期相差SLOPE个点的斜率画斜线,划线长度为LEN个周期,EXPAND为线段的延长方式(0:
不延伸;
1:
向左延伸;
2:
向右延伸;
3:
双向延伸)。
DRAWSL(LOW=LLV(LOW,50),LOW,5,3,2,COLORRE
;
表示当前最低价等于50周期内的最小值时,从
当前最小值开始以每隔5个点的斜率画长度为3
个周期向右延伸的斜线,颜色为红色
DRAWNUMBER
画数字。
当条件COND满足时,在DATA位置写数
(COND,DATA,NUMBER,PRECISION,COLOR
字NUMBER为数组),精度为PRECISION小数点
后有几位数字)。
DRAWNUMBER(CLOSE/OPEN>
HIGH,(CLOSE-OPE
PEN*100,2,COLORRED);
表示当日涨幅大于8%寸
在最高价位置显示涨幅(相对开盘价的百分比)。
N)/O
FILLRGN
填充区域,当条件COND满足时,填充DATA1及
(COND,DATA1,DATA2,COLOR)
DATA2包围的区域。
FILLRGN(MA5>
MA1O,MA5,MA1O,COLORRED表示MA5>
MA1时以红色填充MA5和MA10之间的区域。
POLYLINE
画折线,当条件COND满足时,连接各个DATA点。
(COND,DATA,COLOR)
POLYLINE(CLOSE>
=HHV(CLOSE,1OO),CLOSE,COL
RED);
表示在收盘价创100天新高点之间画折
线。
PARTLINE
同POLYLINE
PARTLINE(HIGH>
REF(HIGH,1),HIGH,COLORRED);
表示当期最高价大于前期最高价用红色绘制最高价连线线段。
STICKLINE
如果条件C满足时,从P1到P2画柱线,颜色为
(C,P1,P2,Color,Empty)
Color,如果Empty取1,则为空心柱;
如果Empty取0,则为实心柱。
STICKLINE(OPEN-CLOSE>
0,OPEN,CLOSE,COLOR
N,0);
表示当开盘价大于收盘价时,从开盘价到收盘价画青色的实心柱,即K线阴线的实体部分。
VERTLINE
(COND,COLOR)
画垂直线,当条件CON满足时,画垂直线。
VERTLINE(HIGH>
=HHV(HIGH,30),COLORRED
表示在价格创30天新高时画垂直线。
RGB(R,G,B)
自定义颜色函数。
R,G,B的数值范围都在0~255之间,例:
RGB(225,225,225)表示白色
COLORSTICK
画彩色柱线
VOLUMESTICK
画成交量线
BAMBOOLINE
画竹线
CIRCLEDOT
画圆
OPISTICK
画持仓量柱线
8、level-2函数(只有嬴智版本支持)
L2_BPTIMES
周期内多头平仓次数。
用法:
L2_BPTIMES返回多头平仓次数。
L2_BKTIMES
周期内多头开仓次数。
L2BKTIMES返回多头开仓次数。
L2_SPTIMES
周期内空头平仓次数。
L2_BPTIMES返回空头平仓次数。
L2_SKTIMES
周期内空头开仓次数。
L2_SKTIMES返回空头开仓次数。
L2_ASKACC0UNT
周期内卖主动次数。
L2_ASKACC0UN1回卖主动次数。
L2_BIDACC0UNT
周期内买主动次数。
L2_BIDACC0UN返回买主动次数。
L2_BIDAVV0L
周期内平均总买量。
L2_BIDAW0L返回周期内平均总买量。
L2_ASKAVV0L
周期内平均总卖量。
L2_ASKAVV0返回周期内平均总卖量。
L2_ASKAVPRICE
周期内卖盘加全平均价。
L2ASKAVPRICE返回卖盘加全平均价。
L2_BIDAVPRICE
周期内买盘加全平均价。
L2BIDAVPRICE返回买盘加全平均价。
L2_ASKBIGTURN0VER
周期内空头大单成交额。
L2_ASKBIGTURN0VER回空头大单成交额。
L2_BIDBIGTURN0VER
周期内多头大单成交额。
L2BIDBIGTURN0VE返回多头大单成交额。
L2_ASKBIGC0UNT
周期内空头大单成交次数。
L2_ASKBIGC0UN返回周期内空头大单成交次
数。
L2_BIDBIGC0UNT
周期内多头大单成交次数。
L2_BIDBIGC0UNT返回周期内多头大单成交次
L2_T0TALTURN0VER
周期内总成交额。
L2_T0TALTURN0VER回总成交额。
L2_ASKBIGENTRASTC0UNT
周期内卖1委托明细大量次数。
L2_ASKBIGENTRASTC0U返回卖1委托明细大
量次数。
L2_BIDBIGENTRASTC0UNT
周期内买1委托明细大量次数。
L2_BIDBIGENTRASTC0U返回买1委托明细大
L2_PERI0D_DATA(TEXT)
该周期最后时刻的买卖价格。
L2_PERI0D_DATA(TEXT求内容为TEXT的该周
期最后盘面数据。
例子:
L2_PERI0D_DATA('
bid1'