您好,欢迎访问三七文档
编程举例■举例:1.MACD公式MACD公式有三个参数:SHORT(短期)、LONG(长期)、M天数,一般为12、26、10MACD公式的用法:①DIFF、DEA均为正,DIFF向上突破DEA,买入信号。②DIFF、DEA均为负,DIFF向下跌破DEA,卖出信号。③DEA线与K线发生背离,行情反转信号。④分析MACD柱状线,由红变绿(正变负),卖出信号;由绿变红,买入信号。其中:⑴DIFF线收盘价短期、长期指数平滑移动平均线间的差⑵DEA线DIFF线的M日指数平滑移动平均线⑶MACD线DIFF线与DEA线的差,彩色柱状线按照上述原理,MACD公式应该写成如下形式:参数表:参数名最小值最大值默认值SHORT54012LONG2010026M26010公式写成如下形式即可:DIFF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);DEA:=MA(DIFF,M);MACD:2*(DIFF-DEA);公式的第一行对应于⑴,公式的第二行对应于⑵,公式的第三行对应于⑶。2.KD公式:算法:对每一交易日求RSV(未成熟随机值)⑴RSV=(收盘价-最近N日最低价)/(最近N日最高价-最近N日最低价)×100⑵K线:RSV的M1日移动平均⑶D线:K值的M2日移动平均。参数:N、M1、M2天数,一般取9、3、3用法:①D70,超买;D30,超卖。②线K向上突破线D,买进信号;线K向下跌破线D,卖出信号。③线K与线D的交叉发生在70以上,30以下,才有效。④KD指标不适于发行量小,交易不活跃的股票;⑤KD指标对大盘和热门大盘股有极高准确性。参照KD公式算法,KD公式可以按照如下方式来编写。参数表:参数名称最小值最大值缺省值N11009M12403M22403公式的内容如下:RSV:=(CLOSE-LLV(CLOSE,N))/(HHV(CLOSE,N)-LLV(CLOSE,N))*100;K:SMA(RSV,M1,1);D:SMA(RSV,M2,1);3.K线:算法略。公式如下:TMP:=OPEN-CLOSE;DRAWLINE(TMP0.00001,HIGH,TMP0.00001,OPEN,COLORCYAN);DRAWLINE(TMP0.00001,LOW,TMP0.00001,CLOSE,COLORCYAN);DRAWLINE(TMP-0.00001,HIGH,TMP-0.00001,CLOSE,COLORRED);DRAWLINE(TMP-0.00001,LOW,TMP-0.00001,OPEN,COLORRED);DRAWLINE(ABS(TMP)0.00001,LOW,ABS(TMP)0.00001,OPEN,COLORWHITE);DRAWLINE(ABS(TMP)0.00001,HIGH,ABS(TMP)0.00001,OPEN,COLORWHITE);STICKLINE(TMP0.00001,OPEN,CLOSE,COLORCYAN,0);STICKLINE(TMP-0.00001,OPEN,CLOSE,COLORRED,1);公式说明:第一行,当当前周期收阴时,从HIGH向OPEN画直线,颜色为COLORCYAN;第二行,当当前周期收阴时,从LOW向CLOSE画直线,颜色为COLORCYAN;第三行,当当前周期收阳时,从HIGH向CLOSE画直线,颜色为COLORRED;第四行,当当前周期收阳时,从LOW向OPEN画直线,颜色为COLORRED;第五行,当当前周期平盘时,从LOW向OPEN画直线,颜色为白色;第六行,当当前周期平盘时,从HIGH向OPEN画直线,颜色为白色;第七行,当当前周期收阴时,从OPEN向CLOSE画实心柱线,颜色为COLORCYAN;第八行,当当前周期收阳时,从OPEN向CLOSE画空心柱线,颜色为COLORRED。交易模型中的交易指令期货交易指令买开公式中用BK表示买平公式中用BP表示卖开公式中用SK表示卖平公式中用SP表示买平后买开新仓公式中用BPK表示卖平后卖开新仓公式中用SPK表示股票、权证、外汇交易指令买入公式中用BUY表示卖出公式中用SELL表示套利模型中的交易指令第一腿买开,第二腿卖开公式中用BKSK表示第一腿卖开,第二腿买开公式中用SKBK表示第一腿买平,第二腿卖平公式中用BPSP表示第一腿卖平,第二腿买平公式中用SPBP表示外盘指令建仓多头公式中用BUYLONG表示建仓空头公式中用SELLSHOT表示多头清仓公式中用EXITLONG表示空头清仓公式中用EXITSHOT表示自编公式支持的操作符操作符意义例+加法CLOSE+OPEN表示求收盘价及开盘价的和。CLOSE-OPEN表示求收盘价及开盘价的差。CLOSE*OPEN表示求收盘价及开盘价的积。CLOSE/OPEN表示求收盘价及开盘价的商。-减法*乘法/除法&&与(并且),也可简写为AND||或(或者),也可简写为OR大于CLOSEOPEN表示判断当前周期是否收阳。小于CLOSE=OPEN表示判断当前周期是否平盘。=大于等于=小于等于不等于=等于操作符:=只定义一个局部变量(这个变量在画图时是不画的)TMP1:=(OPEN+CLOSE)/2;MA(TMP1,10);上面的公式的第一个语句定义了一个局部变量TMP1,在下面一行中引用了这个局部变量,但是要注意的是这个公式在画图的时候只画了第二条语句所求出的结果。相反下面这个公式则需要画出两条线,第一条是自己定义的均价线,同时显示了均价的名称为AVP,第二条线是均价的简单移动平均线。AVP:(OPEN+CLOSE)/2;MA(AVP,10);:声明了一个变量,在画图时画出它并且按这个名字显示。编辑平台的语法1.关于公式名称:公式的名称不可以和已经存在的公式重复。2.关于参数:每个自编公式最多可以定义六个参数,参数的定义如下,首先是参数名称,然后是参数的最小值,最大值,最后是参数的默认值。在定义参数时要注意的是参数名称不可以重复。3.关于变量名称:变量名称不可以互相重复,不可以和参数名重复,不可以和函数名称重复。4.关于公式内容:公式的每个语句应该以分号结束,包括最后一条语句。在数据公式的时候请您注意一定要使用半角输入。在编写公式的过程中,如果您不记得某个函数的确切写法,可以选择插入函数来插入函数。5.如果您在编写公式之后,想给这个公式加上注释、说明,可以点击公式名称后面的“公式说明”,在弹出窗口中输入。6.IFELSE(C,A,B)如果条件C成立则返回A值,否则返回B值例:IFELSE(CLOSEREF(CLOSE,1),1,0);表示若今日收盘价高于前一日收盘价,则返回1,否则返回0自编公式支持的函数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,N)引用N个周期后的数据。(N为大于等于1的整数)『未来函数』例:REFX(CLOSE,5);表示引用自当前周期后第5个周期的收盘价本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!MINPRICE返回某品种的最小变动价位。用法:MINPRICE(CODE);返回CODE所对应合约的最小变动价位。CODE文华码或交易代码。例:MINPRICE('IF1107');表示返回IF1007的最小变动价位。注意:某些合约(如橡胶指数)查不到最小变动价位,返回0。VOL求成交量,也可简写为V。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(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-2)*X2+...+1*XN-1)/(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个周期内的简单移动平均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/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周期线性回归预测值。例:FORCAST(CLOSE,5);表示求5周期线性回归预测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):数据
本文标题:文华财经程序化相关
链接地址:https://www.777doc.com/doc-6168770 .html