分享

通达信指标公式编写入门教程(代码)

 梵哥 2023-03-18 发布于黑龙江

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

第一讲  基本入门

一、K线函数

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

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

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

3、最低价:LOW  可简写为   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)。

四、成交量

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

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

习题: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 在图形上显示文字。这也是最常用的绘图函数之一。

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

飞狐可用'n'换行, 飞狐和大智慧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。

第三讲:源码的引入和修改

(一)在各种股软中的引入方法

股软之间虽然区别较大,但有一个共同点,就是第一步都是打开公式编辑器。下面再分别简要说明一下:

一、大智慧

1. 把要导入的公式(源码)考下来,方法是用左键先把源码变蓝,之后点右键,点复制;

2. 进入大智慧------>特色功能------>自编指标------>常用------>技术指标------>新建,在出现的公式编辑区的下面的空白处,把刚考的源码粘贴上,将公式名称复制后粘贴到公式名称栏------>确认------>退出。

3、在大智慧的底部显示栏中点击公式名称即可看到刚刚导入的公式。

二、飞狐

1、复制源码,方法同上。

2、进入主界面,即K线图模式。

用鼠标靠近左侧单击,出现管理面板------>双击技术指标------>用鼠标右键单击任何一个公式组的名称,比如“其它”------>点新建公式------>在出现的公式编辑区的下面的空白处,把刚考的源码粘贴上,将公式名称复制后粘贴到公式名称栏------>确定------>退出。

3、找到新建的公式,双击即可使用。

三、大智慧2

特别提示:必须在联网的状态下才可操作

有两种方式可以进入公式编辑页面。一是将鼠标靠近上部,点击《公式》―――《公式管理》―――双击《技术指标》―――单击指标组―――《新建》。

另一种方式是,将鼠标靠近左边,在出现的对话框中双击《技术指标》―――右键单击选定的公式组―――《新建》。

三、分析家

复制公式原码到分析家界面―――点击上面的《公式》―――点击《公式管理》―――按公式归类把其点击变色―――点击《新建》。

四、通达信

将鼠标靠近左边,在出现的对话图标中选F(x)即《公式管理器》图标―――双击《技术指标公式》―――单击选定的指标组―――《新建》。

五、同花顺

将鼠标靠近上部―――点击《公式》图标,进入后的操作与其他股软基本一样。

特别提示:必须在《描述》栏中加上文字或字母之类,否则无法通过。

(二)公式引入时的注意事项和说明

一、参数问题

复制的源码中有参数的,例如:{N   1   100   15},有三种解决办法:

1、手工将参数分别填加到参数表中。

2、采取变通方式进行改动。{N   1   100   15}改动后为:N:=15;

特别提示:注意用参数的大小处于中间的值来替换。这个中间值也是缺省值。另外:N后面必须加上等号,它的意思是不显示。

3、对于INPUT:N(5), M(10,1,100,2);这类有申明参数函数的,飞狐,大智慧2和分析家可不用理它,系统会自动将参数填加到参数表中。这里的M(10,1,100,2)里面的2是步长,手工填加时可删去。

二、粘贴源码时常见的问题和注意事项

1、未定义的标识符

多数是由参数引起的。还有就是有些源码中附带了公式名称或说明,这些公式源码以外的内容,如:名称,说明以及参数等等,凡在{ }以外的,均要删除,或者用{ }将其括上。

2、条件选股类的公式,应加入到和“技术指标”并列的“条件选股”组中。

3、是主图公式的,需在公式编辑区中点“主图叠加”。

4、通达信的输出一般都限定在16条。多出的解决办法是:将没有必要输出的语句后面加上“等号”,或者删去。例:

买点: STICKLINE(Var6>REF(Var6,1) AND Var6>0 ,Var6,Var8,10,0);

DRAWICON(FILTER(Var6>REF(Var6,1) AND Var6>0,30),-140,4);

DRAWTEXT(FILTER(Var6>REF(Var6,1) AND Var6>0,30),-40,'建议关注 '),COLORffffff;

这三项分别是划柱线、显示小箭头和显示文字。留一个就行了。

加“等号”的例子:

Var2:MA(CLOSE,10);

Var3:MA(CLOSE,20);

Var4:MA(CLOSE,30);

加上后:

Var2:MA(CLOSE,10);

Var3:=MA(CLOSE,20);

Var4:MA(CLOSE,30);

意思是保留了10日均线和30日均线的输出,将20日的隐去。

特别提示:不论什么股软,当遇到线条过多过乱时,都可以采用这种办法使图形简练清晰。

5、颜色符号及逗号问题

例:仓:EMA(100*(CLOSE-LLV(LOW,34))/(HHV(HIGH,34)-LLV(LOW,34)),3),,colormagenta;

此句可能存在两个问题,一是后面有两个“逗号”,对于飞狐等通过,而对于大智慧2和分析家等,则是问题,必须删去一个。反之,一个没有也不行。二是后面的colormagenta,大智慧是不认识的。换成通用的:colorf00ff0就行了。

6、是否输出与颜色标识问题

例:仓:=EMA(100*(CLOSE-LLV(LOW,34))/(HHV(HIGH,34)-LLV(LOW,34)),3),colormagenta,LINETHICK0;

这个语句的特点是在前面有等号“ = ”,意思是不输出,但后面还有颜色修饰符和指标线粗细函数。有些股软对此是放行的,即:不输出。而大智慧2和分析家却不认,把它看成相互矛盾的病句。解决办法:将修饰符全部删去,或将前面的 = 号去掉,让语句输出。

第四讲:各种形态的描述

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

一、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倍: VOL/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)

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; 注意:是比的昨天收盘价。

第五讲  线性颜色函数公式实例

转几个针对线性和颜色函数方面的公式实例,做个参考吧。

1间隔点:

20,colorred,pointdot,linethick2;

80,colorred,pointdot,linethick2;

50,colorred,pointdot,linethick2;

2间隔线

20,colorred,linethick2;

80,colorred,linethick2;

50,colorred,linethick2;

3信号字

DRAWTEXT(RSI1<10,RSI1,'买'),Colorlime;

DRAWTEXT(RSI1>85,RSI1,'卖'),Colorlime;

4笑哭脸

DRAWICON(VR24<25,VR24,1),ColorFF0000;

DRAWICON(VR24>350,VR24,2),ColorFF0000;

5一线提示

cross('kdj.j'(9,3,3),'kdj.d'(9,3,3)) and 'kdj.j'(9,3,3)<20,colorred

6一柱顶天

IF(VAR4=50,50,0),stick,linethick2;

7小人作怪

多头卒:Var3,LINETHICK2, COLORf00ff0;

空头卒:Var4,LINETHICK2, COLORYELLOW;

DRAWICON(Var9,Var9,1);

DRAWICON(Var10,Var10,2);

8小人

买入:Var1 AND Var2,stick,linethick2,colorred;

卖出:CROSS(80,Var4),stick,linethick2,colorgreen;

drawicon(卖出,1.1,2);

drawicon(买入,1.1,1);

9粗细面条

LINETHICK2

第3,4,6和7,还有8只要把RSI或VR或Var改成所在公式参数就可用;第5cross不能改,其它的可改;9你爱把线设多粗细都行。

1方块STICKLINE

AA:=VOL/((HIGH-LOW)*2-ABS(CLOSE-OPEN));

买盘:IF(CLOSE>OPEN,AA*(HIGH-LOW),IF(CLOSE<OPEN,AA*((HIGH-OPEN)+(CLOSE-LOW)),VOL/2));

卖盘:IF(CLOSE>OPEN,0-AA*((HIGH-CLOSE)+(OPEN-LOW)),IF(CLOSE<OPEN,0-AA*(HIGH-LOW),0-VOL/2));

qq:=买盘+卖盘;

STICKLINE(卖盘<0,0,VOL,5,1),COLORlime;

STICKLINE(买盘>0,0,买盘,5,0),COLORRED;

结果:ma(qq,5)*5,COLORRED,LINETHICK2;

VOL后面的5,1是方块大少。VOL是坐标,也就是方块所放的地方。

2 3D效果

STICKLINE(OPEN>=CLOSE ,CLOSE ,OPEN,9,0 ),COLORaaaaaa;

STICKLINE(OPEN>=CLOSE ,CLOSE ,OPEN,6,0 ),COLORbbbbbb;

STICKLINE(OPEN>=CLOSE ,CLOSE ,OPEN,2.4,0 ),COLORcccccc;

STICKLINE(OPEN>=CLOSE ,CLOSE ,OPEN,1.1,0 ),COLORdddddd;

STICKLINE(CLOSE>OPEN,CLOSE,OPEN,9,0 ),COLOr6666cc;

STICKLINE(CLOSE>OPEN,CLOSE,OPEN,6 ,0 ),COLOR7777dd;

STICKLINE(CLOSE>OPEN,CLOSE,OPEN,2.4 ,0 ),COLOR8888ee;

STICKLINE(CLOSE>OPEN,CLOSE,OPEN,1.1 ,0 ),COLOR9999ff;

STICKLINE(CLOSE>OPEN,OPEN,LOW,0.5,0 ),COLOR1199ff;

STICKLINE(CLOSE>OPEN,CLOSE,HIGH,0.5 ,0 ),COLOR1199ff;

STICKLINE(OPEN>=CLOSE,CLOSE,LOW,0.5 ,0 ),COLORcccccc;

STICKLINE(OPEN>=CLOSE,OPEN,HIGH,0.5 ,0 ),COLORcccccc;

3颜色

大智慧只能用浅色调,一用深绿深蓝就看不见了。所以我调了几个浅色的,够大智慧用的。

COLOR+RED;WHITE;LIME;YELLOW;aabbcc;ffaabb;abcdef;999999;C0C0C0.

4变色

变色可分3种:

1用DRAWTEXT:

ma10:ma(c,10),colorwhite;

llv(h,30),colorffcc66;

llv(l,30),coloryellow;

vhh:hhv(h,30),colorred;

vhl:hhv(l,30),color00ff00;

v1:=ma(HIGH,30)*1.15 ;

v2:=ma(HIGH,3)*1.03;

v3:=ma(LOW,3)*0.97;

v4:=ma(LOW,30)*0.85;

小通道上:=ma(v2,30);

小通道下:=ma(v3,30);

A2:=小通道上-REF(小通道上,1);

A3:=小通道下-REF(小通道下,1);

K:A2>0 and ref(A2<0,1),colorblue;

K1:A3>0 and ref(A3<0,1),colorff00ff;

K2:c<小通道下 and h<小通道下,color0099ff;

K3:c<小通道下 and A3>0,colorffcccc;

K4:h<小通道下 and A3>0,colorffbbff;

DRAWTEXT(A2>0 ,小通道上,'°'),colorred;

DRAWTEXT(A2<0 ,小通道上,'°'),color00ff00;

DRAWTEXT(A3>0 ,小通道下,'°'),colorred;

DRAWTEXT(A3<0 ,小通道下,'°'),color00ff00;

DRAWTEXT(A2=0 ,小通道上,'°'),COLORWHITE;

DRAWTEXT(A2=0 ,小通道下,'°'),COLORWHITE;

DRAWTEXT(A3=0 ,小通道上,'°'),COLORWHITE;

DRAWTEXT(A3=0 ,小通道下,'°'),COLORWHITE;

2用STICKLINE

AA:=WINNER(C)*100;

KA:=winner(O)*100;

高:=winner(H)*100;

低:=winner(L)*100;

庄筹线:EMA(AA*0.7,3),linethick2;

散筹线:EMA((WINNER(C*1.08)-WINNER(C*0.92))*70,3),linethick2;

stickline(AA<KA,高,低,0,0),colorlime;

stickline(AA<KA,AA,KA,6,0),colorlime;

stickline(AA>=KA,高,低,0,0),colorred;

stickline(AA>=KA,AA,KA,6,0),colorred;

stickline(庄筹线>散筹线,庄筹线,散筹线,0,0),colorwhite;

3用IF

主图公式1:

A1:=Ma(C,5);{5日移动平均线}

A2:=Ma(C,10);{10日移动平均线}

A3:=(A1+A2)/2;{5、10日移动平均线之和除2的平均线,也就是中心线}

IF (A1>A2,A1,A3),Colorred,linethick2;{5日线大于10日且5日线交叉A3线显示粗红线}

IF (A1>A2,A2,A3),Colorred,linethick2;{5日线大于10日且10日线交叉A3线显示粗红线}

IF (A1<=A2,A1,A3),Color00ff00,linethick2;{5日线小于等于10日且5日线交叉A3线显示粗绿线}

IF (A1<=A2,A2,A3),Color00ff00,linethick2;{5日线小于等于10日且10日线交叉A3线显示粗绿线}

A3,colorwhite,linethick2;{中心线显示粗白线}

这是以中心线为轴通过A1、A2这两条线与中心线的交叉来变换颜色的。

主图公式2:

MA1:=MA(CLOSE,5);{5日移动平均线}

MA2:=MA(CLOSE,10);{10日移动平均线}

MA3:=MA(CLOSE,20);{20日移动平均线}

MA4:=MA(CLOSE,30);{30日移动平均线}

MAA:=MA(CLOSE,60);{60日移动平均线}

MA5:IF(MA1<MA4,MA1,MA4),COLOR00ff00;{MA1线小于MA4且MA1线交叉MA4线显示绿色线}

IF(MA1<MA4,MA4,MA1),coloryellow;{MA1线小于MA4且MA4线交叉MA1线显示黄色线}

MA10:if(ma2<ma4,ma2,ma4),colorffcc66;{MA2线小于MA4且MA2线交叉MA4线显示青色线}

if(ma2<ma4,ma4,ma2),color0099ff;{MA2线小于MA4且MA4线交叉MA2线显示橘黄色线}

MA20:if(ma3<ma4,ma3,ma4),colorwhite;{MA3线小于MA4且MA3线交叉MA4线显示白色线}

if(ma3<ma4,ma4,ma3),colorblue;{MA3线小于MA4且MA4线交叉MA3线显示青色线}

MA30:if(ma4<maa,ma4,maa),colorff00ff,linethick2;{MA4线小于MAA且MA4线交叉MAA线显示粉色粗线}

if(ma4<maa,maa,ma4),colorred,linethick2;{MA4线小于MAA且MAA线交叉MA4线显示红色粗线}

MA60:if(ma4>maa,maa,maa),linethick2,colorblue;{MA4线大于MAA且MAA线交叉MAA线显示兰色粗线}

这是分别以MA4、MAA线为轴通过向上交叉和向下交叉来变换颜色的。

单条变色线

ma10:ma(c,10);

if(ma10>ref(ma10,1),ma10,0),Circledot,COLORRED,LINETHICK2;

if(ma10<ref(ma10,1),ma10,0),Circledot,COLOR00FF00,LINETHICK2;

第六讲   线形函数

一、线形函数

线形函数要和其它指标函数一起用才能发挥效力,因为它们都是描述其它指标函数的。正确用好线形函数可以使主副图指标显示丰富多彩,色彩缤纷。

1、函数:STICK 说明:画棒状线,STICK的英文是棍、棒的意思。

如副图公式:C>REF(C,1) AND C>REF(C,2),STICK;

2、函数:COLORSTICK 说明:以零轴为中心画彩色棒状线,零轴下为阴线颜色,零轴上为阳线颜色,这样零轴就如楚汉交界,泾渭分明了。

如副图公式:C-REF(C,1),COLORSTICK;

3、函数:LINESTICK 说明:同时画棒状线与指标线。LINE是线,STICK是棒,LINESTICK自然是线棒一起显示了。如副图公式:

A:=C-REF(C,1);

A,LINESTICK;

即想显示指标线和棒状线,又想以零轴为中心上下显示两种彩色棒状线,可以用分开的两句语句来达到目的,如副图公式:

A:=C-REF(C,1);

A,LINESTICK;

A,COLORSTICK;

4、函数:VOLSTICK 说明:画成交量柱状线。这是专门为显示成交量设计的。如副图公式:

VOL,VOLSTICK;

5、函数:CROSSDOT 说明:画叉状线或x状线。CROSS是交叉,DOT是点。如副图公式:

ma1:ma(c,30),CROSSDOT;

6、函数:CIRCLEDOT 说明:画小圆圈线,如副图公式:

ma1:ma(c,30),CIRCLEDOT;

7、函数:LINETHICK 说明:改变指标线粗细。取1、2、3、4、5、6、7放在LINETHICK后面如:LINETHICK2,数字越大,线越粗,最大可取7。如副图公式:

例1:ma1:ma(close,30),COLORFF00FF,linethick2;

例2:A:=C-REF(C,1);

A,COLORSTICK,LINETHICK4;

8、函数:POINTDOT 说明:画点状线,POINT是点、加点的意思。这个点状线看起来有点太小了,可以用加粗线函数。如副图公式:

ma1:ma(c,30),COLOR00FF00,POINTDOT,LINETHICK2;

我们编个指标,看看都用了哪些线形函数。

{顶底指标}

股价趋势: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),COLORFF00FF,LINETHICK2;

底部警戒:10,COLORFFCCCC,POINTDOT;

买入警戒:IF(股价趋势<=10,40,0),stick,linethick3,coloryellow;

买入信号:IF(CROSS(股价趋势,底部警戒),80,0),stick,linethick3,colorblue;

强弱分界:50,COLORWHITE,POINTDOT,LINETHICK2;

顶部警戒:90,COLORFFCC66,POINTDOT;

卖出警戒:IF(股价趋势>=85,40,0),stick,linethick3,colorred;

卖出信号:IF(CROSS(股价趋势,顶部警戒),80,0),stick,linethick3,color00ff00;

指标解析:

{顶底指标}

股价趋势:3*移动平均((收盘价-最低值(最低价,27))/(最高值(最高价,27)-最低值(最低价,27))*100,5,1)-2*移动平均(移动平均((收盘价-最低值(最低价,27))/(最高值(最高价,27)-最低值(最低价,27))*100,5,1),3,1),COLORFF00FF,LINETHICK2;

底部警戒:10,COLORFFCCCC,点状线;

买入警戒:条件函数(股价趋势<=10,40,0),棒状线,linethick3,coloryellow;{黄粗棒状}

买入信号:条件函数(交叉函数(股价趋势,底部警戒),80,0),棒状线,linethick3,colorblue;{蓝粗棒状}

强弱分界:50,COLORWHITE,点状线,LINETHICK2;{粗点状线}

顶部警戒:90,COLORFFCC66,点状线;

卖出警戒:条件函数(股价趋势>=85,40,0),棒状线,linethick3,colorred;{红粗棒状}

卖出信号:条件函数(交叉函数(股价趋势,顶部警戒),80,0),棒状线,linethick3,color00ff00;{绿粗棒状}

二绘图函数

绘图函数的功能是在主图或副图上设定条件输出图标、直线、文字、数字、指标线、指标柱等。运用恰当使编制出的主副图指标给以视觉上的美感。

1、函数RAWICON

用法RAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标。

说明:在图形上绘制小图标,其中TYPE可选3种图标,编码为1-3(1为红脸、2为绿脸、3为平脸)。

示例:DRAWICON(CLOSE>OPEN,LOW,1);表示当收阳时在最低价位置画1号图标,也就是红脸。

DRAWICON(CLOSE<OPEN,high,2);表示当收阴时在最高价位置画2号图标,也就是绿脸。

指标示例:

{月均线主图}

ma1:ma(close,5),colorwhite,linethick2;{画一条5日收盘价的均线,设置该线为粗白色}

ma2:ma(close,10),colorff00ff,linethick2;{画一条10日收盘价的均线,设置该线为粗粉色}

ma3:ma(close,20),color00ff00,linethick2;{画一条20日收盘价的均线,设置该线为粗绿色}

a1:=cross(ma1,ma2);{5日均线上穿10日均线,金叉}

a2:=cross(ma2,ma1);{10日均线下穿5日均线,死叉}

DRAWICON(a1,low,1);{当a1条件满足时,在最低价位置上显示红脸,表示此处可作为买入点}

DRAWICON(a2,high,2);{当a2条件满足时,在最高价位置上显示绿脸,表示此处可作为卖出点}

2、函数:DRAWLINE

用法RAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND),当COND1条件满足时,在PRICE1位置画直线起点,当COND2条件满足时,在PRICE2位置画直线终点,EXPAND为延长类型。

说明:在图形上绘制直线段。

示例: DRAWLINE(HIGH>=HHV(HIGH,20),HIGH,LOW<=LLV(LOW,20),LOW,1);表示在创20天新高与创20天新低之间画直线并且向右延长。

DRAWLINE是唯一一个一句里面用到两个COND的绘图函数。因为它需要两个点来决定一直线。

COND1相当于指定K线位置(横坐标),PRICE1相当于是指定价位(纵坐标),这样一个点在平面上的位置就决定了。

DRAWLINE是从第一点画到第二点的,即有起点与终点的顺序关系:第一点出现的时间,要在第二点之前。否则线是画不出来的。

EXPAND,扩张、发展,这里是延伸的意思吧。取0,不延长;取1,延长。实际上是取大于等于1的数就延长,小于1就不延长。

指标示例:

{季均线主图}

ema1:ema(close,20),colorff00ff;{画一条20日收盘价的均线,设置该线为粉色}

ema2:ema(close,40),color00ff00;{画一条40日收盘价的均线,设置该线为绿色}

ema3:ema(close,60),colorwhite,CIRCLEDOT;{画一条60日收盘价的均线,设置该线为白色o线}

DRAWLINE(HIGH>=HHV(HIGH,20),HIGH,HIGH>=HHV(HIGH,20),HIGH,1),colorwhite;{表示在创20天新高与创20天新低之间画直线并且向右延长。}

DRAWLINE(HIGH>=HHV(HIGH,20),HIGH,LOW<=LLV(LOW,20),LOW,1),coloryellow;{表示在创20天新高与创20天新低之间画直线并且向右延长。}

3、函数RAWTEXT 说明:在图形上显示文字。

用法RAWTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置书写文字TEXT,可显示多行文本。

示例RAWTEXT(CLOSE/OPEN>1.08,LOW,'大涨啦');表示当日涨幅大于8%时在最低价位置显示'大涨啦'字样。在某些满足条件的地方直接显示文字或字符,比显示图标要更直观一些。注意,显示的文字要用英语状态下的单引号括起。

指标示例:

{长短结合主图}

sma1:sma(close,5,1),color00ff00;{画一条5日收盘价的均线,设置该线为绿色}

sma2:sma(close,10,1),coloryellow;{画一条10日收盘价的均线,设置该线为黄色}

sma3:sma(close,60,1),colorblue,linethick2;{画一条60日收盘价的均线,设置该线为蓝色粗线}

DRAWTEXT(CLOSE/OPEN>1.08,LOW,'大涨啦'),colorwhite;{表示当日涨幅大于8%时在最低价位置显示'大涨啦'字样。}

4、函数:POLYLINE 说明:在图形上绘制折线段。

用法:POLYLINE(COND,PRICE),当COND条件满足时,以PRICE位置为顶点画折线连接。

示例:POLYLINE(HIGH>=HHV(HIGH,20),HIGH);表示在创20天新高点之间画折线。

指标示例:

{长短结合主图}

sma1:sma(close,5,1),color00ff00;{画一条5日收盘价的均线,设置该线为绿色}

sma2:sma(close,10,1),coloryellow;{画一条10日收盘价的均线,设置该线为黄色}

sma3:sma(close,60,1),colorblue,linethick2;{画一条60日收盘价的均线,设置该线为蓝色粗线}

POLYLINE(HIGH>=HHV(HIGH,20),HIGH),COLORWHITE;{表示在创20天新高点之间画折线(白色)。}

5、函数:STICKLINE 说明:在图形上绘制柱线。

用法: STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当COND条件满足时,在PRICE1和PRICE2位置之间画柱状线,宽度为WIDTH可为0---100(10为标准间距),EMPTH不为0则画空心柱。

示例:STICKLINE(CLOSE>OPEN,CLOSE,OPEN,4,1);表示画K线中阳线的空心柱体部分。

运用要点:

⑴PRICE1和PRICE2没有顺序关系,即何者在前何者在后都不影响语句的执行。

⑵WIDTH宽度,支持小数。用1和用0.1,会有很大的差别。取4时和主图的K线宽度差不多。

以下的副图公式,画出的K线,与主图中显示的K线差不多。

指标示例:

{副图K线}

STICKLINE(C>O OR (C=O AND C>REF(C,1)),O,C,4,1),colorred;{画出红K实体}

STICKLINE((C>O AND C<>H) OR (C=O AND C>REF(C,1)),C,H,0.1,0),colorred;{画出红K上影线}

STICKLINE((C>O AND L<>O) OR (C=O AND C>REF(C,1)),L,O,0.1,0),colorred;{画出红K下影线}

STICKLINE(C<O OR (C=O AND C<=REF(C,1)),C,O,4,0),colorffcc66;{画出青K实体}

STICKLINE(C<O OR (C=O AND C<=REF(C,1)),L,H,0.1,0),colorffcc66;{画出青K影线。因为青K是实心的,所以影线从中穿过}

ma5:MA(C,5),colorwhite;

ma10:ma(c,10),colorff00ff;

绘图函数结合示例介绍完了,相信你一定有所收获吧,举一反三自己动手编个指标。不要怕失败,失败是成功之母。

三背景装饰

飞狐、分析家股软能将背景颜色通过渐变颜色函数装扮的很漂亮,那么大智慧股软能做到吗?能,但做出的背景色虽不如飞狐、分析家平滑漂亮,也能起到装扮的作用,效果也可以。

在大智慧设计背景色的原理主要是通过主、副图的坐标用画柱线函数STICKLINE或者设定坐标用颜色代码就可以完成。下面用实例来说明背景色的设计过程。

一、单色背景色,这是最简单实用的一种装饰方法。我们先来设计一个主图指标:

要领:1、设定坐标:STICKLINE(CLOSE>0,h*9.0,l*0.01,8,0),color7d7f0f;意思是CLOSE>0条件满足时,在坐标h*9.0至坐标l*0.01处画宽度为8的实体柱线(也就是在整个主图上添色)。

也可以这样设定STICKLINE(110,0,110,8,0),color7d7f0f;显示的是同样效果。

2、添色的源码必须在指标的头条位置上,否则会覆盖均线、K线、文字等图形。

3、必须另外编制K线,因为背景色会覆盖系统中的K线图。

4、可以把背景色分为五档、十挡或更多,同时注意与你的指标的最大值、最小值(也就是坐标)相匹配,否则会在指标中出现背景色残缺不全的情况。

5、用你喜欢的颜色需要结合调色器可随意自定义自己喜欢的颜色。不过可得有耐心啊!

指标示例一:

{多空密码主图}

STICKLINE(CLOSE>0,h*9.0,l*0.01,8,0),color7d7f0f;{设置背景,可以将这句源码复制粘贴到任意主图指标的头条位置上}

Var1:=(3*CLOSE+LOW+OPEN+HIGH)/6;

Var3:=(20*Var1+19*REF(Var1,1)+18*REF(Var1,2)+17*REF(Var1,3)+16*REF(Var1,4)+15*REF

(Var1,5)+14*REF(Var1,6)+13*REF(Var1,7)+12*REF(Var1,8)+11*REF(Var1,9)+10*REF

(Var1,10)+9*REF(Var1,11)+8*REF(Var1,12)+7*REF(Var1,13)+6*REF(Var1,14)+5*REF

(Var1,15)+4*REF(Var1,16)+3*REF(Var1,17)+2*REF(Var1,18)+REF(Var1,20))/221;

Var4:=MA(Var3,78),LINETHICK2;

Var5:=EMA(MA(CLOSE,3),34);

Var6:=MA(Var3,5);

Var7:=MA(Var3,9);

M60:MA(C,60),COLOREEFFFF,CIRCLEDOT;

STICKLINE(Var3>1.005*Var4,Var3,Var4,4,1),COLORYELLOW;

STICKLINE(IF(Var3<Var5,Var3<=1.015*Var4,Var3<=1.005*Var4),Var7,Var4,2,1),COLORffff88;

STICKLINE(Var3>Var6,Var3,Var7,4,1),COLORff88ff;

STICKLINE(IF(Var3<Var6,Var3<=1.015*Var6,Var3<=1.005*Var6),Var3,Var7,3,1),COLORFF6633;

STICKLINE(Var3>Var6,Var3,Var7,4,1),COLOR0000ff;

{下面是柱形K线,如果喜欢这样的K线,你可以复制粘贴到任意主图指标里面}

STICKLINE(C>=O,C,O,7,0),COLORRED;

STICKLINE(C>=O,C,O,4,0),COLOR7070ff;

STICKLINE(C>=O,C,O,2,0),COLORYELLOW;

STICKLINE(C>=O,H,L,0,0),COLORYELLOW;

STICKLINE(C<=O,C,O,7,0),COLORFF2020;

STICKLINE(C<=O,C,O,4,0),COLORFF6600;

STICKLINE(C<=O,C,O,2,0),colorffcc66;

STICKLINE(C<=O,H,L,0,0),colorffcc66;

M9:MA(C,9),COLORYELLOW;

生命线: MA(CLOSE,13),COLORYELLOW,LINETHICK2;

牛熊线: (EMA(CLOSE,5)*7+EMA(CLOSE,5)*3)/10,COLORFF00CC,LINETHICK2;

箱顶:MA(REF(HHV(CLOSE,30),1),2);

箱底:MA(REF(LLV(CLOSE,30),1),2);

AA:(MA(C,13)+MA(C,21)+MA(C,34)+MA(C,55))/4,COLORFF00FF;

半年线:ma(close,125),colorffcc66;

指标示例二:

{财出水面副图}

VAR2:=(CLOSE-LLV(LOW,20))/(HHV(HIGH,20)-LLV(LOW,20))*100;

VAR3:=SMA(SMA(VAR2,3,1),3,1)/28.57;

VAR4:=EMA(VAR3,5);

操盘:=3*VAR3-2*VAR4;

A1:=CROSS(操盘,VAR3) AND VAR3<2.1 and c>o;

40,colorred,pointdot;

STICKLINE(c>0,40,22,8,0),colorff8080;{设置背景,CLOSE>0条件满足时,在坐标40至坐标22处设置宽度为8的兰色背景}

STICKLINE(c>0,22,4,8,0),color916f87;{设置背景,CLOSE>0条件满足时,在坐标22至坐标4处设置宽度为8的深紫色背景}

stickline(a1,18,15,28,0),colorred;

stickline(a1,18,18,18,0),colorblue;

stickline(a1,8,8,9,0),colorffff00;

stickline(a1,6,6,4,0),colorffff00;

stickline(a1,10,10,12,0),colorffff00;

stickline(a1,12,12,20,0),colorffff00;

stickline(a1,14,14,24,0),colorffff00;

stickline(a1,16,34,0.1,0),colorc0c0c0;

stickline(a1,33,18,9,0),colorwhite;

drawtext(a1,36,'财出水面'),COLORWHITE;

VarE:=30+(REF(CLOSE,1)-REF(OPEN,1))/REF(OPEN,1)*100/1.5;

VarF:=30+(REF(CLOSE,2)-REF(OPEN,2))/REF(OPEN,2)*100/1.5;

Var10:=CROSS('KDJ.K'(9,3,3),'KDJ.J'(9,3,3)) AND 'KDJ.D'(9,3,3)>13;

Var11:=CROSS(REF('KDJ.K'(9,3,3),1),REF('KDJ.J'(9,3,3),1)) AND REF('KDJ.D'(9,3,3),1)>13;

Var12:=CROSS(REF('KDJ.K'(9,3,3),2),REF('KDJ.J'(9,3,3),2)) AND REF('KDJ.D'(9,3,3),2)>12;

Var13:=Var10 OR Var11 OR Var12;

Var14:=REF('BIAS.BIAS2'(6,12,24),1)>2;

Var15:=REF('RSI.RSI1'(6,12,24),1)>(VarE+VarF)/1.8 AND REF('ROC.ROC'(12,6),1)-'ROC.ROC'(12,6)>0 AND Var13 AND Var14;

卖出:=Var15*100/15,color00ff00;

stickline(卖出,18,15,28,0),coloryellow;

stickline(卖出,18,18,18,0),colorblue;

stickline(卖出,8,8,9,0),colorffff00;

stickline(卖出,6,6,4,0),colorffff00;

stickline(卖出,10,10,12,0),colorffff00;

stickline(卖出,12,12,20,0),colorffff00;

stickline(卖出,14,14,24,0),colorffff00;

stickline(卖出,16,28,0.1,0),colorc0c0c0;

stickline(卖出,28,18,9,0),color00ff00;

drawtext(卖出,31,'落袋为安'),COLOR00FF00;

指标示例三:

{金叉死叉}

STICKLINE(100,0,100,8,0),colorff0098;{设置背景,100条件满足时,在坐标100至坐标0处设置宽度为8的紫兰色背景}

Var1:=EMA(HHV(HIGH,500),21);

Var2:=EMA(HHV(HIGH,250),21);

Var3:=EMA(HHV(HIGH,90),21);

Var4:=EMA(LLV(LOW,500),21);

Var5:=EMA(LLV(LOW,250),21);

Var6:=EMA(LLV(LOW,90),21);

Var7:=EMA((Var4*0.96+Var5*0.96+Var6*0.96+Var1*0.558+Var2*0.558+Var3*0.558)/6,21); Var8:=EMA((Var4*1.25+Var5*1.23+Var6*1.2+Var1*0.55+Var2*0.55+Var3*0.65)/6,21);

Var9:=EMA((Var4*1.3+Var5*1.3+Var6*1.3+Var1*0.68+Var2*0.68+Var3*0.68)/6,21);

VarA:=EMA((Var7*3+Var8*2+Var9)/6*1.738,21);

VarB:=REF(LOW,1);

VarC:=SMA(ABS(LOW-VarB),3,1)/SMA(MAX(LOW-VarB,0),3,1)*100;

VarD:=EMA(IF(CLOSE*1.35<=VarA,VarC*10,VarC/10),3);

VarE:=LLV(LOW,30);

VarF:=HHV(VarD,30);

Var10:=IF(MA(CLOSE,58),1,0);

Var11:=EMA(IF(LOW<=VarE,(VarD+VarF*2)/2,0),3)/618*Var10;

Var12:=IF(Var11>40,10,Var11);

STICKLINE(Var12>8,0,Var12,4,1), , COLORFF00FF;

Var13:=HHV(HIGH,30);

Var14:=LLV(LOW,30);

能量K:EMA((CLOSE-Var14)/(Var13-Var14)*97,5),COLORRED,linethick2;

能量D:EMA((CLOSE-Var14)/(Var13-Var14)*100,15),linethick2,colorff9933;

底部峰:5,pointdot,linethick2,COLORFF00FF;

DRAWTEXT(CROSS(底部峰,能量K),能量d,'●'),COLORWHITE;

DRAWTEXT(CROSS(底部峰,能量K),能量K+15,'底部形成'),COLORWHITE;

大智慧:100,,pointdot,linethick2,color00ccff;

强弱分界:50,pointdot,COLORWHITE;

DRAWTEXT(CROSS(90,能量K),80,'●'),COLOR00FF00;

DRAWTEXT(CROSS(90,能量K),90,'有风险'),COLOR00FF00;

DRAWTEXT(CROSS(90,能量K),能量K+13,'●'),COLOR00FF00;

DRAWTEXT(CROSS(能量D,能量K),98,'死叉'),COLORFFCC66;

DRAWTEXT(CROSS(能量D,能量K),90,'●'),COLORFFCC66;

DRAWTEXT(CROSS(能量K,能量D),8,'金叉'),COLORYELLOW;

DRAWTEXT(CROSS(能量K,能量D),15,'●'),COLORYELLOW;

0,pointdot,linethick2,COLORFF00FF;

渐变色源码供参考:

STICKLINE(0 ,0,-1,15,0) ,COLORFF0098;

STICKLINE(10 ,10,0,15,0) ,COLORFF009A;

STICKLINE(20 ,20,10,15,0),COLORFF009C;

STICKLINE(30 ,30,20,15,0),COLORFF009E;

STICKLINE(40 ,40,30,15,0),COLORFF00A0;

STICKLINE(50 ,50,40,15,0),COLORFF00A2;

STICKLINE(60 ,60,50,15,0),COLORFF00A4;

STICKLINE(70 ,70,60,15,0),COLORFF00A6;

STICKLINE(80 ,80,70,15,0),COLORFF00A8;

STICKLINE(90 ,90,80,15,0),COLORFF00AA;

STICKLINE(100 ,100,90,15,0),COLORFF00AC;

STICKLINE(110 ,110,100,15,0),COLORFF00AF;

单色源码供参考:

STICKLINE(CLOSE>0,h*9.0,l*0.01,8,0),color7d7f0f;

K线

STICKLINE(C>=O,C,O,7,0),COLORRED;

STICKLINE(C>=O,C,O,4,0),COLOR7070ff;

STICKLINE(C>=O,C,O,2,0),COLORYELLOW;

STICKLINE(C>=O,H,L,0,0),COLORYELLOW;

STICKLINE(C<=O,C,O,7,0),COLORFF2020;

STICKLINE(C<=O,C,O,4,0),COLORFF6600;

STICKLINE(C<=O,C,O,2,0),colorffcc66;

STICKLINE(C<=O,H,L,0,0),colorffcc66;

副图背景色源码供参考:

STICKLINE(100,0,100,8,0),color7d7f0f;{注意指标的坐标,按不同的坐标做相应的调整,本例是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换成成交量VOL就行了!

例: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、多次金叉(以常见的MACD指标为例)

(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、乖离均线

BIAS1:(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,(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;

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

MACD底背离: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));

KDJ底背离:STICKLINE(FILTER(B2>0,5),0,1,3,0),COLORYELLOW;

DRAWTEXT(FILTER(B2>0,5),0.80,'KDJ底背离'),COLORYELLOW;

A3:=BARSLAST(ref(cross('RSI.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>(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乖离率

指标原理: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(柱线的编写实例)

指标原理: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指标

指标原理:该指标根据估价“择强汰弱”的原理,以特定时期内股价的变动情况推测价格未来的变动方向,并根据股价涨跌幅度显示市场的强弱,通过比较一段时期内的平均收益涨数和平均收盘跌数来分析市场买卖盘的意向和实力,从而作出未来市场的走势的分析。

计算方法:计算公式为: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指标

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比成交量看得清楚。

计算方法:OBV构成的基本原理,是根据潮涨潮落的原理。每一天的成交量可以理解成潮水,但这股潮水是向上还是向下,是保持原来的方法,还是中途回落?这个问题就有当天的收盘价与昨天的收盘价的大小比较而决定。

1、如果今收盘价≥昨收盘价,则这一潮水属于多方的潮水,

2、如果今收盘价<昨收盘价,则这一潮水属于空方的潮水。

SUM(IF(CLOSE>REF(CLOSE,1),VOL,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连续几次撞顶(底),局部形成双重或多重底(顶)则是(进货)出货的信号。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多