1、文华财经自编公式支持的函数编辑平台的语法1.关于公式名称:公式的名称不可以和已经存在的公式重复。 2.关于参数:每个自编公式最多可以定义四个参数,参数的定义如下, 首先是参数名称,然后是参数的最小值,最大值,最后是参数的默认值。在定义参数时要注意的是参数名称不可以重复。 3.关于变量名称:变量名称不可以互相重复,不可以和参数名重复,不可以和函数名称重复。 4.关于公式内容:公式的每个语句应该以分号结束,包括最后一条语句。在数据公式的时候请您注意一定要使用半角输入。在编写公式的过程中,如果您不记得某个函数的确切写法,可以选择插入函数来插入函数。 5.如果您在编写公式之后,想给这个公式加上注释、说
2、明,可以点击公式名称后面的“公式说明”,在弹出窗口中输入。6.IF ELSE:该语句只有Mytrader2009和Myadvisor(赢智)支持MA5:=MA(CLOSE,5);MA10:=MA(CLOSE,10);MA30:=MA(CLOSE,30);IF(MA5MA10)MA5,COLORRED;ELSEIF(MA10MA30)MA10,COLORMAGENTA;ELSEMA30,COLORGREEN;以上内容表达 MA5、MA10、MA30三者中最大的数值。7.IFELSE(C,A,B)如果条件C成立则返回A值,否则返回B值例:IFELSE(CLOSEREF(CLOSE,1),1,0);
3、表示若今日收盘价高于前一日收盘价,则返回1,否则返回0自编公式支持的函数1.引用数据AVPRICE引用均价(在盘后对于国内三个期货交易所指结算价)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);表
4、示引用自当前周期后第5个周期的收盘价VOL引用成交量,也可简写为V 。GETPRICE(N)根据文华码取出某一品种的最新价。例: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 文华码PERIO
5、D 周期FORMULA 引用模型名VAR 定义变量名例子:#IMPORT 1205,MIN5,TEST AS M1005意思是引用豆粕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.只能引用如下周期 M
6、IN1 MIN3 MIN5 MIN10 MIN15 MIN30 HOUR1 HOUR3 HOUR8 DAY WEEK MONTH3.只能短周期引用长周期比如不能日线周期上加载引用了分钟数据的指标。4.被引用的指标中不能存在引用5.如果不写文华码,默认引用当前合约 2.金融统计BACKSET(X,N)若X条件成立,则将当前位置到N周期前的数值设为1。未来函数例:BACKSET(CLOSEOPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1BARSLAST(X)求上一次条件成立到当前的周期数。COUNT(X,N)表示统计在N周期内满足X条件的周期数。如果N为0则表示从已申请到的数据的
7、第一天开始算起。例:WR:=-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(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,
8、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周期内的最高值,如果N0,则从本地数据的第一个有效周期开始算起。例:HHV(HIGH,13);求13个周期内的最高价的最大值。 HHVBARS(X,N)得到X在N周期内的最高值位置到当前的周期数。如果N=0,则从本地数据的第一个有效周期开始算起。例:HHVBARS(VOL,0); 求历史成交量最大的周期到当前的周期数LLV(X,N)得到X在N周期内的最小
9、值,如果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、示最高价的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为
11、数据,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%的之字转向的上一个波谷的
12、数值 TROUGH (MA(LOW,34),100,1,0);表示34个周期内最低价均线的100个价位的之字转向的上一个波谷的数值 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)得
13、到抛物转向值。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
14、,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)得到X在N周期内的样本方差VARP(X,N) 得
15、到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=5
16、4.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
17、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 (y
18、es),否则返回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(CLOSEREF(HIGH,1),10);表示10个周期中是否存在收盘价大于前一个周期的最高价EVERY(COND,N)判断过去N个周期内是否一直满足条件COND。例:EVERY(CLOSEOPEN,5);表示5个周期内一直是阳线LAST(COND,N1,N2)判断过
19、去N1到N2周期内是否一直满足条件COND。例:LAST(CLOSEOPEN,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;”是指当连续出现同方向的交易指令时,系统只显示出第
20、一个交易指令,其他交易指令自动被过滤。ISDOWN 判断该周期是否收阴。ISEQUAL 判断该周期是否平盘。ISUP 判断该周期是否收阳。ISLASTBAR判断当前周期是否为最后一根K线。VALUEWHEN(COND,DATA)当条件COND满足时,取当时的DATA的值,否则取得前面一个满足条件COND的值。例:VALUEWHEN(HIGHREF(HIGH,5),HIGH);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价。5.数学运算ABS(X)求X的绝对值例:ABS(SAR(17,0.03,0.3);返回抛物转向SAR(17,0.03,0.3)的绝对值。ACOS(X)求X的反余弦
21、值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);表示若收盘价大于开盘价返
22、回它们的差值,否则返回0。MIN(A,B)求A,B中的较小者。例:MIN(OPEN,CLOSE);返回开盘价和收盘价中的较小值。MOD(A,B)求模。用法:MOD(A,B)返回A对B求模。例:MOD(26,10);返回6,26除以10所得余数为6,即26对10 的模为6。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的符号,如果
23、X0则返回1,如果X0则返回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-235
24、959。WEEKDAY取得当前周期的星期数(0-6)。YEAR取得当前周期的年数(1970-2034)。7.绘图DRAWLINE(C1,P1,C2,P2,COLOR)当条件C1及C2均满足时,从P1画直线到P2,颜色为COLOR。例:DRAWLINE(MA18CLOSE,CLOSE,COLORCYAN); 表示当收盘价大于18日均线并且小于5日均线时,从开盘价画青色直线到收盘价。 DRAWTEXT(C,P,TEXT) 表示当条件C满足时在P上写TEXT文字。例:DRAWTEXT(CLOSE OPEN&REF(CLOSE,1) REF(OPEN,1) &REF(VOL,1)*1.11.08,HI
25、GH,(CLOSE-OPEN)/OPEN*100,2,COLORRED); 表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。 FILLRGN(COND,DATA1,DATA2,COLOR)填充区域,当条件COND满足时,填充DATA1及DATA2包围的区域。例:FILLRGN(MA5MA10,MA5,MA10,COLORRED); 表示MA5MA10时以红色填充MA5和MA10之间的区域。 POLYLINE(COND,DATA,COLOR)画折线,当条件COND满足时,连接各个DATA点。例:POLYLINE(CLOSE=HHV(CLOSE,100),CLOSE,COLORR
26、ED); 表示在收盘价创100天新高点之间画折线。 PARTLINE(COND,DATA,COLOR)同POLYLINE。例:PARTLINE(HIGHREF(HIGH,1),HIGH,COLORRED); 表示当期最高价大于前期最高价用红色绘制最高价连线线段。 STICKLINE(C,P1,P2,Color,Empty)如果条件C满足时,从P1到P2画柱线,颜色为Color,如果Empty取1,则为空心柱;如果Empty取0,则为实心柱。例:STICKLINE(OPEN-CLOSE0,OPEN,CLOSE,COLORCYAN,0); 表示当开盘价大于收盘价时,从开盘价到收盘价画青色的实心柱,
27、即K线阴线的实体部分。 VERTLINE(COND,COLOR)画垂直线,当条件COND满足时,画垂直线。例:VERTLINE(HIGH=HHV(HIGH,30),COLORRED); 表示在价格创30天新高时画垂直线。 RGB(R,G,B)自定义颜色函数。R,G,B的数值范围都在0255之间,例:RGB(225,225,225)表示白色COLORSTICK 画彩色柱线 VOLUMESTICK 画成交量线 BAMBOOLINE 画竹线 CIRCLEDOT 画圆 OPISTICK 画持仓量柱线 8、颜色常数 常数意义COLORRED红色COLORGREEN绿色 COLORBLUE蓝色 COLOR
28、MAGENTA红紫色 COLORYELLOW黄色 COLORLIGHTGREY浅灰色COLORLIGHTRED浅红色COLORLIGHTGREEN浅绿色 COLORLIGHTBLUE浅蓝色 COLORBLACK黑色COLORWHITE白色 COLORCYAN青色9、level-2函数(只有嬴智版本支持) L2_BKTIMES周期内多头开仓次数。用法:L2_BKTIMES返回主动买入开仓的次数。L2_BPTIMES周期内多头平仓次数。用法:L2_BPTIMES返回主动买入平仓的次数。L2_SKTIMES周期内空头开仓次数。用法:L2_SKTIMES返回主动卖出开仓的次数。 L2_SPTIMES周期内空头平仓次数。用法:L2_SPTIMES返回主动卖出平仓的次数。 L2_BIDACCOUNT周期内主动买入的次数,包含买开和买平。用法:L2_BIDACCOUNT返回买主动次数。注:L2_BIDACCOUNT= L2_BKTIMES+ L2_BPTIMES L2_ASKACCOUNT周期内主动卖出的次数,包含卖开和卖平。用法:L2_ASKACCOUNT返回卖主动次数。注:L2_ASKACCOUNT=L
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1