1、(一)简介(二)函数分类1、引用数据AVPRICE引用均价(在盘后对于国内三个期货交易所指结算价)SETTLE引用结算价(如果用在周期小于日的K线上如5分钟K线,一小时k线,每根k线返回的值表示这根k线当日开盘时到这根k线的为止的结算价(均价)如果用在周期大于等于日的K线上,返回当根K线结束时间所在日的结算价。)CLOSE引用收盘价(在盘中指最新价),也可简写为C。HIGH引用最高价,也可简写为H.LOW引用最低价,也可简写为L。OPEN引用开盘价,也可简写为O。OPI引用持仓量REF(X,N)引用X在N个周期前的值例:REF(CLOSE,5);表示引用当前周期前第5个周期的收盘价REFX(X
2、,N)引用N个周期后的数据。(N为大于等于1的整数)未来函数例:REFX(CLOSE,5);表示引用自当前周期后第5个周期的收盘价VOL引用成交量,也可简写为V。GETPRICE(N)根据文华码取出某一品种的最新价.例子:GETPRICE(1209);返回文华码为1209的合约品种的最新价.2、金融统计BACKSET(X,N)若X条件成立,则将当前位置到N周期前的数值设为1。未来函数例:BACKSET(CLOSEOPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1该函数参数支持变量计算如BACKSET(CLOSEOPEN,VAR1);/VAR1是变量BARSLAST(X)求上一次
3、条件成立到当前的周期数.例:BARSLAST(X):上一次满足X条件到现在的K线根数.如果本根K线满足X条件,则BARSLAST(X)返回0。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,N)返回X的动态移动平均,其中N必须介于0及1之间。计算方法:DMA(N)=DMA(N1)*(1-A)+X(N)*A其中DMA(N-1)为第(N1)天的DMA值。EMA(X,N
4、)表示求X在N周期内的平滑移动平均。(指数加权)计算方法:EMA(X,N)=2X+(N-1)EMA(X,(N1)/(N+1)其中EMA(X,(N1)为第(N-1)天的EMA值。EMA2(X,N)表示求X在N周期内的加权平均.(线性加权)计算方法:EMA2(X,N)=(NX0+(N-1)*X1+(N-2)*X2+。.。+1XN)/(N+(N-1)+(N2)+.。+1),X0表示本周期值,X1表示上一周期值。HHV(X,N)得到X在N周期内的最高值,如果N0,则从本地数据的第一个有效周期开始算起。例:HHV(HIGH,13);求13个周期内的最高价的最大值。HHVBARS(X,N)得到X在N周期内
5、的最高值位置到当前的周期数.如果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在
6、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
7、),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为数据,
8、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%的之字转向的上一个波谷到当前的周期数。T
9、ROUGH (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)(NM)/N+X(N)M/N。SUM(X,N)得到X在N周期内的总和,如果N=0,则从第一个有效周期开始算起。例: SUM(VOL,10)
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周期线性回归线的斜
11、率STD(X,N)得到X在N周期内的标准差STDP(X,N)得到X在N周期内的总体标准差VAR(X,N)得到X在N周期内的样本方差VARP(X,N)得到X在N周期内的总体样本方差数理统计举例说明:设一个数列,数列中数据的总个数为N,以今天(20051014)五天内的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、偏差:每个数据,减去算术平均值的结果. 276
12、6-2831。20=-65.2, 28052831。20=26。2, 2814-2831.20=-17。2, 28862831.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.
13、用公式可以这样算: (-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。165/(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.165/(5-1)?=52。75 同样,估算标准差也比总体标准差大一点,当N够大
14、时,两者趋于相等.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(CLOSEREF(HIGH,1),10);表示10个周期中是否存在收盘价大于前一个周期的最高价EVERY(COND,N)判断过去N个周期内是否一直满足
15、条件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);表示收盘线在10日均线之下持续20周期后从下向上穿过10日均线。NOFILTER交易模型买卖指令信号过滤函数。(仅适用于交易模型的过滤)设置模型对产生的交易指令不过滤,则出现的任
16、何交易指令都会执行,如果没有设置“不过滤”,则产生的指令将按照如下规则过滤:1。连续的同方向指令只有第一个有效,其他的将被过滤;2.交易指令必须配对出现(例如:前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被滤掉。这也就意味着,第一个指令只能是买开或者卖开指令,其他的都被过滤);3。但是在进行模型效果测试及优化时,无论设置过滤与否,都按照前面的规则对指令进行了过滤。IFELSE(C,A,B)(08版等以前版本里用IF函数表示)。如果条件C成立则返回A值,否则返回B值.例:IFELSE(CLOSEREF(CLOSE,1),1,0);表示若今日收盘价高于前一日收盘价,则返回1,否则返
17、回0ISDOWN判断该周期是否收阴。ISEQUAL判断该周期是否平盘。ISUP判断该周期是否收阳。ISLASTBAR判断当前周期是否为最后一根K线。例:ISLASTBAR; 如果是最后一个K线返回1(Yes),否则返回0(No)。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
18、。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
19、-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的符号,如果X0则返
20、回1,如果X0则返回1,否则返回0.SIN(X)得到X的正弦值。SQRT(X)得到X的平方根。例:SQRT(CLOSE);收盘价的平方根。SQUARE(X)得到X的平方.例:SQUARE(CLOSE);收盘价的平方。TAN(X)得到X的正切值.6、时间函数BARPOS取得当前K线的位置。DATE取得当前周期的日数(700101341231)。DAY取得当前周期的日数(131)。HOUR取得当前周期的小时数(0-23)。MINUTE取得当前周期的分钟数(059)。MONTH取得当前周期的月数(112)。TIME取得当前周期的时间数(0-2359),秒级周期返回值范围为:0235959。WEEKD
21、AY取得当前周期的星期数(06)。YEAR取得当前周期的年数(19702034)。7、绘图DRAWLINE(C1,P1,C2,P2,COLOR)当条件C1及C2均满足时,从P1画直线到P2,颜色为COLOR。例:DRAWLINE(MA18CLOSE,OPEN,MA5CLOSE,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,LO
22、W,注);表示连续两日收阴并且成交量比前一日至少多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,D
23、ATA,NUMBER,PRECISION,COLOR)画数字。当条件COND满足时,在DATA位置写数字NUMBER(为数组),精度为PRECISION(小数点后有几位数字)。例:DRAWNUMBER(CLOSE/OPEN1.08,HIGH,(CLOSEOPEN)/OPEN*100,2,COLORRED);表示当日涨幅大于8时在最高价位置显示涨幅(相对开盘价的百分比)。FILLRGN(COND,DATA1,DATA2,COLOR)填充区域,当条件COND满足时,填充DATA1及DATA2包围的区域.例:FILLRGN(MA5MA10,MA5,MA10,COLORRED);表示MA5MA10时以
24、红色填充MA5和MA10之间的区域.POLYLINE(COND,DATA,COLOR)画折线,当条件COND满足时,连接各个DATA点。例:POLYLINE(CLOSE=HHV(CLOSE,100),CLOSE,COLORRED);表示在收盘价创100天新高点之间画折线。PARTLINE(COND,DATA,COLOR)画线段,条件COND满足时,以COLOR颜色的直线连接DATA各点。例:PARTLINE(HIGHREF(HIGH,1),HIGH,COLORRED);表示当期最高价大于前期最高价用红色绘制最高价线段.STICKLINE(C,P1,P2,COLOR,EMPTY)如果条件C满足时
25、,从P1到P2画柱线,颜色为Color,如果Empty取1,则为空心柱;如果Empty取0,则为实心柱。例:STICKLINE(OPEN-CLOSE0,OPEN,CLOSE,COLORCYAN,0);表示当开盘价大于收盘价时,从开盘价到收盘价画青色的实心柱,即K线阴线的实体部分。VERTLINE(COND,COLOR)画垂直线,当条件COND满足时,画垂直线。例:VERTLINE(HIGH=HHV(HIGH,30),COLORRED);表示在价格创30天新高时画垂直线。8、08版本与09版本函数区别08版本函数09版本函数SETTLE日线周期只有盘后才能引用当日的结算价。其他周期计算结果等同于
26、AVPRICE引用结算价(如果用在周期小于日的K线上如5分钟K线,一小时k线,每根k线返回的值表示这根k线当日开盘时到这根k线的为止的结算价(均价)如果用在周期大于等于日的K线上,返回当根K线结束时间所在日的结算价.)BACKSET(X,N) 未来函数函数参数不支持变量计算函数参数支持变量计算如:BACKSET(CLOSEOPEN,VAR1);/VAR1是变量DMA函数参数不支持变量计算DMA(X,N)返回X的动态移动平均,其中N必须介于0及1之间.N 支持变量。计算方法:DMA(N)=DMA(N1)(1A)+X(N)A其中DMA(N1)为第(N1)天的DMA值。HHV(X,N)函数参数N不支
27、持变量计算函数参数N支持变量计算LLV(X,N)函数参数N不支持变量计算函数参数N支持变量计算COUNT(X,N)函数参数N不支持变量计算函数参数N支持变量计算09版本新增函数: GETPRICE(N)根据文华码取出某一品种的最新价.例:GETPRICE(1209);返回文华码为1209的合约品种的最新价。RGB(R,G,B)自定义颜色函数。R,G,B的数值范围都在0255之间,例:RGB(225,225,225)表示白色PARAM参数名称,最小值,最大值,缺省值在源码中定义参数。例:PARAMN,1,100,12MAN:MA(CLOSE,N);表示参数为N,最小值为1,最大值为100,缺省值
28、为12。IF(COND)A,COLOR;ELSEB, COLOR;条件循环函数。多层次循环时使用“”套用.例:取得MA5、MA10、MA30三者中最大的数值MA5:=MA(CLOSE,5);MA10:=MA(CLOSE,10);MA30:=MA(CLOSE,30);IF(MA5MA10)MA5,COLORRED;ELSEIF(MA10MA30)MA10,COLORMAGENTA;ELSEMA30,COLORGREEN;注意:区别于IFELSE函数,为了使多层次套用看的清楚,以上示例中将“”单独空行,实际使用中可以不必这样使用。IMPORT CODE,PERIOD,FORMULA AS VAR跨
29、周期、跨合约取数据函数.语句格式:#IMPORT CODE,PERIOD,FORMULA AS VARCODE 文华码(文华码见http:/www。wenhua。 其他期货品种代码表)PERIOD 被引用的周期 FORMULA 被引用指标名称例:引用豆粕1005合约日K线图周期的指标KDJ.FML 中K值、D值:IMPORT 1205,DAY,KDJ AS VARKDJK1:KDJ.K;D1:KDJ.D;注意点:1。只能引用一个当前存在的.FML文件(指标文件)中的变量,不支持同时引用多个指标和多个周期。2.只能引用如下周期 MIN1 MIN3 MIN5 MIN10 MIN15 MIN30 H
30、OUR1 HOUR3 HOUR8 DAY WEEK MONTH;3。只能短周期引用长周期指标数据,分钟周期上可引用小时、日周期数据,不能日线周期上加载引用分钟数据的指标;4.被引用的指标中不能存在引用。5.如果不写文华码,默认引用当前合约.模型注释符号在2009版本中修改为“/”。2008版本中模型注释语句使用在2009版本中时在前面增加/即可。(三)编辑平台可以使用的常数常数意义COLORRED红色COLORGREEN绿色COLORBLUE蓝色COLORMAGENTA紫色COLORYELLOW黄色COLORLIGHTGREY浅灰色COLORLIGHTRED浅红色COLORLIGHTGREEN
31、浅绿色COLORLIGHTBLUE浅蓝色COLORBLACK黑色COLORWHITE白色COLORCYAN青色COLORSTICK画彩色柱线VOLUMESTICK画成交量线BAMBOOLINE画竹线CIRCLEDOT画圆OPISTICK画持仓量柱线RGB(R,G,B)自定义颜色函数。R,G,B的数值范围都在0255之间.例:RGB(225,225,225)表示白色PARAM参数名称,最小值,最大值,缺省值在源码中定义参数.例:PARAMN,1,100,12MAN:MA(CLOSE,N);表示参数为N,最小值为1,最大值为100,缺省值为12.注意:在公式内即使你定义了某种颜色,在显示的时候也未
32、必是此种颜色,取决于背景颜色当前页面里是否保了该指标的颜色及您是否在显示的时候改变了该指标的颜色设置。欢迎交流:QQ:419549257Q群:138709040(四)编辑平台的语法1、关于公式名称:公式的名称不可以和已经存在的公式重复。2、关于参数:每个自编公式最多可以定义四个参数,参数的定义如下,首先是参数名称,然后是参数的最小值,最大值,最后是参数的默认值.在定义参数时要注意的是参数名称不可以重复。3、关于变量名称:变量名称不可以互相重复,不可以和参数名重复,不可以和函数名称重复。4、关于公式内容:公式的每个语句应该以分号结束,包括最后一条语句。在数据公式的时候请您注意一定要使用半角输入。
33、 在编写公式的过程中,如果您不记得某个函数的确切写法,可以选择插入函数来插入函数.5、如果您在编写公式之后,想给这个公式加上注释,说明之类的东西,可以使用公式说明来输入. (五)编辑平台使用的交易指令交易模型中的交易指令如下:图示指令意义 BK 买开指令 BP买平指令 SK卖开指令 SP卖平指令 BPK买平同时等价等量买开指令 SPK卖平同时等价等量卖开指令套利模型中的交易指令如下:图示指令意义 BKSK甲合约买开;乙合约卖开信号 BPSP甲合约买平;乙合约卖平信号 SKBK甲合约卖开;乙合约买开信号 SPBP甲合约卖平;乙合约买平信号请注意,在效果测试使用如下机制:连续的开仓指令只使用第一个
34、指令进行开仓,开仓时使用当时的全部资金,连续的平仓指令,只有第一个有效,平掉当时的全部持仓,其他的平仓指令算做错误指令!(六)快速入门1、如何把熟悉的技术指标转换成交易模型?第一步:把KDJ指标公式COPY过来。RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100;/算出(收盘价N周期内的最低价)/(N周期的最高价-N周期内的最低价)*100的值,用RSV来表示。BACKGROUNDSTYLE(1);确定背景的样式,(钝化)K:SMA(RSV,M1,1),COLORWHITE;/RSV的移动加权平均的值用K表示,并且画白色的线.D:SMA(K,M
35、2,1),COLORYELLOW;/K的移动加权平均的值用D表示,并且画黄色的线。J:3K2D,COLORMAGENTA;/3倍的K减去2倍的D的值用J表示,并且画紫色的线.第二步:原有公式主要是画线,所以稍作修改。如下:RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)LLV(LOW,N))*100;/第一行不需要修改/第二行删除,在交易模型中不用钝化K:=SMA(RSV,M1,1);/在“:后加上“=”变为只定义不用画线,所以把后面的颜色函数(COLORWHITE)也去掉D:=SMA(K,M2,1);/同上J:=3K2*D;/同上第三步:把自己总结的交易条件写上,就可完
36、成交易模型。如下:RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)LLV(LOW,N)*100;K:=SMA(RSV,M1,1);D:=SMA(K,M2,1);J:=3*K2*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,发出买平交易指令/后为文字说明,编写模型时不用写出2、如何编制交叉(金叉/死叉)类型的交易模型?MA5:=MA(CLOSE,5);/5个周期收盘价的简单移动平均MA1
37、0:=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时,发出买入平仓交易指令 /后为文字说明,编写模型时不用写出 3、如何编制多条件类型的交易模型?RSV:=(CLOSELLV(LOW,9))
38、/(HHV(HIGH,9)-LLV(LOW,9)100; K:=SMA(RSV,3,1); D:=SMA(K,3,1); J:=3K2*D;/以上为KDJ公式MA5:=MA(CLOSE,5); MA10:=MA(CLOSE,10);/以上为定义5个周期收盘价的简单移动平均和10个周期收盘价的简单移动平均 (CROSS(MA5,MA10)&REF(J,1)70)(CROSS(K,D)J30),BK;/5周期均线上穿10周期均线并且前一个周期的J值(KDJ)少于70或者KD金叉时并且J值小于30时发出买入开仓交易指令 CROSS(D,K)&REF(J,1)70,SP;/KD出现死叉并且前一个周期J
39、值大于70时发出卖出平仓交易指令 (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
40、))+(REF(HIGH,4)-REF(LOW,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(CLOS
41、E,3)REF(CLOSE,4)CLOSE=A,SPK;/连续四个周期的收盘价大于前一周期的收盘价并且当前周期的收盘价小于等于A时,发出卖平并且卖开(反手)交易指令内为文字说明,编写模型时不用写出 5、如何编制价差类型的交易模型?MA5:=MA(CLOSE,5);/5个周期收盘价的简单移动平均 MA10:=MA(CLOSE,10);/10个周期收盘价的简单移动平均 CROSS(MA10,MA5)|(CLOSE-MA5)8,SK;/10周期均线上穿5周期均线或者收盘价与5周期均线的差值大于8时,发出卖出开仓交易指令(MA5CLOSE)6,BP;/5周期均线与收盘价的差值大于6时,发出买入平仓交易
42、指令CROSS(MA5,MA10)(MA5CLOSE)8,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;/当价差大于60
43、0时,卖出开仓前一品种,买入开仓后一品种CROSS(400,CLOSE),BPSP;/当价差小于400时,买入平仓前一品种,卖出平仓后一品种7、如何编制组合类型的套利模型?RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)LLV(LOW,N))100; K:=SMA(RSV,M1,1); D:=SMA(K,M2,1);J:=3K2*D;/以上为KDJ公式CLOSE300CROSS(K,D),BKSK;/当价差小于300并且K上穿D时,买入开仓前一品种,卖出开仓后一品种CROSS(CLOSE,500)|CROSS(D,K),SPBP;/当价差上穿500或者D上穿K时,卖出平
44、仓前一品种,买入平仓后一品种CLOSE600&CROSS(D,K),SKBK;/当价差大于600并且D上穿K时,卖出开仓前一品种,买入开仓后一品种CROSS(400,CLOSE)CROSS(K,D),BPSP;/当价差下穿400或者K上穿D时,买入平仓前一品种,卖出平仓后一品种(七)技术指标模型大全1 ADTM模型DTM:=IFELSE(OPEN=REF(OPEN,1),0,MAX(HIGH-OPEN),(OPEN-REF(OPEN,1));DBM:=IFELSE(OPEN=REF(OPEN,1),0,MAX((OPEN-LOW),(OPENREF(OPEN,1)));STM:=SUM(DTM,N);SBM:=SUM(DBM,N);ADTM:=IFELSE(STMSBM,(STMSBM)/STM,IFELSE(STM=SBM,0,(STM-SBM)/SBM);ADTMMA:=MA(ADTM,M);ADTMMA