1、编辑平台支持的函数1。引用数据AVPRICE引用均价(在盘后对于国内三个期货交易所指结算价)CLOSE引用收盘价(在盘中指最新价)HIGH引用最高价LOW引用最低价OPEN引用开盘价OPI引用持仓量REF(X,N)引用X在N个周期前的值例:REF(CLOSE,5);表示引用当前周期前第5个周期的收盘价REFX(X,N)引用N个周期后的数据.(N为大于等于1的整数)(未来函数)例:REFX(CLOSE,5);表示引用自当前周期后第5个周期的收盘价SETTLE引用结算价(只有盘后才能引用当日的结算价)VOL引用成交量2.金融统计BACKSET(X,N)若X非0,则将当前位置到N周期前的数值设为1。
2、例:BACKSET(CLOSEOPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1BARSLAST(X)求上一次条件成立到当前的周期数。COUNT(X,N)表示统计在N周期内满足X条件的周期数。如果N为0则表示从第一天开始算起。例: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)(1A) X(N)*A 其中DMA(N-1)为第(N1)天的DMA值EMA(X,
3、N)表示求X在N周期内的平滑移动平均。(指数加权)计算方法:EMA(X,N)=2X (N1)*EMA(N-1)/(N 1) 其中EMA(N1)为第(N1)天的EMA值EMA2(X,N)表示求X在N周期内的加权平均。(线性加权)计算方法:EMA2(N)=(N*X0 (N-1)X1 (N2)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周期内的最高值位置到当前的周期数。如
4、果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,C)之字转向(未来
5、函数),当C取1,P为百分比数;当C取0,P为价位差值。例:ZIGZAG(HIGH,10,1);表示最高价的10%的之字转向ZIGZAG(MA(HIGH,34),100,0);表示34个周期内最高价均线的100个价位的之字转向PEAK(X,P,M,C)取得ZIGZAG前M个波峰的值.其中X为数据,P为转折值(如果C为1的话,这个值为百分比,否则为绝对值),M为大于等于1的整数。(未来函数)例:PEAK(HIGH,10,1,1);表示最高价的10的之字转向的上一个波峰的数值 PEAK(MA(HIGH,34),100,1,0);表示34个周期内最高价均线的100个价位的之字转向的上一个波峰的数值P
6、EAKBARS(X,P,M,C)取得ZIGZAG前M个波峰到当前周期的周期数。(未来函数)例:PEAKBARS(HIGH,10,1,1);表示最高价的10的之字转向的上一个波峰到当前的周期数 PEAKBARS(MA(HIGH,34),100,1,0);表示34个周期内最高价均线的100个价位的之字转向的上一个波峰到当前的周期数TROUGH(X,P,M,C)取得ZIGZAG前M个波谷的值。(未来函数)例:TROUGH(LOW,10,1,1);表示最低价的10的之字转向的上一个波谷的数值 TROUGH (MA(LOW,34),100,1,0);表示34个周期内最低价均线的100个价位的之字转向的上
7、一个波谷的数值TROUGHBARS(X,P,M,C)取得ZIGZAG前M个波谷到当前周期的周期数 (未来函数)TROUGHBARS(LOW,10,1,1);表示最低价的10%的之字转向的上一个波谷到当前的周期数 TROUGHBARS(MA(LOW,34),100,1,0);表示34个周期内最低价均线的100个价位的之字转向的上一个波谷到当前的周期数SAR(N, Step, Max)得到抛物转向值。N为计算周期,Step为步长,Max为极值。例:SAR(17,3,30);表示计算17个周期抛物转向,步长为3%,极限值为30SMA(X,N,M)得到X在N个周期内的移动平均,M为权重。计算方法:SM
8、A(N)=SMA(N-1)*(NM)/N X(N)*M/NSUM(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周期线性回归预测值。例:FOR
9、CAST(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-1014)五天内的A0605收盘价为例,N就为5.数列的内容为:2766,2805,2814,2886,2885. 1、算术平均值MA(CLOSE,5):数据总和除以总个数N。
10、 (2766 2805 2814 2886 2885)/5=2831.20.可以用公式MA(CLOSE,5),从今天的值上看出. 2、偏差:每个数据,减去算术平均值的结果。 27662831。20=-65。2, 28052831。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):将偏差的平方相加。
11、 (-65.2)? (-26.2)? (-17。2)? (54。8)? (53.8)?=11130.80 5、总体样本方差VARP(X,N):将偏差的平方相加,总和除以总个数N.用公式可以这样算: (-65。2)? (-26.2)? (-17.2)? (54.8)? (53。8)?/5=2226。16 6、样本方差VAR(X,N):是总体方差的N/(N1)倍。 2226。165/(5-1)=2782。70 估算样本方差,总比总体样本方差大一点,当N够大时,两者趋于相等。 7、总体标准差STDP(X,N):方差的开方。 (-65。2)? (26.2)? (17。2)? (54。8)? (53.8
12、)?/5?=47.18 8、标准差STD(X,N):估算样本方差的开方。 2226.16*5/(51)?=52.75 同样,估算标准差也比总体标准差大一点,当N够大时,两者趋于相等.4.逻辑判断BETWEEN(A,B,C)判断A是否位于B及C之间,如果A介于B,C之间则返回1,否则返回0。例:BETWEEN(CLOSE,MA5,MA40); 表示收盘价介于5日均线与40日均线之间CROSS(X,Y)如果X上穿Y则返回1(yes),否则返回0(no)。例:CROSS(CLOSE,MA(CLOSE,5));表示收盘线从下方向上穿过5日均线EXIST(COND,N)判断过去N个周期内是否有满足条件C
13、OND.例:EXIST(CLOSEREF(HIGH,1),10);表示10个周期中是否存在收盘价大于前一个周期的最高价EVERY(COND,N)判断过去N个周期内是否一直满足条件COND。例:EVERY(CLOSEOPEN,5);表示5个周期内一直是阳线LAST(COND,N1,N2)判断过去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);表示
14、收盘线在10日均线之下持续20周期后从下向上穿过10日均线NOFILTER信号过滤函数。公式后加“NOFILTER;”是指不需要过滤,出现任何交易指令都会执行。公式后不加“NOFILTER;是指当连续出现同方向的交易指令时,系统只显示出第一个交易指令,其他交易指令自动被过滤。IF(C,A,B)如果C成立返回A,否则返回B。例:IF(CLOSEREF(CLOSE,1),1,0);表示若今日收盘价高于前一日收盘价,则返回1,否则返回0ISDOWN如果该周期收阴则返回1,否则返回0.ISEQUAL如果该周期平盘则返回1,否则返回0。ISUP如果该周期收阳则返回1,否则返回0。ISLASTBAR取得当
15、前周期是否为最后一根K线。最后一个周期返回值为1,其余为0。VALUEWHEN(COND,DATA)当条件COND满足时,取当时的DATA的值,否则取得VALUEWHEN的前一个值。例:VALUEWHEN(HIGHREF(HIGH,5),HIGH);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价5。数学运算ABS(X)求X的绝对值.例:ABS(CLOISE-10) 返回收盘价和10的价差的绝对值ACOS(X)求X的反余弦值。ASIN(X)求X的反正弦值。ATAN(X)求X的反正切值。CEILING(X)向上舍入。返回沿X数值增大方向最接近的整数.COS(X)返回X的余弦值.EXP(
16、X)表示求e的X次幂。FLOOR(X)向下舍入。返回沿X数值减小方向最接近的整数。INTPART(X)取X的整数部分。INTPART(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);表示若收盘价大于开盘价返回它们的差值,否则返回0MIN(A,B)求A,B中的较小者。例:MIN(OPEN,CLOSE);返回开盘价和收盘价中的较小值MOD(
17、A,B)返回A对B得到模。例:MOD(CLOSE,OPEN);收盘价除以开盘价所得余数NOT(X)当X为0时返回1,否则返回0。例:NOT(TIME=0905);表示该周期对应的时间不是9:05AMPOW(A,B)得到A的B次幂。例:POW(CLOSE,2);求得收盘价的2次方REVERSE(X)取反。例:REVERSE(LOW);返回LOWSGN(X)得到X的符号,如果X0则返回1,如果X0则返回1,否则返回0.SIN(X)得到X的正弦值.SQRT(X)得到X的平方根。例:SQRT(CLOSE);收盘价的平方根SQUARE(X)得到X的平方。例:SQUARE(CLOSE);收盘价的平方TAN
18、(X)得到X的正切值。时间函数BARPOS取得当前K线的位置。DATE取得当前周期的日期数(700101341231)。DAY取得当前周期的日数(1-31)。HOUR取得当前周期的小时数(0-23).MINUTE取得当前周期的分钟数(059)。MONTH取得当前周期的月数(112).TIME取得当前周期的时间数(02359)。WEEKDAY取得当前周期的星期数(06)。YEAR取得当前周期的年数(1970-2034)。7.绘图DRAWLINE(C1,P1,C2,P2, COLOR)当条件C1及C2均满足时,从P1画直线到P2,颜色为COLOR.例:DRAWLINE(MA18 CLOSE,OPE
19、N,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.11.08,HIGH,(CLOSOPEN)/OPEN100,2,COLORRED); 表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。FILLRGN(COND,DATA1,DATA2,COLOR)填充区域,当条件COND满足时,填充DATA1及DATA
20、2包围的区域。例:FILLRGN(MA5MA10,MA5,MA10,COLORRED); 表示MA5MA10时以红色填充MA5和MA10之间的区域。POLYLINE(COND,DATA,COLOR)画折线,当条件COND满足时,连接各个DATA点。例:POLYLINE(CLOSE=HHV(CLOSE,100),CLOSE,COLORRED); 表示在收盘价创100天新高点之间画折线。PARTLINE(COND,DATA,COLOR)同POLYLINE。例:PARTLINE(HIGHREF(HIGH,1),HIGH,COLORRED); 表示当期最高价大于前期最高价用红色绘制最高价连线.STIC
21、KLINE(C,P1,P2,Color,Empty)如果条件C满足时,从P1到P2画柱线,颜色为Color,如果Empty不为0,则为空心柱,否则为实心柱。例:STICKLINE(OPENCLOSE0,OPEN,CLOSE,COLORCYAN,0); 表示当开盘价大于收盘价时,从开盘价到收盘价画青色的实心柱,即K线阴线的实体部分。VERTLINE(COND,COLOR)画垂直线,当条件COND满足时,画垂直线。例:VERTLINE(HIGH=HHV(HIGH,30),COLORRED); 表示在价格创30天新高时画垂直线。编辑平台支持的操作符操作符意义例加法CLOSEOPEN 表示求收盘价及开
22、盘价的和。 CLOSEOPEN 表示求收盘价及开盘价的差。 CLOSE*OPEN 表示求收盘价及开盘价的积。 CLOSE/OPEN 表示求收盘价及开盘价的商。减法乘法/除法&与(并且)CLOSEOPEN 表示判断当前周期是否收阳。 CLOSE=OPEN 表示判断当前周期是否平盘.|或(或者)大于小于=大于等于=小于等于不等于=等于操作符:=只定义一个局部变量(这个变量在画图时是不画的)TMP1:=(OPEN CLOSE)/2; MA(TMP1,10); 上面的公式的第一个语句定义了一个局部变量TMP1,在下面一行中引用了这个局部变量,但是要注意的是这个公式在画图的时候只画了第二条语句所求出的结
23、果。 相反下面这个公式则需要画出两条线,第一条是自己定义的均价线,同时显示了均价的名称为AVP,第二条线是均价的简单移动平均线. AVP:(OPEN CLOSE)/2; MA(AVP,10);:声明了一个变量,在画图时画出它并且按这个名字显示。编辑平台可以使用的常数常数意义COLORRED红色COLORGREEN绿色COLORBLUE蓝色COLORMAGENTA红紫色COLORYELLOW黄色COLORLIGHTGREY浅灰色COLORLIGHTRED浅红色COLORLIGHTGREEN浅绿色COLORLIGHTBLUE浅蓝色COLORBLACK黑色COLORWHITE白色COLORCYAN青
24、色COLORSTICK画彩色柱线VOLUMESTICK画成交量线BAMBOOLINE画竹线CIRCLEDOT画圆OPISTICK画持仓量柱线注意:在公式内即使你定义了某种颜色,在显示的时候也未必是此种颜色,取决于背景颜色当前页面里是否保了该指标的颜色及您是否在显示的时候改变了该指标的颜色设置。 编辑平台的语法1。关于公式名称:公式的名称不可以和已经存在的公式重复。 2.关于参数:每个自编公式最多可以定义四个参数,参数的定义如下, 首先是参数名称,然后是参数的最小值,最大值,最后是参数的默认值.在定义参数时要注意的是参数名称不可以重复. 3。关于变量名称:变量名称不可以互相重复,不可以和参数名重
25、复,不可以和函数名称重复. 4。关于公式内容:公式的每个语句应该以分号结束,包括最后一条语句.在数据公式的时候请您注意一定要使用半角输入。 在编写公式的过程中,如果您不记得某个函数的确切写法,可以选择插入函数来插入函数。 5。如果您在编写公式之后,想给这个公式加上注释,说明之类的东西,可以使用公式说明来输入。 编辑平台使用的交易指令交易模型中的交易指令如下: 图示指令意义BK 或 BUY买开指令BP买平指令SK卖开指令SP 或 SELL卖平指令BPK买平同时等价等量买开指令SPK卖平同时等价等量卖开指令套利模型中的交易指令如下: 图示指令意义BKSK甲合约买开;乙合约卖开信号BPSP甲合约买平
26、;乙合约卖平信号SKBK甲合约卖开;乙合约买开信号SPBP甲合约卖平;乙合约买平信号请注意,在效果测试使用如下机制:连续的开仓指令只使用第一个指令进行开仓,开仓时使用当时的全部资金,连续的平仓指令,只有第一个有效,平掉当时的全部持仓,其他的平仓指令算做错误指令!快速入门1、如何把熟悉的技术指标转换成交易模型?第一步:把KDJ指标公式COPY过来。 RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)LLV(LOW,N)100;算出(收盘价-N周期内的最低价)/(N周期的最高价N周期内的最低价)*100的值,用RSV来表示。BACKGROUNDSTYLE(1);确定背景的样式,
27、钝化) K:SMA(RSV,M1,1),COLORWHITE;RSV的移动加权平均的值用K表示,并且画白色的线。D:SMA(K,M2,1),COLORYELLOW;K的移动加权平均的值用D表示,并且画黄色的线。 J:3*K-2*D,COLORMAGENTA;3倍的K减去2倍的D的值用J表示,并且画紫色的线。 第二步:原有公式主要是画线,所以稍作修改。如下: RSV:=(CLOSELLV(LOW,N))/(HHV(HIGH,N)LLV(LOW,N))*100;第一行不需要修改 第二行删除,在交易模型中不用钝化 K:=SMA(RSV,M1,1); 在“:后加上“=”变为只定义不用画线,所以把后面的
28、颜色函数(COLORWHITE)也去掉 D:=SMA(K,M2,1);同上 J:=3*K-2D;同上 第三步:把自己总结的交易条件写上,就可完成交易模型.如下: RSV:=(CLOSELLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:=SMA(RSV,M1,1); D:=SMA(K,M2,1); J:=3K2*D; CROSS(K,D),BK;K向上穿越D,发出买开交易指令 CROSS(J,100),SP;J向上穿越100,发出卖平交易指令 CROSS(D,K),SK;K向下穿越D,发出卖开交易指令 CROSS(0,J),BP;J向下穿越0,发出买平交易指
29、令 内为文字说明,编写模型时不用写出2、如何编制交叉(金叉/死叉)类型的交易模型?MA5:=MA(CLOSE,5);5个周期收盘价的简单移动平均MA10:=MA(CLOSE,10);10个周期收盘价的简单移动平均 MA20:=MA(CLOSE,20);20个周期收盘价的简单移动平均CROSS(MA10,MA20),BK;当MA10上穿MA20时,发出买入开仓交易指令 CROSS(MA10,MA5),SP;当MA10上穿MA5时,发出卖出平仓交易指令CROSS(MA20,MA10),SK;当MA20上穿MA10时,发出卖出开仓交易指令 CROSS(MA5,MA10),BP;当MA5上穿MA10时
30、,发出买入平仓交易指令 内为文字说明,编写模型时不用写出 3、如何编制多条件类型的交易模型?RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:=SMA(RSV,3,1); D:=SMA(K,3,1); J:=3*K2D;以上为KDJ公式MA5:=MA(CLOSE,5); MA10:=MA(CLOSE,10);以上为定义5个周期收盘价的简单移动平均和10个周期收盘价的简单移动平均 (CROSS(MA5,MA10)&REF(J,1)70)|(CROSS(K,D)&J70,SP;KD出现死叉并且前一个周期J值大于70时发出卖出平仓交易指令
31、 (CROSS(MA10,MA5)&REF(J,1)30)|(CROSS(D,K)&J70),SK;5周期均线下叉10周期均线并且前一个周期的J值(KDJ)大于30或者KD死叉时并且J值大于70时发出卖出开仓交易指令CROSS(K,D)REF(J,1)30,BP;KD出现金叉并且前一个周期J值小于30时发出买入平仓交易指令 内为文字说明,编写模型时不用写出4、如何编制REF(X,N)类型的交易模型?A:=OPEN-((REF(HIGH,1)-REF(LOW,1)) (REF(HIGH,2)REF(LOW,2) (REF(HIGH,3)REF(LOW,3) (REF(HIGH,4)-REF(LO
32、W,4))/4)1.8;A=当前周期的开盘价 - (一个周期前的最高价减最低价的差 两个周期前的最高价减最低价的差 三个周期前的最高价减最低价的差 四个周期前的最高价减最低价的差)/4*1.8 REF(CLOSE,1) REF(CLOSE,2)&REF(CLOSE,2) REF(CLOSE,3)&REF(CLOSE,3)A,BPK;连续四个周期的收盘价小于前一周期的收盘价并且当前周期的收盘价大于A时,发出买平并且买开(反手)交易指令REF(CLOSE,1)REF(CLOSE,2)&REF(CLOSE,2) REF(CLOSE,3)&REF(CLOSE,3)REF(CLOSE,4)&CLOSE8
33、,BK;5周期均线上穿10周期均线或者收盘价与5周期均线的差值大于8时,发出买入开仓交易指令 (CLOSE-MA5)6,SP;收盘价与5周期均线的差值大于6时,发出卖出平仓交易指令内为文字说明,编写模型时不用写出6、如何编制简单价差类型的套利模型?CROSS(300,CLOSE),BKSK; CLOSE为两个品种的价差。当价差小于300时,买入开仓前一品种,卖出开仓后一品种 CROSS(CLOSE,500),SPBP;当价差大于500时,卖出平仓前一品种,买入平仓后一品种CROSS(CLOSE,600),SKBK;当价差大于600时,卖出开仓前一品种,买入开仓后一品种CROSS(400,CLOSE),BPSP;当价差小于400时,买入平仓前一品种,卖出平仓后一品种内为文字说明,编写模型时不用写出7、如何编制组合类型的套利模型?RSV:=(CLOSELLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)100; K:=SMA(RSV,M1,1); D:=SMA(K,M2,1); J:=3K-2*D;以上为KDJ公式CLOSE600&CROSS(D,K),SKBK;当价差大于600并且D上穿K时,卖出开仓前一品种,买入开仓后一品种CROSS(400,CLOSE)|CROSS(K,D),BPSP;当价差下穿400或者K上穿D时,买入平仓前一品种