自文华财经程序化指标Word文档格式.docx

上传人:b****6 文档编号:20225704 上传时间:2023-01-21 格式:DOCX 页数:35 大小:46.75KB
下载 相关 举报
自文华财经程序化指标Word文档格式.docx_第1页
第1页 / 共35页
自文华财经程序化指标Word文档格式.docx_第2页
第2页 / 共35页
自文华财经程序化指标Word文档格式.docx_第3页
第3页 / 共35页
自文华财经程序化指标Word文档格式.docx_第4页
第4页 / 共35页
自文华财经程序化指标Word文档格式.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

自文华财经程序化指标Word文档格式.docx

《自文华财经程序化指标Word文档格式.docx》由会员分享,可在线阅读,更多相关《自文华财经程序化指标Word文档格式.docx(35页珍藏版)》请在冰豆网上搜索。

自文华财经程序化指标Word文档格式.docx

WR:

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

COUNT(WR>

80,5);

表示统计在5个周期内满足WR>

80的次数。

DMA(X,N)返回X的动态移动平均,其中N必须介于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的整数。

TROUGH(LOW,10,1,1);

表示最低价的10%的之字转向的上一个波谷到当前的周期数。

TROUGH(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)=FOCAST(X,N)+SLOPE(X,N)。

3、数理统计

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}。

1、算术平均值MA(CLOSE,5):

数据总和除以总个数N。

(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):

将偏差的平方相加。

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

5、总体样本方差VARP(X,N):

将偏差的平方相加,总和除以总个数N。

用公式可以这样算:

(-65.2)2+(-26.2)2+(-17.2)2+(54.8)2+ (53.8)2/5=2226.16。

6、样本方差VAR(X,N):

是总体方差的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之间”是否成立,如果条件成立则返回1(yes),否则返回0(no)。

BETWEEN(CLOSE,MA5,MA40);

表示收盘价介于5日均线与40日均线之间。

CROSS(X,Y)ﻩ表示X上穿Y。

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交易模型买卖指令信号过滤函数。

(仅适用于交易模型的过滤)

设置模型对产生的交易指令不过滤,则出现的任何交易指令都会执行,如果没有设置“不过滤”,则产生的指令将按照如下规则过滤:

1.连续的同方向指令只有第一个有效,其他的将被过滤;

2.交易指令必须配对出现(例如:

前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被滤掉。

这也就意味着,第一个指令只能是买开或者卖开指令,其他的都被过滤);

3.但是在进行模型效果测试及优化时,无论设置过滤与否,都按照前面的规则对指令进行了过滤。

IFELSE(C,A,B)(08版等以前版本里用IF函数表示)。

如果条件C成立则返回A值,否则返回B值.

IFELSE(CLOSE>

REF(CLOSE,1),1,0);

表示若今日收盘价高于前一日收盘价,则返回1,否则返回0

ISDOWN判断该周期是否收阴。

ISEQUALﻩ判断该周期是否平盘。

ISUP判断该周期是否收阳。

ISLASTBAR判断当前周期是否为最后一根K线。

ISLASTBAR;

 如果是最后一个K线返回1(Yes),否则返回0(No)。

VALUEWHEN(COND,DATA)当条件COND满足时,取当时的DATA的值,否则取得前面一个满足条件COND的值。

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)求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的正切值。

6、时间函数

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)。

7、绘图

DRAWLINE(C1,P1,C2,P2,COLOR)ﻩ当条件C1及C2均满足时,从P1画直线到P2,颜色为COLOR。

DRAWLINE(MA18<

CLOSE,OPEN,MA5>CLOSE,CLOSE,COLORCYAN);

表示当收盘价大于18日均线并且小于5日均线时,从开盘价画青色直线到收盘价。

DRAWTEXT(C,P,TEXT)表示当条件C满足时在P上写TEXT文字。

DRAWTEXT(CLOSE<

 OPEN&

&

REF(CLOSE,1)<REF(OPEN,1)&&

REF(VOL,1)*1.1<

VOL,LOW,'

注'

);

表示连续两日收阴并且成交量比前一日至少多10%时,在最低价上写“注”字。

DRAWSL

(COND,DATA,SLOPE,LEN,EXPAND,COLOR)ﻩ画斜线,当条件COND满足时,从DATA开始以每个周期相差SLOPE个点的斜率画斜线,划线长度为LEN个周期,EXPAND为线段的延长方式(0:

不延伸;

1:

向左延伸;

2:

向右延伸;

3:

双向延伸)。

DRAWSL(LOW=LLV(LOW,50),LOW,5,3,2,COLORRED);

表示当前最低价等于50周期内的最小值时,从当前最小值开始以每隔5个点的斜率画长度为3个周期向右延伸的斜线,颜色为红色。

DRAWNUMBER

(COND,DATA,NUMBER,PRECISION,COLOR)画数字。

当条件COND满足时,在DATA位置写数字NUMBER(为数组),精度为PRECISION(小数点后有几位数字)。

DRAWNUMBER(CLOSE/OPEN>

1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED);

表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。

FILLRGN

(COND,DATA1,DATA2,COLOR)ﻩ填充区域,当条件COND满足时,填充DATA1及DATA2包围的区域。

FILLRGN(MA5>

MA10,MA5,MA10,COLORRED);

表示MA5>

MA10时以红色填充MA5和MA10之间的区域。

POLYLINE

(COND,DATA,COLOR)画折线,当条件COND满足时,连接各个DATA点。

POLYLINE(CLOSE>=HHV(CLOSE,100),CLOSE,COLORRED);

表示在收盘价创100天新高点之间画折线。

PARTLINE

(COND,DATA,COLOR)画线段,条件COND满足时,以COLOR颜色的直线连接DATA各点。

PARTLINE(HIGH>

REF(HIGH,1),HIGH,COLORRED);

表示当期最高价大于前期最高价用红色绘制最高价线段。

STICKLINE

(C,P1,P2,COLOR,EMPTY)如果条件C满足时,从P1到P2画柱线,颜色为Color,如果Empty取1,则为空心柱;

如果Empty取0,则为实心柱。

STICKLINE(OPEN-CLOSE>

0,OPEN,CLOSE,COLORCYAN,0);

表示当开盘价大于收盘价时,从开盘价到收盘价画青色的实心柱,即K线阴线的实体部分。

VERTLINE

(COND,COLOR)画垂直线,当条件COND满足时,画垂直线。

VERTLINE(HIGH>

=HHV(HIGH,30),COLORRED);

表示在价格创30天新高时画垂直线。

8、08版本与09版本函数区别

ﻩ08版本函数09版本函数

SETTLEﻩ日线周期只有盘后才能引用当日的结算价。

其他周期计算结果等同于AVPRICEﻩ引用结算价(如果用在周期小于'

日'

的K线上如5分钟K线,一小时k线,每根k线返回的值表示这根k线当日开盘时到这根k线的为止的结算价(均价)

的K线上,返回当根K线结束时间所在日的结算价.)

BACKSET(X,N)『未来函数』ﻩ函数参数不支持变量计算函数参数支持变量计算如:

BACKSET(CLOSE>

OPEN,VAR1);

//VAR1是变量

DMAﻩ函数参数不支持变量计算ﻩDMA(X,N)返回X的动态移动平均,其中N必须介于0及1之间。

N 支持变量。

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

其中DMA(N-1)为第(N-1)天的DMA值。

HHV(X,N)函数参数N不支持变量计算ﻩ函数参数N支持变量计算

LLV(X,N)ﻩ函数参数N不支持变量计算函数参数N支持变量计算

COUNT(X,N)ﻩ函数参数N不支持变量计算函数参数N支持变量计算

09版本新增函数:

GETPRICE(N)ﻩ根据文华码取出某一品种的最新价。

GETPRICE(1209);

返回文华码为1209的合约品种的最新价。

RGB(R,G,B)ﻩ自定义颜色函数。

R,G,B的数值范围都在0~255之间,例:

RGB(225,225,225)表示白色

PARAM[参数名称,最小值,最大值,缺省值]ﻩ在源码中定义参数。

PARAM[N,1,100,12]

MAN:

MA(CLOSE,N);

表示参数为N,最小值为1,最大值为100,缺省值为12.

IF(COND)

A,COLOR;

ELSE

B,COLOR;

ﻩ条件循环函数。

多层次循环时使用“{}”套用。

取得MA5、MA10、MA30三者中最大的数值

MA5:

=MA(CLOSE,5);

MA10:

=MA(CLOSE,10);

MA30:

=MA(CLOSE,30);

IF(MA5>

MA10)

MA5,COLORRED;

ELSE

{

IF(MA10>

MA30)

MA10,COLORMAGENTA;

ELSE

MA30,COLORGREEN;

}

注意:

区别于IFELSE函数,为了使多层次套用看的清楚,以上示例中将“{}”单独空行,实际使用中可以不必这样使用。

#IMPORT[CODE,PERIOD,FORMULA]AS VAR跨周期、跨合约取数据函数。

语句格式:

#IMPORT[CODE,PERIOD,FORMULA] ASVAR

CODE文华码

(文华码见其他—>

期货品种代码表)

PERIOD被引用的周期

FORMULA 被引用指标名称

引用[豆粕1005]合约日K线图周期的指标[KDJ.FML]中K值、D值:

#IMPORT[1205,DAY,KDJ]ASVARKDJ

K1:

KDJ.K;

D1:

KDJ.D;

注意点:

1.只能引用一个当前存在的‘.FML文件’(指标文件)中的变量,不支持同时引用多个指标和多个周期。

2.只能引用如下周期MIN1MIN3MIN5MIN10MIN15MIN30HOUR1 HOUR3HOUR8DAYWEEK MONTH;

3.只能短周期引用长周期指标数据,分钟周期上可引用小时、日周期数据,不能日线周期上加载引用分钟数据的指标;

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

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

模型注释符号在2009版本中修改为“//”。

2008版本中模型注释语句使用在2009版本中时在{}前面增加//即可。

(三)编辑平台可以使用的常数

常数ﻩ意义

COLORRED红色

COLORGREEN绿色

COLORBLUEﻩ蓝色

COLORMAGENTA紫色

COLORYELLOW黄色

COLORLIGHTGREYﻩ浅灰色

COLORLIGHTREDﻩ浅红色

COLORLIGHTGREEN浅绿色

COLORLIGHTBLUEﻩ浅蓝色

COLORBLACKﻩ黑色

COLORWHITE白色

COLORCYAN青色

COLORSTICK画彩色柱线

VOLUMESTICKﻩ画成交量线

BAMBOOLINE画竹线

CIRCLEDOTﻩ画圆

OPISTICK画持仓量柱线

RGB(R,G,B)ﻩ自

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1