指标编写教程

来源:百度文库 编辑:神马文学网 时间:2024/04/29 03:34:10
自定义指标编写教程  [转帖 2009-4-25]    字号:大 中 小

教程

一,技术指标公式基础

技术指标公式编辑器是澎博软件公式系统的第一类编辑器,是最基础的编辑器,通过该编辑器将单调的数据行情转换成为有形的图形世界,转换成为易观察,视觉效果强烈的曲线,或者其它的图形,方便我们获取有益的信息.公式系统有以下特点: 用户只需要描述一个数据是如何计算的,公式系统就能将所有数据计算出来,并以曲线的形式显示出来. 公式系统以时间序列为基础,其计算对象是一组沿时间递增的数据序列,每一个时间周期包含一组数据,公式系统能对其中的任何数据进行操作.

1,技术指标公式界面内容

A:每一个指标公式必须有一个名称,这个名称由字母和数字组成,公式
名称在公式中必须是唯一的,公式名称最多15个字符.
B:公式描述是一段文字,用来简单描述该公式的含义,在公式列表时显
示这段文字,这段文字不宜过长.
C:主图叠加和副图选项定义了指标显示的位置,是在主图上与K线叠加
还是显示在副图上.
D:参数定义区:每一个公式可以设计所需的参数,参数用来替代公式中
所需要的常数,在使用时可以方便地调节参数,不必修改公式就可以对计算
方法进行调节.参数包括参数名称,最小值,最大值,缺省值,步进值五个
部分,参数名称用于标识参数,计算公式时采用缺省值计算,而最小值和最
大值是参数的调整范围,步进值一般取1.
E:密码,选中该栏目为指标公式加密.
F:指标公式,为公式编辑的文本区.
G:用法说明,主要用来描述一个公式如何使用,注意事项,计算方法,
判断方法等等.
2,技术指标公式编写格式和法则
所有的公式系统都是遵守统一的运算法则,统一的格式进行函数之间的
计算,只要我们掌握了技术指标公式的基本原理,其他的指标公式百变不离
其中.
例如我们在指标公式系统内写下公式:
A:=X+Y; B:=A/Z; C:=B*0.618;
分析以上公式,我们可以引出以下相关的格式和法则的结论:
A,数据引用:
a,数据来源
公式中的基本数据来源于接收的每日行情数据,这些数据有行情函数从
数据库中按照一定的方式提取,例如,高开低收,成交量,成交额等等.
b,数据类型
按照公式使用的数据类型,系统可以处理的数据分为两类:变量和常量.
所谓变量就是一个随着时间变化而变化的数据,例如成交量;常量就是
一个永远不变的数据.例如:每个函数需要的参数可能是变量也可能是常量,
不能随便乱用,函数计算的结果一般是一个变量.
例如计算收盘价均线MA(CLOSE,5),MA函数要求第一个参数为变量,
而CLOSE函数返回的正是一个变量;MA函数要求的第二个参数是常量,5就
是一个常量,所以我们就不能这样书写:MA(5,CLOSE).
B,特殊数据引用:
经常地编制公式的过程当中,需要使用另外一个指标的值,如果按照通
常的做法,重新编写过这个指标显得很麻烦,因此有必要学习使用如何调用
别的指标公式.
基本格式为:"指标,指标线"(参数)
a,指标和指标线之间用逗号分开,一个指标不一定只有一条指标线,所
以有必要在指标后标注指标线的名称,但是如果缺失则表示引用最后一条指
标线.
b,参数在表达式的末尾,必须用括号括起来,参数之间用逗号分开,通
过参数设置可以选择设定该指标的参数,如果参数缺失则表示使用该指标的
默认参数设置.
c,整个表达式用引号引在其中,除参数以外.
例如:"MACD,DEF"(26,12,9)表示计算MACD指标的DEA指标线,
计算参数为26,12,9,"MACD"(26,12,9)表示该指标的最后一条指标
线,计算参数是26,12,9,"MACD"表示该指标的最后一条指标线并且使用
公式的默认参数.
二,公式的构成
1,公式语句
所有的公式体由若干语句按照一定的格式组成,每个语句表示一个计算
结果,根据各个语句的功能分为两大类语句,一类是赋值语句,一类是中间
表达式.
A,赋值语句:在技术指标"B;A/Z"和"C;B*0.618"就是分别两条指
标线,语言间用分号隔开 .该语句被称为赋值语句,在技术指标当中,赋值
语句的计算结果将会被计算机执行并形成相应的图形.每个语句可以有一个
名称,该名称写在语句的最前面,并用一个冒号将它与语句分隔开.例如:
ST:MA(CLOSE,5);表示该语句求收盘价的五日均线,语句的名称为ST,
在该语句后的语句中可以直接用ST来替代MA(CLOSE,5),例如:MA(ST,
5)表示对收盘价的五日均线再求五日平均.
B,中间语句:
一个语句如果不需要显示,可以将它定义为中间语句,例如在上例当中
的第一句"A:=X+Y;",这样该语句就不会被系统辨认为是指标线了,中间
语句用":="替代冒号,其他与一般语句完全一样,使用中间语句可以有效
降低公式的书写难度,还可以将需要重复使用的语句定义成中间语句以减少
计算量.
每个公式最多可以分6个语句,中间公式数量没有限制,所有语句之间
需要使用分号隔开.
2,公式计算符
公式计算符将函数连接成为公式,计算分为算术计算符和逻辑计算苻.
A,算术计算符:包括+,-,*,/,它们分别对计算符两边的数据进行加
减乘除计算,这同一般意义上的算术计算没有差异.
B,逻辑计算苻:包括>,<,,≥,≤,=,AND,OR八种,分别
表示大于,小于,不等于,大于等于,小于等于,等于,逻辑与,逻辑或运
算,如果条件成立计算结果就等于1,否则等于0,例如:3+4等于7,4>3
就等于1,3≤12就等于0,"逻辑与"表示两个条件都成立时结果才成立;
"逻辑或"表示两个条件中只要有一个成立结果成立.例如,4>3AND12≥4
的结果等于1,4>3OR3>12的结果等于1.
3,线形描述符
对于技术指标公式可以在语句加上线形描述符,用来表示如何画该语句
描述的指标线.
线形描述符号包括以下7种.描述符写在语句后分号前,用逗号将它们
与语句分隔开,例如在上例当中加入一句线形描述符,C:B*0.618,
COLORSTICK;该语句在被执行时,会在图中添加色彩柱线,该功能在编制MACD
等指标的时候会显出它的用处.
柱状线 STICK
彩色柱状线,当值为正时显示虹色,否则显示绿色 COLORSTICK
为线形赋色,RED表示红色 COLORRED
为线形赋色,BLUE表示蓝色 COLORBLUE
为线形赋色,YELLOW表示黄色 COLORYELLOW
成交量柱状线,当股价上涨时显示红色空心柱,则显示绿
色实心柱
VOLSTICK
同时画出柱状线和指标线 LINESTICK
对线体的粗细作出描述 LINETHICK
小叉线 CROSSDOT
小圆圈线 CIRCLEDOT
小圆点线 POINTDOT
A,COLORRED等三个线形描述符还可以自定义颜色,格式为
COLOR+"BBGGRR";BB,GG,RR表示蓝色,绿色和红色的分量,每种颜色的
取值范围是00-FF,采用了16进制,例如:MA5:MA(CLOSE,5)COLOR00FFFF
表示纯红色与纯绿色的混合色;COLOR808000表示淡蓝色和淡绿色的混合色.
B,LINETHICK可以允许对线型的粗细进行自定义的描述,格式
"LINETHICK+(0/7)":参数的取值范围在0-7之间,"LINETHICK0"表示
最细的线,而"LINETHICK7"表示最粗的线.
三,指标公式编写技巧
1,同图绘制多条指标线
例一:同图绘制5日,10日,20日,和60日均线
指标原理:移动平均线(MA)是将一段时间的股票价格用数理统计的方法加以平
均,再将这些平均价标于图上并用线连接起来即可.它可以用来观察股价的趋势.
其中,一段时间常使用的有3日,6日,10日,12日,24日,30日等.移动平
均线可以用来确定这段时间持股的平均成本并使股民能据此判断行情.
计算方法
N日移动平均线=N日收市价之和/N
编写要点
均线指标是求股票收市价的移动平均线,函数CLOSE的功能是求当日收市价,函
数MA(X,N)的功能是求X的N日移动平均线,所以10日均线指标的公式这样
写:MA(CLOSE,10)
上面两个例子都是在一个图上只绘一条指标线如果您想在同一个图上绘多条指
标线,请看下图,做起来非常简单,您只需用分号将各指标公式隔开就行了,公
式这样写:
MA(CLOSE,5);
MA(CLOSE,10);
MA(CLOSE,20);
MA(CLOSE,60);
这个公式内部包含四个小公式,小公式间以分号隔开,我们称这种公式为组合公
式,可同图绘制多达16条指标线,我们可以为每一条指标线取一个名字,这样
就可以在图上区分它们.具体方法是在指标公式前写上名称并加一个冒号,如上
面所示.
用当一条指标线有了名字以后,其后面的指标线就可以将该指标线作为一个函数
来使用.请看下例,求收市价的5日移动平均价的10日移动平均线,写成:MA
(MA(CLOSE,5),10),若给收市价5日移动平均线取个名字,我们又能这样写:
MA5:MA(CLOSE,5);
MA(MA5,10);
与前者不同的是,后者同图绘出两条指标线.
2,函数的加减乘除和中间表达式
例一, 多空指数(BBI)
指标原理
是一种关于不同日数移动平均线的综合指标,长期以来理论界一直为中短期的移
动平均线采用多少天数而争论不休,从而衍生出了BBI指标.多空指数就是通过
几条不同日数的移动平均线加权平均的方法来解决这一问题.多空指数是将3
天,6天,12天,24天4种平均股价(或指数)相加后除以4得出的数值.
计算方法
BBI=(3日MA+6日MA+12日MA+24日MA)/4
编写要点
中间表达式之一:
MA的表达方式如上,假设我们需要引用一条均线,但是不需要显示出来,所以
在冒号后面加上等号将它们表达为中间表达式.
MA5:=MA(CLOSE,5);
中间表达式之二:
用当中一条指标线有了名字以后,其后面的指标线就可以将该指标线作为一个中
间表达式来使用.请看下例,求收市价的5日移动平均价的再次计算10日移动
平均线,写成:MA(MA(CLOSE,5),10)若给收市价5日移动平均线取个名字,
我们又能这样写:
MA5:MA(CLOSE,5);
MA(MA5,10);
与前者不同的是,后者同图绘出两条指标线,澎博软件中的计算符号同一般算术
符号相通,所以BBI计算如下:
指标内容和使用解析
MA3:=MA(CLOSE,5);
MA6:=MA(CLOSE,10);
MA12:=MA(CLOSE,20);
MA24:=MA(CLOSE,60);
BBI:(MA3+MA6+MA12+MA24)/4;
主图叠加指标
加6日平均价加12日平均价加24日平均价,其和除以四
用法:
a,同移动平均线
b,高价区收盘价跌破BBI线,卖出信号
c,底价区收盘价突破BBI线,买入信号
d,BBI线向上,股价在BBI线之上,多头势强
e,BBI线向下,股价在BBI线之下,空头势强
3,参数的使用
参数的引进目标在于方便我们在设计和优化指标的过程当中,以简单的方式改变
不同的周期,价位等等目标数据达到寻找到最优的参数数据.
例一,BIAS乖离率
指标原理
BIAS是运用股价指数与移动平均值的比值关系,观测股价偏离移动平均线的程
度,以此决定投资者的买卖行为.
计算方法
(当日收盘价―当日MA均线值)/当日MA均线值*100
编写要点
在参数表内设定好相应的3个参数,在澎博软件的公式系统内可以设置一共4
个参数,从最大值到最小值为参数的变动范围,缺省值为当前指标的取值.
参数名 最小值 最大值 缺省值
L1 1 100 6
L2 1 100 12
L3 1 100 24
注意:在澎博软件中的百分比的表达方式不可以是"%"而是"/100";
注意:以下的表达式中的函数嵌套关系的表达方法,不存在大括号,中括号等等,
全部是用小括号相互嵌套而成;
指标内容和使用解析
BIAS1:(CLOSE―MA(CLOSE,L1))/MA(CLOSE,L1)*100;
BIAS2:(CLOSE―MA(CLOSE,L2))/MA(CLOSE,L2)*100;
BIAS3:(CLOSE―MA(CLOSE,L3))/MA(CLOSE,L3)*100;
应用原则:偏离率与移动平均值一致时,偏率为0,偏离率为正值时,偏离率在
移动平均线上方,说明股市呈上升趋势;偏离率为负值时,偏离率在移动平均线
下方,说明股市有下跌趋势;Y值偏离移动移动平均线的界定范围大体在-15%至
15%,即:当Y值在0-15%时,可适当卖出股票,股价有可能反跌,当Y值在-15%-0
时,可适当买入股票,股价有可能反弹.
4,指标线形设计
在澎博软件当中为了突出一些指标的显示效果,设计了一套指标线形用于指标的
特殊表现形式.
例一,MACD(柱线的编写实例)
指标原理:MACD是根据移动平均线较易掌握趋势变动的方向之优点所发展出来
的,它是利用二条不同速度(一条变动的速率快--短期的移动平均线,另一条较
慢--长期的移动平均线)的指数平滑移动平均线来计算,二者之间的差异状况
(DIF)作为研判行情的基础,然后再求其DIF之9日平滑移动平均线,即MACD
线,MACD实际就是运用快速与慢速移动平均线聚合与分离的征兆,来研判买进
与卖出的时机和讯号.
计算方法:EMA:指数平滑移动平均线
N:周期
DIFF:乖离率
DEA:离差平均值
移动平均线(12日EMA)=前一日EMA*/1-2/(N+1)+今日收盘价*2/(N+1)
注:a,第一日的EMA取第一日的收盘价
b,在一般情况下,快速EMA选12日,慢速EMA取26日.计算得出的DIFF与
DEA为正值或负值,因而形成在0轴上下移动的两条快速与慢速线.
编制要点:在函数中可以查到移动平均线的函数表达式为EMA(X,M)所以应先
行计算出快速移动平均线(12日EMA)与慢速移动平均线(26日EMA),并以这
两个数值,作为测量两者(快速与慢速线)间的"差离值"依据,所谓"差离值"
(DIFF),即12日EMA的数值减去26日EMA的数值,然后将参数M天内的DIFF
的移动平均线的值计算出来.
参数名 最小值 最大值 缺省值
LONG 20 100 26
SHORT 5 40 12
M 2 60 9
DIFF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:EMA(DIFF,M);
MACD:2*(DIFF-DEA),COLORSTICK;
在最后一句话当中,2是实际一个常数参数,它在这里的作用在于放大效果 ,
然后我们通过将它表示为红绿的柱线,表示成形象的红翻绿的情形了,请结合前
面的基础介绍观察其写法.
指标内容和使用解析:
1,DIFF与DEA均为正值时,大势属多头市场;
2,DIFF与DEA均为负值时,大势属空头市场;
3,DIFF向上突破DEA时,可买入;
4,DIFF向下突破DEA时,应卖出;
四,指标公式编写举例
例一,RSI指标编写
指标原理:Wellcs wilder jr.在著作new conccpts in technical trading
systems中所提出的交易方法之一,所谓RSI英文全名为relative strenth
index,中文名称为相对强弱指标.该指标根据估价"择强汰弱"的原理,以特
定时期内股价的变动情况推测价格未来的变动方向,并根据股价涨跌幅度显示市
场的强弱,通过比较一段时期内的平均收益涨数和平均收盘跌数来分析市场买卖
盘的意向和实力,从而作出未来市场的走势的分析.
计算方法
计算公式为:RSI=n日内收盘涨幅平均值/n日内收盘涨跌幅绝对值的平均值的平
均值*100.
编写要点:
该指标由两条指标线组成,编写出其一,其他的依次类推;涨幅的表达用"今日
收盘-前日收盘",即"LC:=CLOSE-REF(CLOSE,1)"表示;ABS(X)表示求得
绝对值;MAX(CLOSE-LC,0),表示如果本周期上涨即得上涨值,否则取0,很
多时候我们利用MAX函数使变量和0进行比较,然后求得变量中的正值.
SMA的具体含义参见函数参考
以下我们拆分一条指标线来演示编写过程,RSI1
昨日收盘:LC:=REF(CLOSE,1);
上涨幅度:AA:=MAX(CLOSE-LC,0);
收盘价振动幅度:AB:=ABS(CLOSE-LC,0);
N1日的上涨幅度的指数移动平均:AC:=SMA(AA,N1,1);
N1日的涨幅的指数移动平均:AD:=SMA(AB,N1,1);
RSI:AC/AD*100
参数名 最小值 最大值 缺省值
N1 2 100 6
N2 2 100 12
N3 2 100 24
将上面各个表达式综合起来就可以得到以下的RSI的指标公式:
LC:=REF(CLOSE,1);
RSI1:SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;
RSI2:SMA(MAX(CLOSE-LC,0),N2,1)/SMA(ABS(CLOSE-LC),N2,1)*100;
RSI3:SMA(MAX(CLOSE-LC,0),N3,1)/SMA(ABS(CLOSE-LC),N3,1)*100;
应用原理:
RSI取值超过50,表明市场进入强势.RSI低于50,表明市场处于弱势.
短天期的RSI在20以下的水平,由下往上交叉长期的RSI时,为买进讯号.短
天期的RSI在80以上的水平,由上往下交叉长期的RSI时,为卖出讯号.
从RSI与股价的背离方面判断行情,RSI处于高位,并形成一峰比一峰低的两个
峰,而此时,股价却对应的是一峰比一峰高,这叫顶背离.股价这一涨是最后的
衰竭动作.这是比较强烈的卖出信号.RSI在低位形成两个依次上升的谷底,而
股价还在下降,这是最后一跌或者说是接近最后一跌,是可以开始建仓的信号.
连接RSI连续的两个底部,划出一条由左向右上方倾斜的切线,当RSI向下跌破
这条切线时,是一个很好的卖出讯号.连接RSI连续的两个峰顶,划出一条由左
向右下方倾斜的切线,当RSI向上突破这条切线时,是一个很好的买进讯号.
例二,KDJ指标编写
KDJ随机指标(短期)KD指标是由dr.reorge lane所创造的,是欧美期货常用
的一套技术分析工具.由于期货风险性波动较大,需要比较短期且灵敏的指标工
具,因此中短期股票的技术分析也颇为适用.随机指标综合了动量观念,强弱指
标与移动平均线的优点,用来度量股价脱离价格正常范围的变异程度.KD线的
随机观念,远比移动平均线实用很多.因为移动平均线在习惯上其以收盘价来计
算,无法表现出一段行情的真正波幅.
计算方法:KD指标的计算公式和理论上的依据.产生KD以前,先产生未成熟随
机值RSV(row stocbastic value),RSV实际上就是WMS%,可能是这两者产生
的途径不同,各自取了不同的名字.对RSV(WMS%)进行指数平滑,就得到K指
标,对K值进行指数平滑,就得到D值.
RSV=(本日收盘价-N日的最低价)/(N日最高-N日最低)*100;
K=昨日RSV*1/12+今日的RSV*1/12;
D=昨日K*25/26+今日的RSV*1/26;
J=3*K-2*D;
参数名 最小值 最大值 缺省值
N 1 100 9
M1 2 40 3
M2 2 40 3
编写要点:RSV的计算方法为收盘价和N天内的最高和最低的差的比值,使用函
数HHV,LLV可以轻松地得到最高和最低;
N天内最高价:HHV(HIGH,N);
N天内最低价:LLV(LOW,N);
指标内容和使用解析
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
J:3*K-2*D;
买卖原则:K值由右边向下交叉D值作卖,K值由右边向上交叉D值作买.
D值80%超买;J>100%超买,J<100%超卖,KD值于50%左右徘徊
或交叉时,无意义.
例三,OBV指标编写
指标原理:OBV的英文全称是On Ralancc Volumc,中文名称直译是平衡成交量,
有些人把每一天的成交量看作像海里的潮汐一样,形象地称OBV为能量潮,OBV
是由Granville与六十年代发明并广泛流行的.我们可以利用OBV验证当前股价
走势的可靠性,并可以由OBV得到趋势可能反转的信号,对于准确预测未来是很
有用的,比起单独使用成交量,OBV比成交量看得清楚.
计算方法:OBV构成的基本原理,是根据潮涨潮落的原理.每一天的成交量可以
理解成潮水,但这股潮水是向上还是向下,是保持原来的方法,还是中途回落
这个问题就有当天的收盘价与昨天的收盘价的大小比较而决定.
1,如果今收盘价≥昨收盘价,则这一潮水属于多方的潮水,
2,如果今收盘价<昨收盘价,则这一潮水属于空方的潮水.
编写要点:
第一步,如果今收盘价≥昨收盘价,那么成交量为正:
AA:=IF(CLOSE≥REF(VOL,1),VOL,0);
第二步,如果今收盘价<昨收盘价,那么成交量为负:
BB:=IF(CLOSE
第三步,将所有的成交量加和:
CC:=AA+BB;
第四步,统计所有的周期上的成交量即得OBV.
OBV:SUM(OBV,0)
从上面编写的例子使用了IF函数,AA计算了多方力量同时将空方的成交量忽略
为0,同样在计算空方成交量的同时我们又忽略了多方的力量,将两者加和就得
到了我们所需要的OBV.
买卖原则:OBV不能单独使用,必须用股价曲线结合使用才能发挥作用.从OBV
的取值大小不能得到任何结论.我们关心的只是近日的OBV曲线的相对走势,而
OBV的取值的绝对数字对我们是没有用处的.OBV曲线的上升和下降对我们进一
步确认当前股价的趋势有着很重要的作用.股价上升(或下降),而OBV也相应
地上升(或下降),则我们可以更相信当前的上升(或下降)趋势.股价上升(或
下降),但OBV并未相应的上升(或下降),则我们对目前的上升(或下降)趋势
的认可程度就要打折扣.这就是背离现象.OBV已经提前告诉我们趋势的后劲不
足,有反转的可能.在别的技术指标中适用的形态学和切线理论的内容也同样可
用于OBV曲线.W底M头等著名的形态学结果在OBV身上也能使用.在股价进入
盘整区后,OBV曲线会率先显露出脱离盘整的信号,,向上或向下突破.
例四,BOLL指标编写
指标原理:布林线(bollinger hands)由john bollinger创制,它利用统计学
原理,求出股价的标准差及其信赖区间,其上下限的范围不被固定,随股价的变
动而表动.
计算方法:利用统计学原理,先规定一个标准差,再求算出一个上下限波动区间,
其波动的上下限随股价浮动.
MID=N天的收盘价的均价;
STD=N天的收盘价的标准差;
UPPER=MID+离差系数*STD;
LOWER= MID -离差系数*STD;
编写要点:STD(X,N)表示计算标准差.首先得到一段时间N天的MA,然后按
照您要设定的参数赋与标准差之后加减即得到上下两根BOLL线,中间的通道为
BOLL通道.
MID:MA(CLOSE,N);
UPPER:MID+P*STD(CLOSE,N);
LOWER:MID-P*STD(CLOSE,N);
买卖原则:
1,当布林通道由宽变窄时,说明股价逐渐向中值回归,股市进入一个整理区间,
投资者应以观望为主.
2,当通道由窄变宽时,意味着行情开始发生变化,如果股价逼近或穿过上限值,
表明超买力量增强,股市可能会短期下跌,此时应卖出股票,反之,当股价逼近
或穿过下限值时,表明超卖力量增强,股市可能会短期反弹,此时应买进股票.
3,柱体在布林通道中沿上限线运行,意味涨幅会持续.
例五,EXPMA指标编写
EXPMA(Exponential Moving Average)即指数平均数指标,该指标属于均线型
指标,在实际应用上也是根据它们的各自移动及交叉作为判别买卖的依据.expma
指数平均数克服了macd指标信号滞后,dma指标信号提前的弱点,在计算均数
时加重了当天行情的权重,可以迅速地反映出股价的涨跌.
编写要点:首先,介绍EXPMA的计算公式与计算方法.原本该指标采用了移动平
均算法,但是在澎博软件中本身有一个函数EMA就是计算移动平均,在函数介绍
当中和前面的指标中我们都已有见过,所以可以很简单地表达为EMA的形式.
参数名 最小值 最大值 缺省值
P1 1 300 5
P2 1 300 10
P3 1 300 20
P4 1 300 60
MA1:EMA(CLOSE,P1);
MA2:EMA(CLOSE,P2);
MA3:EMA(CLOSE,P3);
MA4:EMA(CLOSE,P4);
买卖原则:书中将其归于趋向性指标,EXPMA是以交叉为主要讯号,股价由下往
上碰触EXPMA时,将受到强大的阻力,有上朝下碰触EXPMA时,将受到强有力的
支撑,实际运用中并非这么简单,并且注意其粘滞状态的变化.
例六,威廉指标W&R
指标原理:威廉指标由tarry williams创造,是一种利用振荡点来反映市场超
买超卖现象,预测循环周期内的高点和低点,从而提出有效的信号来分析市场短
期行情走势,判断股市强弱分界的技术指标.
计算方法:
HY=N天中的最高价;
LY=N天中的最低价;
Q=HY-今天的收盘价;
R=HY-LY;
故威廉指标WR=Q/R*100
指标内容和使用解析
AA:=(HHV(HIGH,N)-CLOSE);
BB:=(HHV(HIGH,N)-LLV(LOW,N));
W&R:100*AA/BB
买卖原则:当W&R高于80%,即处于超卖状态,行情即将见底,应当考虑买入.
W&R低于20%,即处于超买状态,行情即将见顶,应当考虑卖出.在W&R进入高
位后,一般要回头,如果这时股价还继续下跌,这就产生背离,是进货的信号.
在W&R进入低位后,一般要反转,如果这时股价还继续上升,这就产生背离,是
卖出的信号.W&R连续几次撞顶(底),局部形成双重或多重底(顶)则是(进
货)出货的信号.
例七,MTM动力指标(momentum)
指标原理:动力指标是利用恒速缓冲的原则,来观察股价涨跌速度的本质从而决
定投资的行为.股价上升下降既然是恒速缓冲的,从理论上讲,在此期间内,股
价的涨跌区间相对一致,动量指标就是尽量反映出涨跌区间位移.
应用原则:一般讲,股指上升动力值会随之上升排除其它非技术因素,MTM大体
可反映出股市速度快慢,MTM应与MA配合使用:在股指上升时,MTM下降曲线与
MA上升曲线互相交叉时,在交叉点处投资者应及时卖出股票,在股指下降时,
MTM上升曲线与MA下降曲线互相交叉时,在交叉点处投资者应及时买进股票.
编写要点:公式原理使用本周期收盘价和N周期以前的收盘价之差来描述股价的
变动情况,两条指标线,其一是收盘价N周期以前的收盘价;其二为前一条指标
线的N1周期的均价,两条指标线的变动速率反映股市的变化,所以有:
参数名 最小值 最大值 缺省值
N 1 100 6
N1 1 100 6
MTM:CLOSE-REF(CLOSE,N);
MTMMA:MA(MTM,N1);
五,函数列表
一,行情函数
名 称 定义 用法举例 解释
AMOUNT 成交额 AMOUNT 取得该周期成交额.
BARSTATUS
数据位置状

例如:BARSTATUS=2表示当天是
该股票数据的最后一个周期.
BARSTATUS返回数据位置信息,1
表示第一根K线,2表示最后一
个数据,0表示中间位置.
CLOSE
收盘价(简
写C)
CLOSE 取得该周期收盘价.
HIGH
最高价(简
写H)
HIGH 取得该周期最高价.
LOW
最低价(简
写L)
LOW 取得该周期最低价.
ISDOWN
该周期是否
收阴
当收盘开盘时,返回值为1,否
则为0
OPEN
开盘价(简
写O)
OPEN 取得该周期开盘价.
VOL
成交量(简
写V)
VOL 取得该周期成交量.
二,常数函数
名 称 定义 用法解释 举例
CATEGORY 证券类型
返回证券类型,指数=0,股票=1,基金=2,债券=3,其它=4,
期权=5,外汇=6,期货=7.
注意:该函数返
回常数
CURRENTDATE
计算时的当
前日期
CURRENTDATE,返回计算时的日期,该日期是从1900年
开始的日期,例如2003年1月1日表示为1030101.
注意:该函数返
回常数
CURRENTTIME
计算时的当
前时间
CURRENTTIME,返回计算时的时间,格式为时分秒,有效
范围(000000-235959).
注意:该函数返
回常数
DATATYPE
当前分析的
数据类型
ATATYPE,返回数据类型,分时线=1,分笔成交=2,1分钟
线=3,5分钟线=4,15分钟线=5,30分钟线=6,60分钟线
=7,日线=8,周线=9,月线=10,多日线=11,年线=12.
注意:该函数返
回常数
MINDIFF
最小价格变

MINDIFF,返回当前股票价格最小变动量,对于股票是
0.01元,基金是0.001.
注意:该函数返
回常数
VOLUNIT 每手股数
用法: VOLUNIT,返回每手股数. 对于股票值为100,
债券为10
三,时间函数
名 称 定义 用法解释
BARPOS
取得该周期在所有数据中
的位置
BARPOS
对于日线来说,函数返回上市以来的天数
D1970TODATE(X) 1970日转换为日期 用法:D1970TODATE(X),得到1970日期X的日期值.
DATE 年月日
DATE 函数返回有效值范围为(700101-1341231),表示
19700101-20341231 取得该周期从1900以来的年月日.
DATETOD1970(X) 日期转换为1970日
用法:DATETOD1970(X),得到日期X距离1970年1月1日
以来的天数
例如:DATETOD1970(DATE)就返回今天距离1970年1月1
日的天数.
DAY 日期 DAY 函数返回有效值范围为(1-31) 取得该周期的日期.
DAYS1970
取得该周期从1970以来
的天数
用法:DAYS1970.函数返回自从1970年1月1日以来的天
数,
例如在1971年1月1日返回365
HOUR 小时
HOUR 函数返回有效值范围为(0-23),对于日线及更长的分
析周期值为0 取得该周期的小时数
MINUTE 分钟
INUTE 函数返回有效值范围为(0-59),对于日线及更长的
分析周期值为0 取得该周期的分钟数
MONTH 月份 MONTH 函数返回有效值范围为(1-12) 取得该周期的月份.
T0TOTIME(X) 秒数转换为时间 T0TOTIME(X),得到从0点开始X秒后的时间值.
TIME 取得该周期的时分秒 TIME 函数返回有效值范围为(000000-235959)
TIME0
取得该周期从当日0点以
来的秒数
TIME0 函数返回自从当日0点以来的秒数,对于日线以上
的分析周期,返回0
TIMETOT0(X) 时间转化为秒数 TIMETOT0(X),得到时间X距离当日0点的秒数.
WEEKDAY 取得该周期的星期数 WEEKDAY 函数返回有效值范围为(0-6),0表示星期天
YEAR 取得该周期的年份 YEAR 函数返回有效值范围为(1970-2038)
四,引用函数
名 称 定义 用法解释
ALL(X,N)
一直满足
条件
是否一直满足条件
用法:ALL(X,N),统计N周期中是否一直都满足X条件,若N=0则从第一个有效
值开始.
例如:ALL(CLOSE>OPEN,20)表示是否20周期内全部都收阳线.
ANY(X,N)
至少一次
满足条件
至少一次满足条件
用法:ANY(X,N),统计N周期中是否至少有一次满足X条件,若N=0则从第一个
有效值开始.
例如:ANY(CLOSE>OPEN,20)表示是否20周期内是否存在一根阳线
BACKSET 向前赋值
将当前位置到若干周期前的数据设为1.
用法: BACKSET(X,N),X非0,则将当前位置到N周期前的数值设为1.
例如:BACKSET(CLOSE>OPEN,2)若收阳则将该周期及前一周期数值设为1,否则
为0
BARSCOUNT
有效值周
期数
求总的周期数.
用法: BARSCOUNT(X)第一个有效数据到当前的天数.
例如:BARSCOUNT(CLOSE)对于日线数据取得上市以来总交易日数,对于分笔
成交取得当日成交笔数,对于1分钟线取得当日交易分钟数
BARSLAST
上一次条
件成立位

上一次条件成立到当前的周期数.
用法: BARSLAST(X):上一次X不为0到现在的天数 .
例如:BARSLAST(CLOSE/REF(CLOSE,1)>=1.1)表示上一个涨停板到当前的周期

BARSSINCE
第一个条
件成立位

第一个条件成立到当前的周期数.
用法: BARSSINCE(X):第一次X不为0到现在的天数.
例如:BARSSINCE(HIGH>10)表示股价超过10元时到当前的周期数
COUNT 统计总数
统计满足条件的周期数.
用法: COUNT(X,N),统计N周期中满足X条件的周期数,若N=0则从第一个有
效值开始.
例如:COUNT(CLOSE>OPEN,20)表示统计20周期内收阳的周期数
DMA
动态移动
平均
求动态移动平均.
用法: DMA(X,A),求X的动态移动平均.
算法: 若Y=DMA(X,A) 则 Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须
小于1.
例如:DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价
EMA
指数平滑
移动平均
卖一价求指数平滑移动平均.
用法: EMA(X,N),求X的N日指数平滑移动平均.
算法:若Y=EMA(X,N) 则Y=[2*X+(N-1)*Y']/(N+1),其中Y'表示上一周期Y值.
例如:EMA(CLOSE,30)表示求30日指数平滑均价
FILTER 信号过滤
过滤连续出现的信号.
用法: FILTER(X,N):X满足条件后,删除其后N周期内的数据置为0 .
例如:FILTER(CLOSE>OPEN,5)查找阳线,5天内再次出现的阳线不被记录在内
HHV 最高值
求最高值.
用法: HHV(X,N),求N周期内X最高值,N=0则从第一个有效值开始.
例如:HHV(HIGH,30)表示求30日最高价
HHVBARS
上一高点
位置
求上一高点到当前的周期数.
用法: HHVBARS(X,N):求N周期内X最高值到当前周期数,N=0表示从第一个
有效值
开始统计 .
例如:HHVBARS(HIGH,0)求得历史新高到到当前的周期数
LAST(X)
连续满足
条件的周
期数
用法:LAST(X),统计连续满足X条件的周期数.
例如:LAST(CLOSE>OPEN)表示到目前为止连续收阳的周期数.
LLV 最低值
求最低值.
用法: LLV(X,N),求N周期内X最低值,N=0则从第一个有效值开始.
例如:LLV(LOW,0)表示求历史最低价
LLVBARS
上一低点
位置
求上一低点到当前的周期数.
用法: LLVBARS(X,N):求N周期内X最低值到当前周期数,N=0表示从第一个
有效值开始统计 .
例如:LLVBARS(HIGH,20)求得20日最低点到当前的周期数
MA(X,N)
简单移动
平均
求简单移动平均.
用法: MA(X,N),求X的N日移动平均值.算法:(X1+X2+X3+...+Xn)/N
例如:MA(CLOSE,10)表示求10日均价
REF(X,A) 向前引用
引用若干周期前的数据.
用法: REF(X,A),引用A周期前的X值.
例如:REF(CLOSE,1)表示上一周期的收盘价,在日线上就是昨收 .
SMA
移动平均
求移动平均.
用法: SMA(X,N,M),求X的N日移动平均,M为权重.
算法: 若Y=SMA(X,N,M) 则 Y=[M*X+(N-M)*Y')/N,其中Y'表示上一周期Y
值,N必须大于M.
例如:SMA(CLOSE,30,1)表示求30日移动平均价
SUM 求和
求总和.
用法: SUM(X,N),统计N周期中X的总和,N=0则从第一个有效值开始.
例如:SUM(VOL,0)表示统计从上市第一天以来的成交量总和
SUMBARS
累加到指
定周期数
向前累加到指定值到现在的周期数.
用法: SUMBARS(X,A):将X向前累加直到大于等于A,返回这个区间的周期数
例如:SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数
五,逻辑函数
名 称 定义 用法解释
BETWEEN
介于两
个数之

用法:BETWEEN(A,B,C)表示A处于B和C之间时返回1,否则返回0
例如:BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盘价介于5日均线
和10日均线之间
CROSS
交叉函

CROSS(A,B)
A:变量或常量,判断交叉的第一条线
B:变量或常量,判断交叉的第二条线
例 CROSS(MA(CLOSE,5),MA(CLOSE,10)):5日均线与10日均线金叉
CROSS(CLOSE,12):价格下好突破12元.
IF
条件函

根据条件求不同的值.
用法: IF(X,A,B)若X不为0则返回A,否则返回B
例如:IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低

LONGCROSS
维持-交
叉函数
两条线维持一定周期后交叉
用法:LONGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B
时返回1,否则返回0
例如:LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5)表示5日均线维持5周期后
与10日均线交金叉
RANGE 范围
介于某个范围之间
用法:RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0
例如:RANGE(CLOSE,MA(CLOSE,5),MA(CLOSE,10))表示收盘价大于5日均线并
且小于10日均线
六,数学函数
名 称 定义 用法解释 用法举例
ABS
绝对值
求绝对值.用法: ABS(X)返回X的
绝对值
例如:ABS(-34)返回34
ACOS
反余弦值
用法:ACOS(X)返回X的反余弦值
AND
逻辑与运算
用法:A AND B 表示条件A与条件B
同时成立
ASIN
反正弦值
用法:ASIN(X)返回X的反正弦值
ATAN
反正切值
用法:ATAN(X)返回X的反正切值
CEILING
向上舍入
向数值增大方向舍入.
用法:CEILING(A)返回沿A数值增
大方向最接近的整数
例如:CEILING(12.3)求得13,CEILING(-3.5)求得-3
COS
余弦值
用法:COS(X)返回X的余弦值
EXP 指数 用法:EXP(X)为e的X次幂 例如:EXP(CLOSE)返回e的CLOSE次幂
FLOOR
向下舍入
向数值减小方向舍入
用法:FLOOR(A)返回沿A数值减小
方向最接近的整数
例如:FLOOR(12.3)求得12,FLOOR(-3.5)求得-4
FRACPART
取得小数部分
用法:FRACPART(A)返回数值的小数
部分
例如:FRACPART(12.3)求得0.3,FRACPART(-3.5)求
得-0.5
INTPART 取整
绝对值减小取整,即取得数据的整
数部分.
用法:INTPART(A)返回沿A绝对值
减小方向最接近的整数
例如:INTPART(12.3)求得12,INTPART(-3.5)求得-3
LN
自然对数
求自然对数.
用法:LN(X)以e为底的对数
例如:LN(CLOSE)求收盘价的对数
LOG
10为
底的对数
求10为底的对数.
用法:LOG(X)取得X的对数
例如:LOG(100)等于2
MAX
最大值
用法:MAX(A,B...)返回所有参数的
中的最大值,参数数量可以有2―
16个
例如:MAX(CLOSE,OPEN,REF(CLOSE,1))表示返回昨
收,今开,收盘三个价格中最高的价格.
MIN
最小值
求最小值.
用法:MIN(A,B...)返回所有参数的
中的最小值,参数数量可以有2―
16个
例如:MIN(CLOSE,OPEN,REF(CLOSE,1))表示返回昨
收,今开,收盘三个价格中最低的价格.
MOD
求模运算
用法:MOD(A,B)返回A对B求模 例如:MOD(26,10)返回6
NOT
求逻辑非
用法:NOT(X)返回非X,即当X=0时
返回1,否则返回0
例如:NOT(ISUP)表示平盘或收阴
OR
逻辑或运算
逻辑或运算
用法:A OR B表示条件A与条件B
只要有一个成立即可
POW 乘幂 用法:POW(A,B)返回A的B次幂 例如:POW(CLOSE,3)求得收盘价的3次方
REVERSE
求相反数
用法:REVERSE(X)返回-X 例如: REVERSE(CLOSE)返回-CLOSE
SGN
求符号值
用法:SGN(X),当X>0,X=0,XOPEN,LOW,6),ALIGN1;表
示绘制6号图标,采用中对齐
STICK 小圆圈线
输出线型控制符
STICK,用逗号隔开放置在输出
语句后,将该输出绘制成小圆
圈线.
例如:VOL,CIRCLEDOT;
COLOR 输出颜色
输出颜色控制符
COLORbbggrr,用逗号隔开放置
在输出语句后,用于设定绘制
指标线的颜色,rr,gg,bb分别
表示红绿蓝三色的份量,用十
六进制表示,00表示最小,FF
表示最大.
例如:CLOSE,COLOR0000FF;表示用红色绘制收盘
价线
COLOR3D
阴阳颜色3D
柱线,输出
线型控制符
S....
阴阳颜色3D柱线,输出线型控
制符S....
COLORSTICK
阴阳颜色柱
线
输出线型控制符
STICK,用逗号隔开放置在输出
语句后,将该输出绘制成阴阳
颜色柱线,若数值正则用阳线
颜色,否则用阴线颜色.
例如:CLOSE-CLOSE[1],COLORSTICK;表示绘制涨
跌阴阳柱线
CROSSDOT 斜叉线
输出线型控制符
STICK,用逗号隔开放置在输出
语句后,将该输出绘制成斜叉
线.
例如:VOL,CROSSDOT;
LINESTICK 带包络柱线
输出线型控制符
STICK,用逗号隔开放置在输出
语句后,将该输出绘制成柱线,
同时带上包络.
例如:VOL,LINESTICK;表示绘制成交量包络柱线
LINETHICK 输出线宽
输出线宽控制符
LINETHICKx,用逗号隔开放置
在输出语句后,用于设定绘制
指标线宽度,x可以为0-7,若
设为0则表示不显示.
例如:CLOSE,LINETHICK6;表示用6点粗线绘制收
盘价线
MOVE 向后平移
向后平移控制符
MOVEx,用逗号隔开放置在输出
语句后,用于设定输出线向后
平移x周期,x=0―255
例如:CLOSE,MOVE10;表示绘制收盘价线向后移动
10周期
POINTDOT 点线
输出线型控制符
STICK,用逗号隔开放置在输出
语句后,将该输出绘制成点线.
例如:VOL,POINTDOT;
PRECIS 输出精度
输精度出控制符
PRECISx,用逗号隔开放置在输
出语句后,用于设定指标数值
精确到小数点后多少位,x可以
为0-6.
例如:
CLOSE,PRECIS6;表示收盘价线显示6位小数精度
STICK 输出柱线
输出线型控制符
STICK,用逗号隔开放置在输出
语句后,将该输出绘制成柱线.
例如:
VOL,STICK;表示绘制成交量柱线
STICK3D 3D柱线
输出线型控制符
STICK,用逗号隔开放置在输出
语句后,将该输出绘制成3D柱
线.
例如:
VOL,STICK3D;表示绘制成交量3D柱线
VALIGN
垂直对齐方

垂直对齐方式控制符
VALIGNx,用逗号隔开放置在
DrawIcon,DrawBmp,DrawText
语句后,用于设定对齐方式,
x=0表示上对齐,1表示中对齐,
2表示下对齐,缺省上对齐.
例如:
DrawIcon(CLOSE>OPEN,LOW,6),ALIGN1,VALIGN0;
表示绘制6号图标,采用中对齐和上对齐
VOLSTICK
成交量颜色
柱线
输出线型控制符
STICK,用逗号隔开放置在输出
语句后,将该输出绘制成与K
线同样粗细的柱线.
例如:
VOL,VOLSTICK;表示绘制成交量柱线