1、文华程序化指令自编公式支持的操作符操作符意义例加法CLOSEOPEN 表示求收盘价及开盘价的和。 CLOSEOPEN 表示求收盘价及开盘价的差。 CLOSE*OPEN 表示求收盘价及开盘价的积。 CLOSE/OPEN 表示求收盘价及开盘价的商。 减法* 乘法/ 除法&与(并且),也可简写为AND |或(或者), 也可简写为OR 大于CLOSEOPEN 表示判断当前周期是否收阳。=大于等于=小于等于不等于=等于操作符:=只定义一个局部变量(这个变量在画图时是不画的)TMP1:=(OPEN+CLOSE)/2; MA(TMP1,10); 上面的公式的第一个语句定义了一个局部变量TMP1,在下面一行中
2、引用了这个局部变量,但是要注意的是这个公式在画图的时候只画了第二条语句所求出的结果。 相反下面这个公式则需要画出两条线,第一条是自己定义的均价线,同时显示了均价的名称为AVP,第二条线是均价的简单移动平均线。 AVP:(OPEN+CLOSE)/2; MA(AVP,10);:声明了一个变量,在画图时画出它并且按这个名字显示。编辑平台的语法1.关于公式名称:公式的名称不可以和已经存在的公式重复。 2.关于参数:每个自编公式最多可以定义四个参数,参数的定义如下, 首先是参数名称,然后是参数的最小值,最大值,最后是参数的默认值。在定义参数时要注意的是参数名称不可以重复。 3.关于变量名称:变量名称不可
3、以互相重复,不可以和参数名重复,不可以和函数名称重复。 4.关于公式内容:公式的每个语句应该以分号结束,包括最后一条语句。在数据公式的时候请您注意一定要使用半角输入。在编写公式的过程中,如果您不记得某个函数的确切写法,可以选择插入函数来插入函数。 5.如果您在编写公式之后,想给这个公式加上注释、说明,可以点击公式名称后面的“公式说明”,在弹出窗口中输入。6.IFELSE(C,A,B)如果条件C成立则返回A值,否则返回B值例:IFELSE(CLOSEREF(CLOSE,1),1,0);表示若今日收盘价高于前一日收盘价,则返回1,否则返回0自编公式支持的函数1.引用数据AVPRICE引用均价(在盘
4、后对于国内三个期货交易所指结算价)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)根据文华码取出某一品
5、种的最新价。例:GETPRICE(1209);返回文华码为1209的合约品种的最新价。PARAM参数名称,最小值,最大值,缺省值在源码中定义参数。例: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 M
6、1005意思是引用豆粕1005 五分钟图上指标TEST.FML 的数据使用的方法:如当前存在一个指标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 WE
7、EK MONTH3.只能短周期引用长周期比如不能日线周期上加载引用了分钟数据的指标。4.被引用的指标中不能存在引用5.如果不写文华码,默认引用当前合约 2.金融统计BACKSET(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(
8、LOW,N); COUNT(WR80,5);表示统计在5个周期内满足WR80的次数 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-
9、2)*X2+.+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);表示求25个周期内最低价的最小
10、值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
11、个价位的之字转向 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的整数。未来函数例:PEA
12、KBARS(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个价位的之字转向
13、的上一个波谷的数值 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
14、.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.数理统计 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)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1