公式系统基础篇
基础介绍

易得程序化公式系统为满足传统用户的使用习惯,继承了传统证券软件的公式写法,并在此基础上进行大量的优化和扩展,使得公式系统的编程能力有了质的飞跃。


本篇介绍易得公式系统的基础,如果您在传统公式系统上有编写经验,可以快速浏览本篇内容,温故而知新一下;也可以跳过直接学习高级篇的新特性。


公式系统基础类型有四种:技术指标、条件选股、五彩k线、交易系统。


1.技术指标公式


实现对技术图表分析中各类技术指标和自我定义的技术分析指标的编写,并且通过分析界面形成图表、曲线,以方便和寻找有意义的技术图形和技术特征。


2.条件选股公式


也就是通常意义上解释的智能选股。但我们的目的在于建立一个完全开放、自由的选股平台,可以通过对该平台的熟练使用,借助计算机的高速和准确的检索功能寻找满足您的理解的股票形态和技术特征,作到先知先觉,快人一步!并且提供相应的同样开放式的结果检测报告。


3.五彩K线公式


准确讲,该功能是附属于条件选股功能之上的,我们可以通过该功能将满足条件的连续K线形态赋予颜色,区别了其它的K线。


4.交易系统公式


交易系统是在条件选股功能上的一次大的延伸,诣在建立一套完整的交易规则体系,通过对各个相关的交易环节,包括买入的切入、卖出、止损以及整体的交易性能检验等等作出定量的规定,帮助投资者建立一套属于自己的买卖规则和理论。

开始编写公式

1.公式编写的入口


技术指标公式为例,我们在管理面板的公式树中选中技术指标公式的一个分组,右键菜单“新建公式”,即可进入公式编写界面。如果需要编写条件选股等其他类型的公式,同理找到对应类型下的分组,点击右键菜单进行新建公式。



2.公式编辑器总览



名称:每一个指标公式必须有一个名称,这个名称由字母和数字组成,公式名称在同类公式中必须是唯一的,例如不能同时存在两个AAA技术指标公式,但可以存在一个AAA技术指标一个AAA条件选股公式,公式名称最多32个字符。


公式描述:是一段文字,用来简单描述该公式的含义,在公式列表时显示这段文字,这段文字不宜过长。


主图叠加/副图:该项选择定义了该指标显示的位置,是在主图上与K线叠加还是显示在副图上,一般来讲,只有少数几个主图指标会设定为主图叠加,例如MA均线、BOLL线等。


计算参数:每一个公式可以显式设计0-32个计算参数,计算参数用来替代公式中所需要的常数,在使用时可以方便地调节参数,不必修改公式就可以对计算方法进行调节。计算参数包括参数名称、最小值、最大值、缺省、步长值五个部分,参数名称用于标识参数,计算公式时采用缺省值计算,而最小值和最大值以及步长是参数的调整范围和调整步长。


公式编辑栏:下方空白的区域为公式编辑的文本区。


密码保护:选中该栏目为指标公式加密。


公式注释:是一段文字,相对于公式描述而言它可以很长,主要用来描述一个公式如何使用、注意事项、计算方法等等。


周期的设定:数据分析周期就是相邻两组数据的时间间隔,可能是从1分钟到1000天间的任意间隔;还可以是分笔成交分析周期,这种情况下时间间隔不定。

公式编写格式和法则

所有的公式系统都是遵守统一的运算法则,统一的格式进行函数之间的计算,所以我们掌握了技术指标公式的基本原理,其他的公式也不会出脱其外。


1.数据引用


A、数据来源


公式中的基本数据来源于接收的每日行情数据,这些数据有行情函数从数据库中按照一定的方式提取,例如,高开低收,成交量,成交额等等。


B、数据类型


按照公式使用的数据类型,系统可以处理的数据分为两类:变量和常量。


所谓变量就是一个随着时间变化而变化的数据,例如成交量;常量就是一个永远不变的数据,例如3。每个函数需要的参数可能是变量也可能是常量,不能随便乱用,函数计算的结果一般是一个变量。


例如计算收盘价均线MA (CLOSE,5),MA函数要求第一个参数为变量,而CLOSE 函数返回的正是一个变量;MA函数要求的第二个参数是常量,5就是一个常量,所以我们就不能这样书写:MA (5,CLOSE)。


2.特殊数据引用


A、指标数据引用


经常在编制公式的过程当中,需要使用另外一个指标的值,如果按照通常的做法,重新编写过这个指标显得很麻烦,因此有必要学习使用如何调用别的指标公式。


基本格式为:”指标,指标线”(参数)


a、指标和指标线之间用逗号分开,一个指标不一定只有一条指标线,所以有必要在指标后标注指标线的名称,但是如果缺失则表示引用最后一条指标线。


b、参数在表达式的末尾,必须用括号括起来,参数之间用逗号分开,通过参数设置可以选择设定该指标的参数,如果参数缺失则表示使用该指标的默认参数设置。


c、整个表达式用引号引在其中,除参数以外。


例如:”MACD,DEF”(26,12,9)表示计算MACD指标的DEA指标线,计算参数为26、12、9,”MACD”(26,12,9)表示该指标的最后一条指标线,计算参数是26、12、9,”MACD"表示该指标的最后一条指标线并且使用公式的默认参数。


B、跨周期引用指标数据


允许使用不同分析周期上的指标数据,但是只能是向上引用,不能在原周期上使用比现在周期长度小的周期上的指标数据。


a、基本格式为:“指标.指标线#周期(参数)”,格式上只是比上面指标引用多了一个周期设定其他内容和方法一样,在周期调用上存在以下对应关系:


MIN1:1分钟MIN5,5分钟...….DAY:日线WEEK:周线MONTH:月线YEAR:年线。


具体数据类型有TICK、MIN, MIN1、MIN5、MIN15、MIN30、MIN60、DAY、WEEK、MONTH、SEASON、HALF、YEAR,以及3s,3m,3h,3d,3w,3t等任意类型。


如上图所示,MIN1表示的分析周期为1分钟,那么只能是在当前周期为分笔成交图时才可以实现对该周期指标线数据的引用。例如:当前周期为日线,那么在公式中使用“MACD.DEA#WEEK”(26,12,9)表示使用了当天所在的本周的MACD指标中的数据。


b、以上格式的扩展格式为:“指标.指标线#周期”(参数),该格式比基本格式采用了不同的对齐方式,简而言之,就是说“#的格式调用的本周期所在的上一级周期的指标数据,那么“#”的格式则表示调用了前一种格式的前一周期的指标数据,举上例而言,“MACD.DEF#WEEK”(26,12,9)表示的是从当天看来的上一周的数据,而基本格式就是当天看来的本周的数据。


C、其他股票数据引用


使用以下的格式可以在当前的分析界面下引用大盘的数据或者其他个股的数据实现横向上的对比,


a、引用大盘数据引用大盘数据时使用下列函数:INDEXC、INDEXV等等!


b、引用个股数据引用个股数据时使用下列格式:“股票代码$数据”,在以上格式当中调用CLOSE,VOL,AMOUNT等等!例如“000002$VOL”表示000002该股本周期的成交量,“1A0001$CLOSE"同样也可以表示为大盘本周期的收盘价,此时的大盘被视为一只个股。


c、"SZ000001$CLOSE#WEEK" 引用SZ市场的品种000001周线收盘价。


d、"$CLOSE#WEEK" 引用当前品种周线收盘价。


e、REFSTKC、REFSTKV等系列函数直接引用指定股票的价格。


3.公式体构成结构


A、公式语句


所有的公式体由若干语句按照一定的格式组成,每个语句表示一个计算结果,根据各个语句的功能分为两大类语句,一类是赋值语句,一类是中间表达式。


B、赋值语句


在技术指标“B;A/Z"”和“C;B*0.618”就是分别两条指标线,语言间用分号隔开。该语句被称为赋值语句,在技术指标当中,赋值语句的计算结果将会被计算机执行并形成相应的图形。每个语句可以有一个名称,该名称写在语句的最前面,并用一个冒号将它与语句分隔开。例如:


ST:MA(CLOSE, 5);


表示该语句求收盘价的五日均线,语句的名称为ST,在该语句后的语句中可以直接用ST来替代MA(CLOSE,5),例如:MA(ST,5)表示对收盘价的五日均线再求五日平均。


C、中间语句


一个语句如果不需要显示,可以将它定义为中间语句,例如在上例当中的第一句“A:=X+Y;”,这样该语句就不会被系统辨认为是指标线了,中间语句用“:=”替代冒号,例如:


ST:=MA(CLOSE,5);


其他与一般语句完全一样,使用中间语句可以有效降低公式的书写难度,还可以将需要重复使用的语句定义成中间语句以减少计算量。


每个公式的赋值语句和中间语句数量没有限制,所有语句之间需要使用分号隔开。


D、公式计算符


公式计算符将函数连接成为公式,计算分为算术计算符逻辑计算符


a、算术计算符:包括+、-、*、/,它们分别对计算符两边的数据进行加减乘除计算,这同一般意义上的算术计算没有差异。


b、逻辑计算符:包括>、<、<>和!=以及><、>=、<=、=、AND和&&、OR和||八种,分别表示大于、小于、不等于、大于等于、小于等于、等于、逻辑与、逻辑或运算,如果条件成立计算结果就等于1,否则等于0,例如:3+4等于7,4>3就等于1,3<=12就等于0,“逻辑与”表示两个条件都成立时结果才成立;“逻辑或”表示两个条件中只要有一个成立结果成立。例如,4>3 AND 12>=4的结果等于1,4>3 OR 3>12的结果等于1。


c、使用小括号()能改变语句运算的优先级。例如,A:=3*(4+5)的结果是27。


E、复合赋值运算符


易得支持复合赋值运算符,包括有:+=、-=、*=、/=。
a += b 等价于 a := a+b,是后者的一种简化性写法,并且,其优先级(即:同一个表达式中存在多种运算符时,不同运算符之间的运算顺序)与=相同。
同理,a -= b 等价于 a := a-b ; a *= b 等价于 a := a*b ; a /= b 等价于 a := a/b ;


F、自加自减运算符


++是自加的意思,对原有的数据进行+1, a ++ 等价于 a := a+1;
--是自减的意思,对原有的数据进行-1,a -- 等价于 a := a-1。


复合赋值运算符和自加自减运算符的推出,极大简化了常用赋值语句的编写。


4.线形描述符


对于技术指标公式可以在语句加上线形描述符,用来表示如何画该语句描述的指标线。


线形描述符号包括以下几种。描述符写在语句后分号前,用逗号将它们与语句分隔开,例如在上例当中加入一句线形描述符,C:B*0.618,COLORSTICK; 该语句在被执行时,会在图中添加色彩柱线,该功能在编制MACD等指标的时候会显出它的用处。


STICK:柱状线
COLORSTICK:彩色柱状线,当值为正时显示红色,否则显示绿色
COLORRED:为线形色,RED表示红色
COLORBLUE:为线形色,BLUE表示蓝色
COLORYELLOW:为线形色,YELLOW表示黄色
VOLSTICK:成交量柱状线,当股价上涨时显示红色空心柱,否则绿色
LINESTICK:同时画出柱状线和指标线
LINETHICK:对线体的粗细作出描述
CROSSDOT:小叉线
CIRCLEDOT:小圆圈线
POINTDOT:小圆点线
COLOR3D:阴阳颜色3D柱线
DASHLINE:长虚线
LINEDASH:长虚线
DOTLINE:虚线
LINEDOT:虚线
STICK3D:3D柱线


a、COLORRED等三个线形描述符还可以自定义颜色,格式为COLOR+“BBGGRR";BB、GG、RR 表示蓝色,绿色和红色的分量,每种颜色的取值范围是00-FF,采用了16进制,例如:MA5:MA (CLOSE,5)COLOROOFFFF表示纯红色与纯绿色的混合色;COLOR808000表示淡蓝色和淡绿色的混合色。


b、LINETHICK可以允许对线型的粗细进行自定义的描述,格式“LINETHICK+(0-7)”;参数的取值范围在0-7之间,“LINETHICK0”表示最细的线,细到在图中不显示;而“LINETHICK7”表示最粗的线。


如果数值相差比较大的指标线在主图中显示,会使K线压缩成一条直线,此时一般会结合NOAXIS使用,意思是不影响坐标最高最低值。例如: A:C,LINETHICK1,NOAXIS;输出收盘价,但不影响坐标最高最低值,用于输出到主图或叠加到其它指标上。


LINETHICK0、NODRAW在图表公式调试的时候会有很重要的作用,具体如下:


用户在编辑指标过程当中,避免不了进行中间调试,这涉及到遇到中间的变量在某个周期的数值等于多少。比较简单的处理方法是在公式中加语句如下:


A:B+C;


可以输出中间变量A的值,显示在图表方便直观的查看,但是有时刻意的将中间变量A输出到图表上显示会破坏图表显示格式,处理方法是在语句后加,LINETHICK0控制符例如:


A:B+C,LINETHICK0;


强制只做变量在图表输出,但不做画线显示,然后用户在主图双击鼠标打开十字光标,查看A变量在指定周期的数值,进行调试。


A:B+C,NODRAW;


NODRAW也是不做画线显示的意思,跟上一语句LINETHICK0的效果一样。


5.初始数值及变量声明


任何变量在使用之前必须先赋值,直接说明变量的初始数值和变量的类型,其语法如下:


VARIABLE: P=1;


表示声明一个变量P,设定其初始数值为1,也就是说在计算的第一天,它的数值为1。变量声明必须写在任何语句之前,但如果有INPUT参数说明,则应当放在它的后面。


一个完整的指数平滑移动平均线公式可以写成:


VARIABLE: V1=0;
V1 := IF(BARPOS=0, CLOSE, (V1*(N-1)+CLOSE*2)/(N+1));


举个例子,我们需要知道当前正在计算第几根K线?第一天为1,第二天为2,我们可以写成:


VARIABLE: P=0;
P := P+1;


上面的语句描述了这个要求,今天的数值等于昨天的数值+1。


在这里需要特别指出的是,变量声明设定的初始值表示计算的第一天的数值,今后每次计算新的一天并不对该变量设定初始值,例如:


VARIABLE: V1=0;
V2:=0;
V1:=V1+1;
V2:=V2+1;


这当中V1、V2的计算结果将截然不同,V1设定了初始数值0,每次隐含循环加1,他的计算结果为1、2、3、4…,是一个递增的序列;而V2则由于每次循环均被重新设定为数值0,因此V2:=V2+1这条语句将V2设置为1。因此,如果我们需要每天设定初始数值,则需要一条赋值语句来设定;如果我们不需要每天设初始值而是第一天需要,则使用VARIABLE语句声明变量并且赋予初始数值。


6.参数说明


参数说明语句:


INPUT: [参数名]([默认值],[最小值],[最大值],[测试步长]);


其中默认值是必需的,其他值若没有指定,则使用其默认值0,100和1。参数说明语句必须放在公式的最前面。


参数说明等同于在公式编辑器中直接在参数输入框中输入参数。系统将参数输入框中和INPUT语句说明的参数累加起来,其总数不能不超过32个。使用参数说明语句,可以使公式程序放在一段文字中,可以方便一部分喜欢这种方式的用户。你可以使用两种方法中的任意一种,他们不存在区别。


我们可以在INPUT语句中说明多个参数,它们之间用逗号分隔。例如:

INPUT: P1(10,0,20), P2(20,0,100);


7.字符串


A.字符串的定义


在公式中,我们有时候需要输出一些文字,这就需要使用字符串。字符串常量是使用单引号“'”括起来的字符,这些字符可以在文字输出函数等地方直接使用。


字符串可以像数值变量一样自由改变,可以根据具体情况赋给不同的数值。字符串变量和普通变量一样可以赋值、运算、赋初始值等等。例如:

S := 'CCC';

我们将变量S赋值'CCC';


VARIABLE: S='ABC';

表示我们定义了一个字符串变量S,给它赋初始值'ABC';


S := STKNAME+ ' ' + STKLABEL;

字符串S等于股票名称后跟股票代码。


我们可以像使用字符产常量一样使用字符串变量,例如在DRAWTEXT函数中。


B.字符串的计算


字符串可以进行计算,包括字符串比较、求字符串子串、大小写转化、字符串查找等等。字符串的比较是以字母表为顺序的,越靠后的越大,小写字母都大于大写字母。例如:

STRCMP('ABC','abc');

比较两个字符串,显然小写字母大于大写字母,所以函数返回1。


在公式系统中引入字符串加法的概念,就是将后面的字符串连接到前面字符串的尾部,我们使用的一个简单的办法:用加号,例如

S := STKNAME+ '的代码是' + STKLABEL;

使用加号直接将后面字符串接到前面字符串的尾部,对于浦发银行来说,字符串S等于“浦发银行的代码是600000”。


更为强大的是,字符串加法还可以直接加数值型的数据。例如:

S := '今天收盘价:' + CLOSE;

系统会将收盘价CLOSE的数值转化为字符串连接进来。所以,当我们看到一个字符串加上数值的时候,千万不要以为这是普通的加法。


除了这种隐含的转化方法外,我们还可以用函数NUMTOSTR将数值强制转化为字符串,例如:

S := NUMTOSTR(CLOSE);

或者将字符串转化为数值STRTONUM。


8.坐标设定


在公式系统中,坐标设定采用公式来实现,方法是:


REFLINE:L1,L2,…LN;


表示在L1、L2、…LN处绘制水平坐标线。


9.设计其他公式语句


其他类型的公式显示的不是指标线,而是相应的操作,如条件选股公式显示的是选股结果,交易系统公式显示的是交易指示,五彩K线公式显示的是K线颜色。这些公式需要有一条或几条逻辑表达式表示这些操作的语句,当语句返回0时表示不需要进行相应的操作,当返回非0时表示需要进行相应的操作。


条件选股公式只有一条逻辑表达式语句,用来表示选股条件是否成立,例如CLOSE>REF(close,1)语句,表示选出当期收盘价高于上日收盘价的股票。其他的语句必须设定为中间语句,只要公式第一个输出结果的值大于0,那么条件选股就意味着选股条件成立。而且也只能有一个输出结果。


五彩K线公式也是,只要公式第一个输出结果的值大于0,那么就意味着该根K线符合公式的描述形态。而且也只能有一个输出结果。


10.代码注释


易得公式系统支持3种代码注释的写法:


1)使用双括号{ ... }包含住注释,可以注释多行。

2)使用/* ... */包含住注释,可以注释多行。

3)使用双斜杠//注释掉单行。

公式编写实例

在以下的章节中我们重点介绍一些指标公式编写过程中的基础技巧,同样的原理,这些原理的潜移默化之后对以后其他的公式的编写大有裨益。


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);


这个公式内部包含四个小公式,小公式间以分号隔开,我们称这种公式为组合公式,我们可以为每一条指标线取一个名字,这样就可以在图上区分它们。具体方法是在指标公式前写上名称并加一个冒号,如上面所示。


用当一条指标线有了名字以后,其后面的指标线就可以将该指标线作为一个函数来使用。请看下例,求收市价的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日平均价,其和除以四


用法:

1、同移动平均线

2、高价区收盘价跌破BBI线,卖出信号

3、底价区收盘价突破BBI线,买入信号

4、BBI线向上,股价在BBI线之上,多头势强

5、BBI线向下,股价在BBI线之下,空头势强


3.参数的使用


参数的引进目标在于方便我们在设计和优化指标的过程当中,以简单的方式改变不同的周期、价位等等目标数据达到寻找到最优的参数数据。


例一、BIAS乖离率


指标原理


BIAS是运用股价指数与移动平均值的比值关系,观测股价偏离移动平均线的程度,以此决定投资者的买卖行为。


计算方法

(当日收盘价-当日MA均线值)/当日MA均线值*100


编写要点

在参数表内设定好相应的3个参数,在公式系统内可以设置一共32个参数,从最大值到最小值为参数的变动范围,缺省值为当前指标的取值。


参数名 最小值 最大值 缺省值

参数1 L1 1 100 6

参数2 L2 1 100 12

参数3 L3 1 100 24

参数4 L4


注意:以下的表达式中的函数嵌套关系的表达方法,不存在大括号、中括号等等,全部是用小括号相互嵌套而成;


指标内容和使用解析


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值在0-15%时,可适当买入股票,股价有可能反弹。


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日。计算得出的DIF与DEA为正值或负值,因而形成在0轴上下移动的两条快速与慢速线。


编制要点:在函数中可以查到移动平均线的函数表达式为EMA(X,M)所以应先行计算出快速移动平均线(12日EMA)与慢速移动平均线(26日EMA),并以这两个数值,作为测量两者(快速与慢速线)间的“差离值”依据,所谓“差离值”(DIFF),即12日EMA的数值减去26日EMA的数值,然后将参数M天内的DIFF的移动平均线的值计算出来......!


参数名 最小值 最大值 缺省值

参数1 L1 1 100 6

参数2 L2 1 100 12

参数3 L3 1 100 24

参数4


DIFF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:EMA(DIFF,M);
MACD:2*(DIFF-DEA),COLORSTICK;


在最后一句话当中,2是实际一个常数参数,它在这里的作用在于放大效果,然后我们通过将它表示为红绿的柱线,表示成形象的红翻绿的情形了,请结合前面的基础介绍观察其写法。


指标内容和使用解析:

1、DIF与DEA均为正值时,大势属多头市场;

2、DIF与DEA均为负值时,大势属空头市场;

3、DIF向上突破DEA时,可买入;

4、DIF向下突破DEA时,应卖出;


5.其他指标公式编写举例


例一、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


参数名 最小值 最大值 缺省值

参数1 N1 1 100 6

参数2 N2 1 100 12

参数3 N3 1 100 24

参数4


将上面各个表达式综合起来就可以得到以下的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向上突破这条切线时,是一个很好的买进讯号。