股票公式编辑,学会了,你也会编辑股票公式啦_公式编辑教程_股票公式
  您的位置:首页 >> 股票公式 >> 公式编辑教程 >> 文章正文

股票公式编辑,学会了,你也会编辑股票公式啦

加入日期:2015-3-2 20:37:07

公式设定步骤

1.设定公式名称:每个公式都有自己的名称,它由字母或数字组成,最多可以有9个字符。请注意,公式名称在同类公式中不能重复。

2.描述公式:用于简单描述该公式的含义,若输入,则在公式列表中会显示这段文帧?br>
3.注释公式:用于描述一个公式如何使用、计算方法等内容。输入后,在有关窗口按“用法注释”按钮可以查看公式注释。

4. 设计技术指标公式语句:

公式的形式由若干语句组成。每个语句得到一个计算结果,对于技术指标,就是一条指标线,语句间用分号隔开。

一个语句由若干函数通过四则运算或逻辑运算而组成。函数是公式系统的基本成分,它是对数据做某种操作,

如CLOSE()函数表示调用该分析周期的。

函数由函数名称和参数组成,参数用函数名后的括号括起来,每个函数调用的参数可以是变量或常量,

变量是一个随着时间变化而变化的数据,例如收盘价;

常量是一个不随时间变化而变的数据。例如函数REF(X,N)用于引用N周期前的X值,X是一个变量,N是一个常量,REF(close(),1)表示计算上一周期的收盘价。

函数若需调用几个参数,则它们在括号内是有顺序的。若没有参数则可以省去括号,例如CLOSE()函数没有参数,所以写成 CLOSE和 CLOSE()都可以。

函数计算得到的结果是一个变量。

计算符将函数连接成为语句。

计算符分为算术计算符和逻辑计算符。算术计算符有+、-、*、/,分别是对计算符两边的数值进行加减乘除计算;

逻辑计算符有>、<、<>、>=、<=、=、AND、OR,分别是对计算符两边的数值做大于、小于、不等于、大于等于、小于等于、等于、逻辑与、逻辑或的逻辑运算,如果逻辑条件成立返回的计算结果为1,否则为0。

例如:2>1的逻辑运算结果等于1,1>2的逻辑运算结果就等于0。

 

语句得到的计算结果连成线就是所谓的指标线,不同的语句就得到不同的线,为了在指标图形中互相区分,不同的线有不同的颜色,而且语句还可以有自己的名称,在指标图形中显示在左上角位置。语句名写在语句的前面,用一个冒号将它与语句隔开。

语句“上日收盘价:REF(close,1)”就表示该语句REF(close,1)的名称为“上日收盘价”。

该语句后而的语句若需引用它,则写公式名即可,如MA(上日收盘价,20)意思是对上日收盘价求20日平均。

 

5、设计中间语句:

一个语句将显示一条指标线,一个复杂的公式往往有很多语句,而且有些语句没必要显示出来。这时我们可以把不需要显示语句定义为中间语句,中间语句的写法只需在一般语句的名称与语句之间的冒号后加个等号,即“:=”即可。例如,语句“上日收盘价:=REF(close,1)”就表示该语句为中间语句。重复使用的语句也可以定义成中间语句。


6、设计其他公式语句:

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

条件选股公式只有一条逻辑表达式语句,用来表示选股条件是否成立,例如CLOSE>REF(close,1)语句,表示选出当期收盘价高于上日收盘价的。其他的语句必须设定为中间语句,否则编辑器出现“只能有一个输出结果”的警示。

交易系统公式需要1-4条逻辑表达式语句,分别为和空头的切入切出条件语句,分别用ENTERLONG, EXITLONG, ENTERSHORT, EXITSHORT表示多头、多头卖出、空头切入、空头切出条件,当这些语句返回非0时,表示需要进行相应的操作。其他的语句必须设定为中间语句,否则编辑器出现“非交易信号变量只能用:=赋值”的警示。这四个条件中必须至少设定一个条件。

五彩K线公式可以有1-6条逻辑表达式语句,最多描述6种不同的颜色。

 

7、设计计算参数:
我们有时需要调节公式中的常数来看公式的表现,可以直接进入公式修改,更方便的方法是用计算参数来指代公式中的常数,需要调节公式时不需进公式只需调节参数就可以了。

 

比如,经常要修改REF(close,1)中的第二个参数1,这时可以把它设为一个计算参数N,公式写成REF(close,N),到时调节N即可。计算参数包括参数名称、最小值、最大值、缺省值四个部分。

 

参数名称用于标识参数,本例我们将参数名定位N,计算公式时采用缺省值计算,而最小值和最大值是参数的调整范围。设定参数后,在图形分析窗口显示该指标时,指标名跟着有参数,右键点击参数即可对它进行修改。对于交易系统公式,每个参数还包括一个测试步长,在优化参数时系统从最小值到最大值逐一调整参数,每次调整的增量就是测试步长。例如最小值1,最大值30,步长10,则系统将测试参数1,11,21。最大测试步数为10000次。每个公式可以带有最多16个计算参数。

 

 

8、其他语句:

有时我们想指定技术指标线的画法,这时我们可以在语句后加上线形描述符,描述该语句对应的指标线画法。

 

线形描述符包括

STICK:柱状线;COLORSTICK:彩色柱状线,当语句结果为正时显示红色,否则显示绿色;

STICK:柱状线,股价上涨时显示红色空心柱,下跌时显示绿色实心柱;

LINESTICK:同时画出柱状线和指标线

;CROSSDOT:小叉线;

CIRCLEDOT:小圆圈线;

POINTDOT:小圆点线。

五彩K线公式有用来描述显示K线颜色的语句,其实就是在语句后加上色彩描述符,之间用逗号隔开,表示当该句返回非0时K线的颜色。

色彩描述符有:COLORRED:红色;COLORGREEN:绿色;COLORBLUE:蓝色;COLORBLACK:

黑色:COLORWHITE:白色;COLORYELLOW:黄色:COLORYELLOW:青色;COLORF0F000:

晶红色;COLORBROWN:棕色。

技术指标公式还可以主动设定欲显示的坐标线,例如我们在坐标线位置输入框中写入-10;O;10,则显示该指标时出现-10,0,10三条坐标线。

 

特殊数据引用
(1)、指标数据引用
在编制公式过程中,有时需要使用另外一个指标的值,如果按照通常的做法,重新编制这个指标就显得很麻烦,因此很有必要学习使用如何调用别的指标公式。
调用其他指标的基本格式:”指标.指标线”(参数)


A、指标与指标线之间用点“.”分开,一个指标不一定只有一条指标线,所以有必要在指标后标注指标线的名称,但是如果缺失则表示引用最后一条指标线。


B、参数在表达式的末尾,必须用括号括起来,参数之间用“,”号分开,通过参数设置可选择设定该指标的参数,如果参数缺失则表示使用该指标的默认参数设置(不过我在使用过程中发现,如不写参数,测试就通不过)。


C、整个表达式用引号引在其中,除参数以外。
例如:”.DEF”(26,12,9)表示计算MACD指标的DEA指标线,计算参数为26、12、9,”MACD”(26,12,9)表示该指标的最后一条指标线,计算参数是26、12、9,”MACD”表示该指标的最后一条指标线,并且使用公式的默认参数。


(2)、其他股票数据引用
使用以下的格式可以在当前的分析界面下引用的数据或者其他的数据实现横向上的对比。


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


B、引用个股数据
引用个股数据时使用下列格式:”股票代码$数据”,在以上格式当中调用CLOSE、VOL、AMOUNT等等,例如,”Z000002$VOL”表示000002该股本周期的成交量。同时大盘也可视为一只个股来引用,例如,上证”H000001$CLOSE”表示为大盘本周期的收盘价,深市”Z399001$CLOSE”同样表法大盘本周期的收盘价。


(3)、注意事项
在编公式中所运用的标点符号均是在英语状态下的符号。


在编制公式中,有要显示的句子和不显示的句子,要显示用“:”不要显示用“:=”,


一个源码中最多只能有16个可显示的句子,并且每句结束后要加分号“;”。


另外,开盘价、收盘价、最高价、最低价,在公式中可用该函数的第一个字母代替。因此在编公式时不要单独用这几个字母,请要注意。

 

9、引用其他公式、周期或股票的数据: (注意:本点只作为参考,因大智慧未设有引用其它周期的数据功能)

可以在一个公式中引用其他公式、周期或股票的数据,具体做法如下。

 

1)引用指标公式/交易系统/条件选股公式
可以引用其他技术指标的指标线,写法是"公式名称.指标线名称"(参数表),请注意,参数表中的参数个数应该与该公式的实际参数数量一致,若不写参数表,则表示使用缺省参数。例如:".K(9,6,6)",表示引用根据(9,6,6)参数计算出KDJ指标中的K指标线数值。

 

可以引用交易系统公式,写法为"SYSTEM.公式名称.交易类型"(参数表),交易类型包括ENTERLONG、EXITLONG、ENTERSHORT、EXITSHORT,分别表示引用多头买入、多头卖出、空头买入、空头卖出条件。例

 

如:"SYSTEM.KDJ.ENTERLONG",表示引用根据缺省参数计算的KDJ交易系统的多头买入条件。

可以引用条件选股公式,写法为"EXPLORER.公式名称"(参数表),例如:"EXPLORER.KDJ",表示引用根据缺省参数计算的KDJ买入条件选股条件。

 

2)跨周期引用公式(大智慧不支持)
可以引用其他周期的数据,写法为"公式名称.指标线名称#周期"(参数表),跨周期引用只能从较短周期引用较长周期,反方向的引用不允许。例如"KDJ.K#WEEK"(9,6,6),表示引用根据(9,6,6)参数计算周期的KDJ指标公式K指标线的数值。

其中周期包括MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH,分别表示1、5、15、30、60分钟线,以及、周线、月线。


3)引用任意股票的数据
可以引用其它股票的数据,写法为:"股票代码$数据名称",其中数据名称包括OPEN、HIGH、LOW、CLOSE、VOL、AMOUNT,分别表示开盘价、最高价、最低价、收盘价、成交量、成交额。

 
 
第二讲:公式编写的基础函数

  打开技术指标公式,我们最常见的,它的组成不外乎两种情况,一是K线,二是。其他诸如柱状线,彩带,分段线等等,都是在K线或均线基础上的延伸或变形。为此,我们先熟悉一下构成这两种状态的基本函数。

  一、K线函数

  非常简单,大家都可能熟知。作为基础,还是说明一下。

  1、开盘价:OPEN 可简写为 O

  2、最高价:HIGH 可简写为 H

  3、最低价smi49liesOW  可简写为 L

  4、:CLOSE 可简写为 C

  有了这4个函数,就可构成一根K线了。比如:收盘价小于开盘价,即阴线:C<o; 收阳线则互为相反。

  那么长下影的光头阳线,即 T 形线呢?理解了原理,也很简单。一要以最高价收盘(否则有上影),二要开盘价大于最低价。所以有如下表示:C=H AND O>L;这里我们没有考虑下影的长度和 T 字上边一横(实体部分)的宽度。

  习题:一根光头阳线,实体部分小于5分钱,下影超过实体的两倍,如何表述?

  特别提示:编辑指标必须在英文状态下输入。其中运用的数学符号,包括加减乘除、分号,引号等(+ - * / ;"" ><#)也必须在英文状态下输入。

  二、均线函数

  单根K线的形态是相当枯燥的。尤其在主图里。配合以均线等形式就会丰富多采,或者更利于我们从中发现规律和分析问题。这就需要均线函数来解决了。

  最常见的:

  1、MA(X,N),求X的N周期简单移动平均值。

  算法:(X1+X2+X3+...+Xn)/N

  例如:MA(CLOSE,20),表示求20日均价。

  2、EMA(X,N),求X的N周期指数平滑移动平均。

  算法: 若Y=EMA(X,N) 则Y=[2*X+(N-1)*Y]/(N+1), 其中Y表示上一周期Y值。

  例如:EMA(CLOSE,20),表示求20日指数平滑均价。

  3、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,20,1),表示求20日移动平均价。

  这三个均线函数在股软中是通用的。关于它们的区别,开始学习时不必深究。其实数值区别也不是很大。要均线真实反映每天的价格变化,用MA,适当圆滑些,用EMA 或SMA。

  三、常用连接函数

  有了上述基本函数,可以表述出K线和均线了,但实际应用中要复杂得多,还要一些函数把他们连接起来。

  大致有这么几个:

  1、AND 就是“和”的意思。如:A AND B;就是A和B两个条件要同时成立。

  2、OR “或”,“或者”的意思。如:A OR B;就是A和B两个条件有其中一个成立就行。

  3、IF 根据条件取不同的值。如:IF(X,A,B),若X不为0则返回A,否则返回B。实例:IF(C<O,L,H),表示收阴返回最低价,否则返回最高价。

  4、CROSS 交叉函数。CROSS(A,B),表示A从下方向上穿过B。

  5、REF 向前引用。引用若干周期前的数据。例如:REF(CLOSE,1),表示昨收的收盘价。那么前天的最高价呢,就是:REF(H,2)。

  四、 

   表示每天的成交量。因以后会经常用到,所以先交待给大家。

  上面这几个函数是最常用的,希望大家记住,不知怎么写也要知道其表述的意思。当然,记不住也不要紧,《公式编辑器》中全有。

  习题:10日均线与20日均线超过百分之三,且成交昨天放大一倍。 

 

第三讲:认识颜色符号或绘图函数

  我们所看到的指标是以线为基础的。不论是,K线,或在线与点之间的填充,又都离不开颜色。正是有了五颜六色才使得图形丰富多采,便于区分,或者更具立体感。本讲就是告诉大家如何利用颜色或修改颜色。

  一、颜色函数

  (一)基本符号:COLOR

  所有显示颜色时,都必须用这个符号做为引导。但它本身并没有色彩,在它的后面还需加上具体的颜色,才能使用。

  举例:COLORBLACK;后面加上英文的黑色单词,在图中就会显示出黑色来了。

  (二)常用颜色:

  颜 色   1:飞狐的:   2、大智慧2   3、大智慧  4、通达信    5、同花顺  6、通用符号  

  红 色   COLORRED;     同前    同前 与飞狐基本相通   同 前

  白 色   COLORWHITE;    同前   同前   一般不用修改    以下略-- 

  黄 色 COLORYELLOW;   同前   同前   以下略--

  黑 色   COLORBLACK;    同前

  蓝 色   COLORBLUE;    同前    同前                 COLORFFFF00

  棕 色   COLORBROWN;    同前 COLOR0055FF

  青 色(淡蓝)COLORCYAN;     同前 COLORFFFF00                COLORF0F000

  灰 色   COLORGRAY;    同前    同前

  绿 色   COLORGREEN;    同前   同前             COLOR00FF00

  晶红色(粉)COLORMAGENTA;   同前 COLORff00ff              COLORF00FF0

  此外还有:金黄色COLOR008364 紫红COLOR000999 深黄色COLOR00CCCC 紫罗蓝COLORE66878 等等。

  (三)常见颜色问题。

  从上表中我们可以看出,大部分颜色符号是通用的。但在将源码粘贴时,因股软的不同,有时会出现《未定义的标识符》字样,很多时候就是颜色惹的祸。常见的是:

  COLORCYAN   淡蓝色,大智慧不识别,需改成:COLORFF0000

  COLORMAGENTA 晶红色,大智慧不识别,需改成:COLORF00FF0

  特别提示:找不到相对应的颜色函数怎么办?一是删除,让系统自动填加。二是更换数字或字母。

  实际上只要在COLOR后面加上0-9、A-F中的任意6个数字字母,就可组成不同的颜色。有兴趣的可试试。

  (四)指标线粗细函数 LINETHICK 放在语句的后面,用,号隔开。例:LINETHICK2,后面的数值越大,线就越粗。

  特别提示:LINETHICK0 表示不画出指标线,但可在显示数值。

  二、绘图函数

  1、DRAWICON 在图形上绘制小图标。这是最常用的绘图函数之一。

  用法:DRAWICON(条件,位置,图标)

  飞狐15种图标编码为1-15(1-3为小脸,4-5为上下箭头,6-7为红绿小旗,8-9为三角形,10-12为信号灯,13-15为O、X、四方形)。

  大智慧2的图标编码为14个。

  其他股软略少。

  这个函数通用。但同一数字编码,显示出的图形区别却非常大,形态也不一样。大家可通过变动数字编码自行调整。

  2、DRAWTEXT 在图形上显示文字。这也是最常用的绘图函数之一。

  用法smi52liesRAWTEXT(条件,位置,文字),注意,文字必须用单引号引上才能输出。

  飞狐可用 换行, 飞狐和大智慧2可用 ALIGN 0-3 定义对齐方式。

  3、STICKLINE 在图形上绘制柱线。

  用法:STICKLINE(条件,上位置,下位置,宽度,实体或空心)。

  此函数股软通用。宽度最大为10(一般K线的宽度为6)。0——画实心柱,1——画空心柱。

  4、PARTLINE 分段绘制指标线。

  飞狐用法:PARTLINE(条件,需要变色的线)。

  例如:PARTLINE(C>REF(C,1),C),colorred 表示收盘大于前收以红色绘制连线。

  大智慧2用法:PARTLINE(需要变色的线,条件1,条件1用的颜色,条件2,条件2用的颜色...),最多可以有10组条件。

  例如:PARTLINE(C,C>O,RGB(255,0,0),C<ORGB(0,255,0),1,RGB(0,0,255))表示画收盘价线,阳线时用红色,阴线时用绿色,平盘用蓝色。注意最后一个条件为1,表示前面都不满足时必然满足这个条件。

  特别提示:大智慧2同分析家一样,在绘制分段线时,用的不是正常的颜色函数,而是用RGB(255,0,0)来表达。以下是几种常用颜色:

  洋红(255,0,255) 红色(255,0,0) 绿色(0,255,250) 黄色(255,255,0) 紫色(128,0,128) 

  灰色(169,169,169) 天蓝(255,215,0)。

  同花顺和大智慧2一样,运用相同的函数。

  通达信的划分段线是用IF条件函数来实现的。

  例:IF(C>=O,A线,DRAWNULL),COLORRED,LINETHICK2;

  翻译过来是:当收盘价大于等于开盘价时,在A线上划红色,否则不划。指标线为2等粗。

  特别提示:DRAWNULL 是通达信的专用函数。意思是返回0。其他股软遇到此函数时,可直接用0替代。

  大智慧没有这项功能。一般用如下三种方式替代:

  第一种:用 DRAWTEXT 在图形上显示文字的方式。在文字栏用的文字是小圆圈。

  第二种:用 STICKLINE 在图形上绘制柱线的方式。但注意柱线必须要短。

  第三种:用 IF 条件函数的方式,适用于3条线以上。本文略去。

  5、FILLRGN 画区间彩带

  飞狐用法:FILLRGN(条件,线1,线2)

  例如:FILLRGN(MA1>MA2, MA1,MA2),colorred 表示MA1>MA2时以红色填充MA1和MA2之间的区域。

  大智慧2用法:FILLRGN(线1,线2,条件1,颜色1,条件2,颜色2...),填充条件1到条件2之间的区域,当条件1满足时,用颜色1,当条件2满足时,用颜色2,否则不填充,最多可以有10组条件。

  例如:FILLRGN(CLOSE,OPEN,CLOSE>OPEN,RGB(255,0,0),CLOSE<OPEN,RGB(0,255,0))表示填充开盘价和收盘价之间的区域,阳线时用红色,阴线时用绿色,平盘不绘制。

  其他三种股软好像都没有这项功能。

  为了实现这一效果,一般都是用划柱线的方式替代。注意的是,一般要将宽窄的数字加大,目的是让相邻的柱线合在一起显示出整体的效果。

  例:STICKLINE(J<K,J,K,10,0),COLOR00FF00;即,当J小于K时,在J与K之间填充柱线,宽度为最大粗值——10。 

 

 

第五讲:各种形态的描述
懂得运用公式编辑器,掌握了公式的基本函数,就可以进行简单的公式编写了。下面我们共同认识一下公式的基本语句。这些基本语句,是编写公式和整理公式信号的基础,大家要熟知。

一、K线的基本形态
1、当天收阳:CLOSE>OPEN;
2、当天收阴:CLOSE<OPEN;
3、当天股价高开,言下之意开盘高于昨日收盘:OPEN>REF(CLOSE,1);
4、当天股价低开:OPEN<REF(CLOSE,1);
5、跳空高开:OPEN>REF(HIGH,1);当日开盘在昨日最高价之上
6、跳空低开:POEN<REF(LOW,1);
7、长阳:C/O>1.03 或者 (C-O)/O*100>5 或者 (C-O)/O>0.05 意思是
比开盘价上涨5%以上。当然,用7%以上也可。
8、长阴:C/O<0.94; 注意:同一语句可有多种表述,此为其一。
9、高开大阴:O/REF(C,1)>1.04 AND C/O<1.94; 今天开盘比昨天收盘高出4%和收盘价较开盘下降6%。低开大阳与此正好相反。
10、标准十字星:CLOSE=OPEN AND HIGH<>LOW
更多见的是近似十字星。例:ABS(C-O)<0.02 AND H-C>0.03 AND C-L>0.03;
 该语句用上了一个函数:ABS,意思是求绝对值。这样,该近似十字星即可能是阳星也可能是阴星。
再认识两个函数:MAX(A,B) 求A和B中的最大值。
MIN(A,B) 求A和B中的较小值
有了这两个函数,近似十字星还可这样表述:ABS(C-O)<0.02 AND H> MAX(C,O) AND L< MIN(C,O);
另外,该公式还可以用比例数编写。

11、长下影线:也有收阴收阳之分。以阳线长下影线为例:C>O AND (O-L)>(C-O);此公式只表达了下影线比实体线长,并没有表达长度比例和有无上影线。
留个习题吧:不限制阴阳线,上影小于5分钱,下影线是实体的两倍以上。
形态还有许多,有几十种,不一一例举了,大家举一反三,慢慢摸索吧。
 

二、条件选股的基本形态
1、阶段最高价:HHV(H,N) 意思是取得N天之内的最高价。新函数:HHV,最高值。
2、阶段最低价:LLV(L,N)意思是取得N天之内的最低价。新函数:LLV,最低值。
3、阶段 (C-REF(C,N))/REF(C,N)*100 N日收盘价的差值的百分比。
4、再创新高 HIGH=HHV(HIGH,N) 是指今日最高价是N日以来的最高价.。 再创新低:略。
5、
(1)今日比昨日的放大了1倍: /REF(VOL,1)>2;
(2)今日的五日均前五天的五日均量放大了3倍:
AA:=MA(VOL,5);
BB:=REF(AA,5);
AA/BB>4;
(3)今天的成交量达到了整个流通盘的10%以上: VOL/CAPITAL>10/100;
注意,10%的表达式是10/100,或者0.1
6、缩量:
(1)今日比昨日的成交量缩小了1倍: VOL/REF(VOL,1)<0.5;
(2)今日的五日均量比前五天的五日均量缩小了一半:
AA:=MA(VOL,1)<0.5;
BB:=REF(AA,5);
AA/BB<0.5;
(3)今天的成交量不足整个流通盘的0.5%: VOL/CAPITAL<0.5/100;
7、放量上攻   是指价格上扬,成交量剧增
C/REF(C,5)>1.2 AND VOL>MA(VOL,5)*3; 表示5日上涨20%和成交量超过5日均量的3倍。
8、持续放量:COUNT(V>REF(V,1),N)=N; 实际上这种情况不是很多。如果用3日均量,或5日均量则非常普遍。即:COUNT(MA(V,3)>REF(MA(V,3),1),N)=N;
9、阶段放量
N(1,100,10) M(1,100,5)
SUM(VOL,N1)/CAPITAL>=(N/100) M日内大于百分之N
10、温和放量上攻
M(2,10,3) N(1,40,10)
UP:=MAX(C,O)>REF(MAX(C,O),1);
A:=VOL>REF(VOL,1);
COUNT(IF((UP AND A),1,0),N)=N AND C>O
AND (C-REF(MAX(C,OPEN),1))/REF(MAX(O,C),1)<=(3/100)
AND VOL/CAPITAL<=(M/100)
连续N个周期放大并保持上涨势头 当日换手率小于 M%
11、突然放量
N(1,300,10)M(1,40,3)
VOL>REF(HHV(VOL,N),1)*M
成交量较前N周期的最大成交量增大M倍
12、上涨: C/REF(C,1)>1.07;今日涨幅达到了7%以上。
注意:涨幅是指当天收盘价与昨天的收盘价之比。
13、下跌: 同上面的表达方式一样,将方向改变了而已。
14、十日均价继续上涨:
AA:=MA(C,10);
BB:=REF(AA,1);
AA>BB;
15、窄幅整理:就是指近一段时期价格维持在一定幅度之内  
(HHV(C,20)-LLV(C,20))/C<0.08 ;即20日内价格振幅在8%以内波动。
16、连续N天收阳:COUNT(C>O,N)=N; 
特别提示:新函数:COUNT(X,N),统计满足条件的周期数。若N=0则从第一个有效值开始。
例:COUNT(C<O,10) 表示统计10周期内收阴的周期数。此句使用时必须加上条件,即收阴时怎么了方才有效。如:AA AND COUNT(C<O,10) 的返回值仍是AA,只有AA AND COUNT(C<O,10)<=3;时,即加上条件“小于等于3”周期时,才有实际意义。这个函数经常用到,务请留意。
17、N日内阳线多于阴线:COUNT(C>O,N)>N/2; 
18、创历史新高:C=HHV(C,0); 
特别提示:此公式本应为:C=HHV(C,N); 当N等于0时,从第一天开始统计。统计历史数据时,如果从头开始,都用0。
19、尾盘
HOUR>14 AND MINUTE>56 AND CLOSE/REF(CLOSE,2) >= 1+N/100
14:56以后2分钟涨幅超过N%
20、突破长期
N(10,60,30) M(5,50,30)
REF(((HHV(H,N)-LLV(L,N))/LLV(L,N)),1)<=(M/100)AND C>=REF(HHV(H,N),1) AND BARSCOUNT(C)>N
前N日在上下M%的幅度内整理,今日突破。
21、阶段强势股
N(700101,1341231,990519) M(700101,1341231,990913)
A:=SUM(IF(DATE-N=0,INDEXC,0),0);
B:=SUM(IF(DATE-M=0,INDEXC,0),0);
E:=SUM(IF(DATE-N=0,C,0),0);
F:=SUM(IF(DATE-M=0,C,0),0);
((F-E)/E)>((B-A)/A)
选择N日----M日之间内走势强于的.
22、大盘同步选股
N(1,100,10)M(1,100,50)
COUNT((C>O AND INDEXC>INDEXO) OR (C< O AND INDEXC< INDEXO),N)/N > M/100
N周期中与大盘走势相同(同收阴线或同收阳线)的比例超过M%
23、今收盘对于N日内最低收盘价的涨幅(%)
(C-LLV(C,N))/LLV(C,N)*100;
24、今收盘对于N日内最高收盘价的跌幅(%)
(HHV(C,N)-C)/HHV(C,N)*100;
25、股价在过去N日内运行空间的相对位置
(C-LLV(L,N))/(HHV(H,N)-LLV(L,N))*100;  
26、股价上方N1%至N2%处的筹码(%)
AA:=WINNER(C+C*N2/100)*100;
BB:=WINNER(C+C*N1/100)*100;
AA-BB
认识新函数:WINNER(CLOSE) 获利盘比例。表示以当前收市价卖出的获利盘比例,如返回0.2表示20%获利盘;例如:WINNER(10) 表示10元价格的获利盘比例。该函数仅对比较分析周期有效。  
27、股价下方N1%至N2%处的筹码(%)
(WINNER(C-C*N1/100)-WINNER(C-C*N2/100))*100;
28、收盘价N%处的套牢盘
100-(WINNER(C*N/100))*100;
29、收盘价N%处的获利盘
WINNER(C*N/100)*100;
 
 

三、基本面选股举例
1、小盘选股
CAPITAL<=500000 AND FINANCE(33)>=0.01 AND CLOSE<=30
2、低市盈率选股
DYNAINFO(39)<=N AND DYNAINFO(39)>0
3、业绩选股
N(0,100,0.4)
FINANCE(33)>N 每股收益在0.4元以上
4、小盘股
N:=5000;
FINANCE(7)<=N
5、大盘股
N:=20000;
FINANCE(7)>=N
6、净资产收益率选股
FINANCE(37)>(N/100) 净资产收益率高于N的股票
7、每股净资产选股
FINANCE(34)>N 选出每股净资产大于N元的股票.
8、每股未分配利润选股
FINANCE(32)>N 每股未分配利润大于N的股票
9、市净率选股
C/FINANCE(34)< N
市净率=市价/每股净资产 市净率>N
市净率越低公司股价越有被低估的可能,这类股票从理论上讲具有更高的安全性.
10、换手率选股
DYNAINFO(37)>=N/100 单日换手率大于N的股票
换手率的计算公式或表达式:VOL/CAPITAL*100; 因此也可写作:VOL/CAPITAL*100>=N/100
11、掁幅:(H-L)/REF(C,1)*100; 注意:是比的昨天收盘价。
 
 

第六讲:)的基本形态

  提示:K线的初步平均。(O+H+L+C*2)/5; 或  (H+L+C*2)/4;  
一般认为:是最有说服力的和最有价值的,它是每天激烈争夺的最后妥协。但也有人认为:收盘价固然重要,其他价格也是争夺的产物。所以将全天的几种价格因素都考虑进去更能反映每天的真实情况。

1、最简单的指标线
(1)均价线 就是 移动平均线MA,“MA”表示的就是计算平均值。
MA1=MA(CLOSE,5);5日平均线=(今天收盘价+昨天收盘价+.....--5天前的收盘价)/5;
MA2=MA(CLOSE,10);10日平均线=(今天收盘价+昨天收盘价+......+10天前的收盘价)/10;
(2)均量线 均价线会了,照着葫芦画瓢,把收盘价CLOSE换成就行了!
例:MA1:MA(VOL,5);
MA2:MA(VOL,10);

2、再次平均 指将已有的均线(多条均线)相加后进行再平均。
MA1=MA(CLOSE,5);
MA2=MA(CLOSE,10);
(MA1+MA2)/2;

3、N日均线向上 (本题反映均线式延伸过程中某阶段的形态。)
AA:=MA(C,N);
BB:=REF(AA,1);
AA>BB

均线向下呢? AA< BB 就可以了。
N日均线走平怎么表述?AA=BB

4、均线由下跌状态刚刚转为上升
AA:=MA(C,N);
COUNT(AA<REF(AA,1),6)=5 //用来确认前5日处于下跌状态
AND AA>REF(AA,5);

5、年线拐头向上
A250:=MA(C,250);
REF(A250,1)<REF(A250,2) AND A250>REF(A250,1);

6、两条均线交叉
股软中专门设定了一条函数来描述两条线交叉:CROSS(X,Y) ,此函数通用。
假如两条均线一条名叫X,另外一条叫Y  且(X<Y)
CROSS(X,Y)表示X向上穿过了Y  通称:
CROSS(Y,X)表示Y向上穿过了X  通称:死叉
特别提示:交叉有两种,一种是向上交叉,另一种是向下交叉。如果要求向上交叉时,X线必须比前一天高,所以需要加上 X>REF(X,1) 。完整的表达式为:CROSS(X,Y)AND  X>REF(X,1)
加餐:
上述交叉是不限制周期的,有时我们会感到交叉特别频繁,如何取得他们较长时间交叉一次的数据呢,系统提供了另一个函数: LONGCROSS(X,Y,N) 两条线维持N周期后交叉。如果N等于15,则X Y两条线超过15天后交叉有效,否则不输出。

7、多次金叉(以常见的指标为例)
(1)
(COUNT(CROSS(DIF,DEA),20)=2 AND CROSS(DIF,DEA);
(2)二次死叉
COUNT(CROSS(DEA,DIF),20)=2 AND CROSS(DEA,DIF);
(3)0轴上二次金叉
COUNT(CROSS(DIF,DEA) AND DEA>0,20)=2 AND CROSS(DIF,DEA) AND
DEA>0;
(4)0轴上三次金叉
COUNT(CROSS(DIF,DEA) AND DEA>0,20)=3 AND CROSS(DIF,DEA) AND
DEA>0;

8、三线金叉
A5:=MA(C,5);
A10:=MA(C,10);
A30:=MA(C,30);
AA:=CROSS(A5,A10);
BB:=CROSS(A5,A30);
CC:=CROSS(A10,A30);
COUNT(AA,3)=1 AND COUNT(BB,3)=1 AND COUNT(CC,3)=1;

9、三线同时金叉
A5:=MA(C,5);
A10:=MA(C,10);
A20:=MA(C,20);
AA:=CROSS(C,A5);
BB:=CROSS(C,A10);
CC:=CROSS(C,A20);
AA AND BB AND CC;

10、均线排列
A1:=MA(C,N1);
A2:=MA(C,N2);
A3:=MA(C,N3);
A4:=MA(C,N4);
A1>A2 AND A2>A3 AND A3>A4;

11、均线空头排列3天以上
A1:=MA(C,N1);
A2:=MA(C,N2);
A3:=MA(C,N3);
A4:=MA(C,N4);
COUNT(A1< A2 AND A2< A3 AND A3< A4,3)>=3;
12、向前N日至M日出现过均线死叉(P1< P2)
AA:=MA(C,P1);
BB:=MA(C,P2);
CC:=REF(CROSS(BB,AA),N);
COUNT(CC,M);

13、均线粘合
MA1:=MA(C,5);
MA2:=MA(C10);
MA3:=MA(C,20);
P1:=ABS(MA1-MA2)+ABS(MA2-MA3);
P1/C<1/100 AND MA1>REF(MA1,1) AND MA2>REF(MA2,1); 
14、均线粘合(另种表达式)
MA1:=MA(C,5);
MA2:=MA(C,10);
MA3:=MA(C,30);
A:=MAX(MAX(MA1,MA2),MA3);
B:=MIN(MIN(MA1,MA2),MA3);
COUNT(ABS(A-B)/B<0.01,3)=3;表示已粘合3天(含3天)以上
15、多条均线粘合  如5、10、20、30、120、250日移动平均线粘合
aa:=(ma(c,5)+ma(c,10)+ma(c,20)+ma(c,30)+ma(c,120)+ma(c,250))/6;
up:=aa*n/100+aa;
down:=aa-aa*n/100;
count(BETWEEN(ma(c,5),up,down) and BETWEEN(ma(c,10),up,down) and BETWEEN(ma(c,20),up,down) and BETWEEN(ma(c,30),up,down)and BETWEEN(ma(c,120),up,down) and BETWEEN(ma(c,250),up,down),m)=m;
n(2,1,500) m(10,1,100) 调整参数n为粘合程度,n值越小粘合的程度越高,即均线距离越近;m为粘合周期。
16、乖离均线
1:(CLOSE-MA(CLOSE,N))/MA(CLOSE,N)*100;
当日股价与N日均线的=(当日股价-N日均价)/N日均价*100; 
特别提示:乖离均线是由乖离率的“点”连成的均线。 此线虽非普通均线,因常用,故单提出来。
原理:以当日的均线价格为准,股价和均价之间的差距称为乖离程度,以乖离程度除以均价的百分比就是乖离率。 

 
 
 
 
 

第七讲:从源码中提取公式

  口诀:从后往前找,删除没用条,去掉修饰符,个别加等号。
例一:找出

VAR1:=(((HHV(HIGH,36) - CLOSE) / (HHV(HIGH,36) - LLV(LOW,36))) * 100);
VAR2:=SMA(VAR1,5,1);
VAR3:=SMA(VAR2,8,1);
H1:EMA(CLOSE,8),LINETHICK1;
H2:EMA(H1,20),LINETHICK1;
VAR4:=(CROSS(VAR2,VAR3) AND (VAR3 < 20));
VAR5:=((CLOSE > (LLV(CLOSE,60) + (0.3 * LLV(CLOSE,60)))) AND VAR4);
VAR6:=IF((CLOSE > 1000),VAR4,VAR5);
M1:EMA(CLOSE,60);
M2:EMA(CLOSE,89);
M3:EMA(CLOSE,233),LINETHICK1;
M4:EMA(CLOSE,583),LINETHICK1;
STICKLINE((H1 > H2),H1,H2,1,0.8);
STICKLINE((H1 < H2),H1,H2,1,0.8);
DRAWTEXT((CROSS(H1,H2) AND (CLOSE < EMA(CLOSE,60))),(LOW * 0.92),买);
DRAWTEXT(VAR6,(HIGH * 1.08),卖);

分解说明:
VAR1:=(((HHV(HIGH,36) - CLOSE) / (HHV(HIGH,36) - LLV(LOW,36))) * 100);
VAR2:=SMA(VAR1,5,1);
VAR3:=SMA(VAR2,8,1);
H1:EMA(CLOSE,8),LINETHICK1;
H2:EMA(H1,20),LINETHICK1;
VAR4:=(CROSS(VAR2,VAR3) AND (VAR3 < 20));
VAR5:=((CLOSE > (LLV(CLOSE,60) + (0.3 * LLV(CLOSE,60)))) AND VAR4);
VAR6:=IF((CLOSE > 1000),VAR4,VAR5);
M1:EMA(CLOSE,60);
M2:EMA(CLOSE,89);
M3:EMA(CLOSE,233),LINETHICK1;
M4:EMA(CLOSE,583),LINETHICK1;
STICKLINE((H1 > H2),H1,H2,1,0.8);
STICKLINE((H1 < H2),H1,H2,1,0.8);
第一步{从后往前找}找到下面这行“买”的输出语句。然后看这条语句的基本条件。
DRAWTEXT((CROSS(H1,H2) AND (CLOSE < EMA(CLOSE,60))),(LOW * 0.92),买);
查看结果:输出文字  交叉 条件,条件   直 接 输 出 语 句     输出位置  文字
DRAWTEXT(VAR6,(HIGH * 1.08),卖);
知道“基本条件”为 H1,H2,那么与此没有任何关系的语句从后往前删除。删的办法有两种:一是直接删掉;二是先用{}括上,待没问题时再一次性删除。加蓝色的为找到的不输出语句。
第二步{删除没用条}后,剩下的有用语句:
H1:EMA(CLOSE,8),LINETHICK1; {加蓝的为修饰类函数,原则一律删除。}
H2:EMA(H1,20),LINETHICK1;
DRAWTEXT((CROSS(H1,H2) AND (CLOSE < EMA(CLOSE,60))),(LOW * 0.92),买);
第三步{去掉修饰符} 分别去掉:指标线粗细、显示文字、文字位置函数和文字
H1:EMA(CLOSE,8);
H2:EMA(H1,20);
CROSS(H1,H2) AND CLOSE < EMA(CLOSE,60);
第四步{个别加等号} 条件选股只能输出一条语句,上面这三行为全部输出,所以,作为“条件”的前两行还必须在冒号后面加上等号,表达不输出。结果:
H1:=EMA(CLOSE,8);
H2:=EMA(H1,20);
CROSS(H1,H2) AND CLOSE < EMA(CLOSE,60);
例二、找出笑脸和信号
以本人发过的《跟庄》为例。
A01:=DYNAINFO(7);
A03:=BARSCOUNT(CLOSE);
A04:=(SMA((CLOSE / HHV(HIGH,120)),3,1) * 100);
A05:=IF((A03 > 20),A04,0);
A06:=IF((LOW > A01),0,IF((HIGH < A01),1,(((A01 - LOW) + 0.009) / ((HIGH - LOW) + 0.009))));
A07:=DMA(A06,( / CAPITAL)) * 60;
A09:=IF((((A07 > 0) AND (A07 > REF(A07,1))) AND (A05 <= 88)),A07,0);
Var1:=3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1);
Var2:=EMA(Var1,8);
Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1),3,1);
:=EMA(Var3,3)-10;
FILLRGN(趋势>80,趋势,80);
DRAWICON(CROSS(趋势,0),0,1);
FILLRGN((A09 > 0 AND (趋势<20 OR 趋势>REF(趋势,1)AND 趋势<50)),0,A09),colorFFFF00;
建仓区:0,LINETHICK0,colorFFFF00;
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
STICKLINE(趋势<=13,0,20,5,0),colorcc9900;
DRAWTEXT(FILTER(趋势<=13,15),30,准备现金),colorcc9900;
STICKLINE(趋势<=13 AND Var4>13,0,50,5,0),color0099ff;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
DRAWTEXT(Var5,60,买入),color0099ff;
STICKLINE(趋势>=90 AND Var4,0,30,5,0),colorgray;
Var6:=FILTER(趋势>=90,10);
DRAWTEXT(Var6,40,清仓),colorgray;
Var7:=LLV(LOW,30);
Var8:=HHV(HIGH,30);
Var9:=EMA((CLOSE-Var7)/(Var8-Var7)*4,4)*25;
STICKLINE(Var9>90,100,105,10,2),COLORRED;
STICKLINE(CROSS(Var4,-40),10,55,6,0),COLORRED;
Var10:=(Var9-LLV(Var9,4))/(HHV(Var9,4)-LLV(Var9,4))*100;
DRAWTEXT(IF(CROSS(Var9,Var10) AND Var9>87,95,0),88,险),Color00FF00,ALIGN1;
DRAWICON(CROSS(90,Var9),95,9);
Var11:=SMA(ABS(L-REF(L,1)),3,1)/SMA(MAX(L-REF(L,1),0),3,1)*100;
Var12:=HHV(Var11,30)*8;
火焰山:EMA(IF(LOW<=Var7 AND 趋势<40,(Var11+Var12),0),3)/618,COLORRED,linethick2;
STICKLINE(火焰山>0,0 ,火焰山*1.2,8,0 ),COLORRED;
Var13:=(MA(C,1)+MA(C,3)+MA(C,5)+MA(C,7)+MA(C,9))/5;
Var14:=(MA(C,2)+MA(C,4)+MA(C,6)+MA(C,8)+MA(C,10))/5;
趋势线: 趋势,colorff0000;
Var16:=MAX(EMA(Var13,2)-EMA(Var14,5),0)*200;
Var17:=EMA(Var16,5);
峰:Var17,stick,colorff00ff;
STICKLINE(Var17<REF(Var17,1),0,Var17,1,0),color00ff00;
Var18:=MA(趋势线,8);
if(CROSS(Var2,Var18) AND Var2<15,50,0),COLORRED;
DRAWTEXT(CROSS(趋势线,Var2)AND 趋势线>REF(趋势线,1)AND 趋势线<50,50,),COLORFF0000;
分析:这个公式输出语句非常多,但多数都是用于趋势判断的。所以不用管它。仍按我们既定的思路进行。
第一步{从后往前找},先删除发出信号关键语句之后的(红色为输出语句,它以下的语句已经删去,蓝色为等待下步删除的)
A01:=DYNAINFO(7);
A03:=BARSCOUNT(CLOSE);
A04:=(SMA((CLOSE / HHV(HIGH,120)),3,1) * 100);
A05:=IF((A03 > 20),A04,0);
A06:=IF((LOW > A01),0,IF((HIGH < A01),1,(((A01 - LOW) + 0.009) / ((HIGH - LOW) + 0.009))));
A07:=DMA(A06,(VOL / CAPITAL)) * 60;
A09:=IF((((A07 > 0) AND (A07 > REF(A07,1))) AND (A05 <= 88)),A07,0);
Var1:=3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1);
Var2:=EMA(Var1,8);
Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1),3,1);
趋势:=EMA(Var3,3)-10;
FILLRGN(趋势>80,趋势,80);
DRAWICON(CROSS(趋势,0),0,1);
FILLRGN((A09 > 0 AND (趋势<20 OR 趋势>REF(趋势,1)AND 趋势<50)),0,A09),colorFFFF00;
机构建仓区:0,LINETHICK0,colorFFFF00;
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
STICKLINE(趋势<=13,0,20,5,0),colorcc9900;
DRAWTEXT(FILTER(趋势<=13,15),30,准备现金),colorcc9900;
STICKLINE(趋势<=13 AND Var4>13,0,50,5,0),color0099ff;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
DRAWTEXT(Var5,60,买入),color0099ff;
第二步{删除没用条}后
Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1),3,1);
趋势:=EMA(Var3,3)-10;
DRAWICON(CROSS(趋势,0),0,1);
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
DRAWTEXT(Var5,60,买入),color0099ff;

第三步{去掉修饰符后}:
趋势:=EMA(Var3,3)-10;
CROSS(趋势,0);
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
Var5;
第四步{个别加等号}本公式中的“条件”语句都是不输出的,所以此项省略,但因是要笑脸和买入两个信号,所以还必须把它们连结起来:
Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1),3,1);
趋势:=EMA(Var3,3)-10;
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
CROSS(趋势,0)or Var5; 

 
 

第八讲:函数的综合运用

         第一部分:引用已有公式中的数据
基本引用例一
"macd.  diff",   "macd.dea";
基本格式: 指标名称 语句名称  (注意:必须用双引号引上)
加入参数例二
"kdj.   k"     (9,3,3)     ;
基本格式:指标名称 语句名称   参数 (指标名称和语句名称之间用隔点.隔开)
加入参数例三
周m:"macd.   diff   #WEEK";
引用:指标名称 语句名称 周函数 (注意:周函数前加#字号)
月K:"kdj.k#MONTH";
引用月线同上,只是换成月函数。
-
应用实例:主图 顶底
A1:=BARSLAST(ref(cross("macd.diff"(12,26,9),"macd.dea"(12,26,9)),1));
B1:=ref(c,A1+1)>c and ref("macd.diff"(12,26,9),A1+1)<"macd.diff"(12,26,9) and cross("macd.diff"(12,26,9),"macd.dea"(12,26,9));
底背离:STICKLINE(FILTER(B1>0,5),0,0.75,3,0),COLOR00FF00;
DRAWTEXT(FILTER(B1>0,5),0.57,MACD底背离),COLOR00FF00;
A2:=BARSLAST(ref(cross("kdj.k"(9,3,3),"kdj.d"(9,3,3)),1));
B2:=ref(c,A2+1)>c and ref("kdj.k"(9,3,3),A2+1)<"kdj.k"(9,3,3) and cross("kdj.k"(9,3,3),"kdj.d"(9,3,3));
底背离:STICKLINE(FILTER(B2>0,5),0,1,3,0),COLORYELLOW;
DRAWTEXT(FILTER(B2>0,5),0.80,KDJ底背离),COLORYELLOW;
A3:=BARSLAST(ref(cross(".RSI1"(6,12,24),"RSI.RSI2"(6,12,24)),1));
B3:=ref(c,A3+1)>c and ref("RSI.RSI1"(6,12,24),A3+1)<"RSI.RSI1"(6,12,24) and cross("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24));
RSI底背离:STICKLINE(FILTER(B3>0,5),0,0.5,3,0),COLORFFCC66;
DRAWTEXT(FILTER(B3>0,5),0.25,RSI底背离),COLORFFCC66;
DRAWTEXT(FILTER(D1>0,5),1.47,MACD顶背离),COLOR0066FF;
C2:=BARSLAST(ref(cross("kdj.d"(9,3,3),"kdj.k"(9,3,3)),1));
D2:=ref(c,C2+1)"kdj.k"(9,3,3) and cross("kdj.d"(9,3,3),"kdj.k"(9,3,3));
KDJ顶背离:STICKLINE(FILTER(D2>0,5),2,1,3,0),COLORRED;
DRAWTEXT(FILTER(D2>0,5),1.2,KDJ顶背离),COLORRED;
C3:=BARSLAST(ref(cross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24)),1));
D3:=ref(c,C3+1)"RSI.RSI1"(6,12,24) and cross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24));
RSI顶背离:STICKLINE(FILTER(D3>0,5),2,1.5,3,0),COLORFF00FF;
DRAWTEXT(FILTER(D3>0,5),1.75,RSI顶背离),COLORFF00FF;

                 第二部分 逐步增加函数
以为例,主图:
基本句型
MA5:MA(C,5);
MA10:MA(C,10);
MA30:MA(C,30);
MA60:MA(C,60);
增加颜色(注:在没有颜色输出符号时,系统会自动加上颜色)
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW;
将10日均线变成小圆圈线
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW;
将60日均线加粗
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW,LINETHICK3;
在5日均线10日均线处显示符号
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW,LINETHICK3;
金叉:=CROSS(MA5,MA10);
DRAWICON(金叉,L,1); 
DRAWTEXT(金叉,L,金叉);
STICKLINE(金叉,H,L,6,0); (注:这三种显示方式用其中一种就行)
30日均线向上时显示红色,否则为绿色
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW,LINETHICK3;
金叉:=CROSS(MA5,MA10);
DRAWICON(金叉,L,1);
DRAWTEXT(金叉,L,金叉);
STICKLINE(金叉,H,L,6,0);
PARTLINE(MA30>=REF(MA30,1),MA30),COLORRED;
PARTLINE(MA30<REF(MA30,1),MA30),COLOR00FF00;
(注:最后两行为划分段线,大智慧没有此项功能,大智慧2和分析家 同花顺用下面这行)
PARTLINE(MA30,MA30>=REF(MA30,1),RGB(255,0,0),MA30<REF(MA30,1),RGB(0,255,0),1);
通达信用下面这两行:
IF(MA30>=REF(MA30,1),MA30,DRAWNULL),COLORRED;
IF(MA30<REF(MA30,1),MA30,DRAWNULL),COLOR00FF00;

 
 

第九讲:常用函数示例

  系统中的函数非常多,其中的一些函数只有在特定的语句中才会用得到。本文介绍几个能经常用到函数,方便大家在以后编写时使用。

1、COUNT 统计总数
原理:COUNT (X,N),统计N周期中满足条件X的周期数,若N=0则从第一个有效值开始。
例如:COUNT(C<O,10),表示统计10周期内收阴的周期数。
以前曾列举过这个函数,今天单独拿出来,是想进一步说明它的应用原理。以上面这个例子,单独使用是没有任何意义的。如语句: AND COUNT(C<O,10); 其输出结果还是:金叉,后面的半句没有起到作用。
那么怎么才能发挥它的作用呢?还必须在它的后面加上我们要求的条件。如:10周期内收阴的周期数大于7,完整的表达式:金叉AND COUNT(C<O,10)>7;  再举几个例子:
连续5天上升:COUNT(>(VOL,1),5)=5;
如果求5天内只能1天上升:COUNT(VOL>(VOL,1),5)=1;
如果在5天内成交量大于5日均量有2天以上呢COUNT(VOL>MA(VOL,5),5)>=2;

  2、FILTER 信号过滤
用法:FILTER(X,N),X满足条件后,将其后N周期内的数据置为0。此函数常应用于画图标、显示文字以及
公式出现连续信号时。
例如:当3日和5日均线金叉时在最低价位置标记“金叉”:
MA3:=MA(CLOSE,3);
MA5:=MA(CLOSE,5);
AA:=CROSS(MA3,MA5);
DRAWTEXT(AA,L,金叉);
这样有时就会出现“金叉”字重叠现象,杂乱难看。若过滤一下,舍去5天内重复出现的,则最后一句改为:
DRAWTEXT(FILTER(AA,5),L,金叉);就不会出现信号过多的现象了。

  3、SUM 求和
用法:SUM(X,N),统计N周期中X的总和,N=0则从第一个有效值开始。

例如:SUM(VOL,10),表示统计从10周期以来的成交量总和。这个好理解,就不多说了。

  4、HHV 最高值
用法:HHV(X,N),求N周期内X的最高值,N=0则从第一个有效值开始。
例如:HHV(HIGH,30),表示求30日最高价。那么10天内的最高呢?HHV(C,10)。
另外还有一个与此相反的函数 最低值 LLV 原理与此相同。

  5、MAX 最大值
用法:MAX(A,B)返回A和B中的较大值

例如:MAX(C,0),表示取得收盘价和开盘价中较大的值。若求开盘价、收盘价和昨天收盘价中的最大值,则:MAX(MAX(C,0),REF(C,1));就是叠加一个最大值函数。
另外,还有一个相反函数:MIN,最小值,原理与最大值相同。
注:最大值与最高值是不能混用的。

  6、COST 分布
用法:COST(20) 表示20%获利盘的价格是多少
即有20%的量在该价格以下,其余80%在该价格以上,为套牢盘。

7、WINNER 获利盘比例 与成本分布相对应,都是计算获利情况的。
WINNER(10) 表示10元价格的获利盘比例;

WINNER(CLOSE) 表示以收盘价卖出的获利盘比例,如该值返回0.2,表示在当天的收盘价上卖出,只有20%的人是赚钱的。
以上两个函数仅对分析周期比较有效。
以上两个函数在有些股软或《检测器》中被认定为未来函数。
据有人考证,该函数的在极个别的情况下确实出现过信号漂移现象。但一般情况下还是比较稳定的。

 
 
 

第十讲:系统常用指标原理解析 

(说明:本文内容为已有书籍中摘录整理,与同学们共享)
例一、
指标原理:BIAS是运用股价指数与移动平均值的比值关系,观测股价偏离移动平的程度,以此决定投资者的买卖行为。
计算方法 :(当日-当日MA均线值)/当日MA均线值*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值在0-15%时,可适当股票,股价有可能。
例二、(柱线的编写实例)
指标原理:MACD实质上是基于BIAS乖离率的变形应用。它是利用二条不同速度(一条变动的速率快--短期的移动平均线,另一条较慢--长期的移动平均线)的指数平滑移动平均线来计算,二者之间的差异状况(DIF)作为研判的基础,然后再求其DIF之9日平滑移动平均线,即MACD线,MACD实际就是运用快速与慢速移动平均线聚合与分离的征兆,来研判与卖出的时机和讯号。
计算方法:EMA:指数平滑移动平均线
N:周期   DIFF:乖离率  DEA:离差平均值
移动平均线(12日EMA)=前一日EMA*/1-2/(N+1)+今日收盘价*2/(N+1)
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时,应卖出;
例三、指标
指标原理:该指标根据估价“择强汰弱”的原理,以特定时期内股价的变动情况推测价格未来的变动方向,并根据股价涨跌幅度显示市场的强弱,通过比较一段时期内的平均收益涨数和平均收盘跌数来分析市场买卖盘的意向和实力,从而作出未来市场的走势的分析。
计算方法:计算公式为:rsi=n日内收盘平均值/n日内收盘涨跌幅绝对值的平均值的平均值*100。
编写要点: 该指标由两条指标线组成,编写出其一,其他的依次类推;涨幅的表达用“今日收盘-前日收盘”,即“LC:=CLOSE-REF(CLOSE,1)”表示;ABS(X)表示求得绝对值;MAX(CLOSE-LC,0),表示如果本周期上涨即得上涨值,否则取0,很多时候我们利用MAX函数使变量和0进行比较,然后求得变量中的正值。
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随机指标是欧美期货常用的一套技术分析工具。KD线的随机观念,远比移动平均线实用很多。因为移动平均线在习惯上其以收盘价来计算,无法表现出一段行情的真正波幅。
编写要点:RSV的计算方法为收盘价和N1天内的最高和最低的差的比值,使用函数HHV、LLV可以轻松地得到最高和最低;
RSV:=(CLOSE-LLV(LOW《N1))/(HHV(HIGH,N1)-LLV(LOW,N1))*100;
K:SMA(RSV,N2,1);
D:SMA(K,N3,1);
J:3K-2D
买卖原则:K值由右边向下交叉D值作卖,K值由右边向上交叉D值作买。
D值<20%,D值>80%;J>100%超买,J<100%超卖,KD值于50%左右徘徊或交叉时,无意义。
例五、指标
指标原理:有些人把每一天的看作像海里的潮汐一样,形象地称OBV为能量潮。我们可以利用OBV验证当前股价走势的可靠性,并可以由OBV得到趋势可能反转的信号,对于准确预测未来是很有用的,比起单独使用成交量,OBV比成交量看得清楚。
计算方法:OBV构成的基本原理,是根据潮涨潮落的原理。每一天的成交量可以理解成潮水,但这股潮水是向上还是向下,是保持原来的方法,还是中途回落?这个问题就有当天的收盘价与昨天的收盘价的大小比较而决定。
1、如果今收盘价≥昨收盘价,则这一潮水属于多方的潮水,
2、如果今收盘价<昨收盘价,则这一潮水属于空方的潮水。
SUM(IF(CLOSE>REF(CLOSE,1),,IF(CLOSE<REF(CLOSE,1),-VOL,0)),0)
买卖原则:OBV不能单独使用,必须用股价曲线结合使用才能发挥作用。从OBV的取值大小不能得到任何结论。我们关心的只是近日的OBV曲线的相对走势,而OBV的取值的绝对数字对我们是没有用处的。OBV曲线的上升和下降对我们进一步确认当前股价的趋势有着很重要的作用。股价上升(或下降),而OBV也相应地上升(或下降),则我们可以更相信当前的上升(或下降)趋势。股价上升(或下降),但OBV并未相应的上升(或下降),则我们对目前的上升(或下降)趋势的认可程度就要打折扣。这就是背离现象。OBV已经提前告诉我们趋势的后劲不足,有反转的可能。在股价进入区后,OBV曲线会率先显露出脱离盘整的信号,向上或向下突破。
例六、BOLL指标
指标原理:利用统计学原理,求出股价的标准差及其信赖区间,其上下限的范围不被固定,随股价的变动而表动。
计算方法:先规定一个标准差,再求算出一个上下限波动区间,其波动的上下限随股价浮动。
MID=N天的收盘价的均价;
STD=N天的收盘价的标准差;
UPPER=MID+离差系数*STD;
LOWER=MIN-离差系数*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、柱体在布林通道中沿上限线运行,意味涨幅会持续。
例七、威廉指标W&R
指标原理:威廉指标是一种利用振荡点来反映市场超买超卖现象,预测循环周期内的高点和低点,从而提出有效的信号来分析市场短期行情走势,判断股市强弱分界的技术指标。
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连续几次撞顶(底),局部形成双重或多重底(顶)则是(进货)出货的信号。

编辑: 来源: