K线函数 指标编写 完整版 下载本文

K线函数

炒股票最先接触到的就是K线图,每天必看,不看就会迷失方向,就不知道如何买卖。所以就从K线开始介绍有关的函数: 收盘价 close 这是取得该周期的收盘价; 最高价 high 这是取得该周期的最高价; 最低价 low 这是取得该周期的最低价; 开盘价 open 这是取得该周期的开盘价; 成交量 vol 这是取得该周期的成交量; 成交额 amount 这是取得该周期的成交额;

一根K线由四个价格组成即收盘价close、最高价high、最低价low、开盘价open。 上述几个函数可以编写以下几个简单的指标:

1、close>open 意思是当天的收盘价大于开盘价,反映在K线上就是当天收阳,用该指标选股所选出的股票在当天都收阳(>是数学上的大于符号)。

2、close

3、close<5 意思是收盘价小于5元,用该指标选股所选出的都是低于5元以下的股票,如选低于3元的股票,把5改成3就行啦。如选高于5元的股票,把<符号改成>就OK啦! K线的描述 阳线

close>open;{收盘价大于开盘价} 阴线

close

open>ref(close,1);{开盘价大于昨天的收盘价} 低开

open

open>ref(high,1);{开盘价大于昨天的最高价} 跳空低开(low为最低价)

open

以上K线的描述用到了另外一个函数REF,这是一个向前引用的函数,意思是引用若干周期前的数据。 用法:REF(X,A),引用A周期前的X值。 例如:REF(CLOSE,1),表示上一周期的收盘价,在日线上就是昨收。记住了吗,以后经常要用到的。

从本课开始所讲的函数需要编制完整的指标,对初学编写指标的网友有必要了解指标的结构。

指标的结构:

1、一个完整的指标要有自己的名称,如百万抄底、稳健追涨等。一是便于查询使用;二是没有名称在指标编辑器中不能测试通过。

2、一条指标语句要有语句名。如:var1:ma(close,5);var1就是语句名,多条语句可按顺序排列如var1、var2、var3等。

3、在编公式中所运用的标点符号均是在英语状态下的符号。

4、在编制公式中,有要显示的句子和不显示的句子,要显示用“:”不要显示用“:=”,一个源码中最多只能有16个可显示的句子,并且每句结束后要加分号“;”。如var1:ma(close,5);在图上显示5日均线;var1:=ma(close,5);在图上不显示该条均线,表示其它语句要引用它。 5、开盘价(open)、收盘价(close)、最高价(high)、最低价(low),成交量(vol)在公式中可用该函数的第一个字母代替,如var1:ma(c,5);。因此在编公式时不要单独用这几个字母用做语句名等。

6、设计计算参数:我们有时需要调节公式中的常数来看公式的表现,可以直接进入公式修改,更方便的方法是用参数来指代公式中的常数,需要调节公式时不需进公式只需调节参数就可以了。比如,要修改REF(close,1)中的第二个参数1,这时可以把它设为一个计算参数N,公式写成REF(close,N),到时调节N即可。计算参数包括参数名称、最小值、最大值、缺省值四个部分。参数名称用于标识参数,本例我们将参数名定位N,计算公式时采用缺省值计算,而最小值和最大值是参数的调整范围。设定参数后,在图形分析窗口显示该指标时,指标名跟着有参数,右键点击参数即可对它进行修改如下图。

7、技术指标分为主图和副图,默认状态下指标编写完成后经测试通过确认后是副图;如果是主图指标,测试通过确认之前在指标编辑器中选择主图叠加即可。 下面进入正题。

移动平均函数大致有四种:

1、MA 简单移动平均,意思是求简单移动平均。 用法:MA(X,N),求X的N日移动平均值。例如:MA(CLOSE,10),表示求10日均价。

均线的画法:计算N日内收盘价的算术平均值,公式为:MA(X,N)表示X的N日平均。 例如:

MA1: MA (CLOSE,5), coloryellow ;

表示为:参数名 画一条5日收盘价的均线 设置该线为黄色

2、EMA 指数平滑移动平均 意思是求指数平滑移动平均。 用法:EMA(X,N),求X 的N日指数平滑移动平均。例如:EMA(CLOSE,30),表示求30日指数平滑均价。

均线的画法:计算N日内收盘价的算术平均值,公式为:EMA(X,N)表示X的N日平均。 例如:

EMA1: EMA (CLOSE,5), colorff00ff;

表示为:参数名 画一条5日收盘价的均线 设置该线为粉色

3、DMA 动态移动平均 意思是求动态移动平均。 用法:DMA(X,A),求X的动态移动平均,A必须小于1。例如:DMA(CLOSE,VOL/CAPITAL),表示求以换手率作平滑因子的平均价。

(CAPITAL是流通盘大小函数)

均线的画法:计算A收盘价的算术平均值,公式为:DMA(X,A)表示X的N日平均。 例如:

DMA1: DMA (CLOSE,VOL/CAPITAL), colorff00ff;

表示为:参数名 画一条以换手率作平滑因子收盘价的均线 设置该线为粉色

4、SMA 移动平均 求移动平均。 用法:SMA(X,N,M),求X的N日移动平均,M为权数。N必须大于M。 例如:SMA(CLOSE,30,1),表示求30日移动平均价。

均线的画法:计算N日内收盘价的算术平均值,公式为:EMA(X,N)表示X的N日平均。 例如:

SMA1: SMA (CLOSE,30,1), colorff00ff;

表示为:参数名 画一条30日收盘价的均线 设置该线为粉色

5、WMA 加权移动平均。用法:WMA(X,N,),求X的N日加权移动平均。例如:WMA(CLOSE,5),表示求5日加权移动平均价。

均线的画法:计算N日内收盘价的算术平均值,公式为:EMA(X,N)表示X的N日平均。 例如: WMA: WMA(CLOSE,5), COLORWHITE;

表示为:参数名 画一条5日收盘价的加权移动均线 设置该线为白色 明白了上面这些函数用法,我们开始编第一个指标: 给指标起个名,就叫\月均线主图\吧!

ma1:ma(close,5),colorwhite;{画一条5日收盘价的均线,设置该线为白色} ma2:ma(close,10),colorff00ff;{画一条10日收盘价的均线,设置该线为粉色} ma3:ma(close,20),color00ff00;{画一条20日收盘价的均线,设置该线为绿色} ......根据个人需要可画多条线。

如果想设置参数,按参数名称 最小值 最大值 缺省值在指标编辑器中添上如下值: n1 1 100 5 n2 1 100 10 n3 1 100 20

把指标中的5、10、20分别改为n1、n2、n3即可。 第二个指标:起名\季均线主图\

ema1:ema(close,20),colorff00ff;{画一条20日收盘价的均线,设置该线为粉色} ema2:ema(close,40),color00ff00;{画一条40日收盘价的均线,设置该线为绿色} ema3:ema(close,60),colorwhite;{画一条60日收盘价的均线,设置该线为白色} .......根据个人需要可画多条线。 第三个指标:起名\长短结合主图\

sma1:sma(close,5,1),color00ff00;{画一条5日收盘价的均线,设置该线为绿色} sma2:sma(close,10,1),coloryellow;{画一条10日收盘价的均线,设置该线为黄色} sma3:sma(close,60,1),colorblue;{画一条60日收盘价的均线,设置该线为蓝色} 几种移动均线的比较

移动均线是我们经常用到的指标,几乎天天看均线,根据网友的建议,对以下几种移动均线做一比较。

1、简单移动平均MA

移动平均线实质上是一种追踪趋势的工具,而且滞后于市场的变化。这些结果的原因,就是它的计算方法了。

算法: (X1+X2+X3+...+Xn)/N 如:5日均线=(今天收盘价+昨天收盘价+.....5天前的收盘价)/5; 从输出看,N所取周期越长,曲线就越平滑。 {主图指标1}

MA5:MA(CLOSE,5),COLOR00FF00,LINETHICK2; MA10:MA(CLOSE,10),COLORWHITE,LINETHICK2; MA20:MA(CLOSE,20),COLORFF00FF,LINETHICK2;

2、EMA 指数平滑移动平均 意思是求指数平滑移动平均。

算法:若Y=EMA(X,N) 则Y=[1/N*X+(1-1/N)*Y??]其中Y?表示上一周期Y值。 {主图指标2} EMA5:EMA(CLOSE,5),COLOR00FF00,LINETHICK2; EMA10:EMA(CLOSE,10),COLORWHITE,LINETHICK2; EMA20:EMA(CLOSE,20),COLORFF00FF,LINETHICK2;

3、DMA 动态移动平均 意思是求动态移动平均。

算法: 若Y=DMA(X,A) 则 Y=A*X+(1-A)*Y?,其中Y?表示上一周期Y值,A必须小于1。 {主图指标3} DMA5:

DMA((CLOSE+OPEN)/2,VOL/(SMA(VOL,5,1)*5)),COLOR00FF00,LINETHICK2;{5日成本} DMA10:

DMA((CLOSE+OPEN)/2,VOL/(SMA(VOL,10,1)*10)),COLORWHITE,LINETHICK2;{10日成本} DMA20:

DMA((CLOSE+OPEN)/2,VOL/(SMA(VOL,20,1)*20)),COLORFF00FF,LINETHICK2;{20日成本}

4、SMA 移动平均 求移动平均。

算法: 若Y=SMA(X,N,M) 则 Y=[M*X+(N-M)*Y?)/N, 其中Y?表示上一周期Y值,N必须大于M。 {主图指标4}

SMA5:SMA(close,5,1),COLOR00FF00,LINETHICK2; SMA10:SMA(close,10,1),COLORWHITE,LINETHICK2; SMA20:SMA(close,20,1),COLORFF00FF,LINETHICK2;

5、WMA 求加权移动平均。

算法:WMA[X,N]=(1*X1+2*X2+3*X3+......+N*Xn)/(1+2+3+......+N); 用法:WMA(X,N);求X的N日加权移动平均. {主图指标5}

wma5:wma(close,5),color00ff00,LINETHICK2; wma10:wma(close,10),colorwhite,LINETHICK2; wma20:wma(close,20),colorff00ff,LINETHICK2;

有比较才有鉴别。上面5张图依次排列并一一与下面5个均线主图指标相对应的,通过比较可以看出,由于计算方法的不同,相同周期的均线排列和分布也略有不同。有的线条分布的分散一些,有的分布紧密一些。但差别不大,究其原因在于编制的思路和机理上的差异。运用到实战中,看你如何选择了,如果喜欢看成本均线,应该选择DMA均线,看均价其它

4个就行了。总之,结合实际需要灵活运用。由于有的均线系统计算复杂,再深层次的解释本人也难以做到了。

颜色代码供选择设置: 各种颜色表示:

红色colorred、灰色colorgray、绿色color00ff00、黄色coloryellow、蓝色colorblue、白色colorwhite. 另外颜色还有:

粉红colorf00ff0、草绿color00ff00、淡蓝colorf0f000、紫色colorff0099、金黄色color008364、紫红color000999、综色color0055ff、深黄色color00cccc、紫罗蓝colore66878、天蓝色colorff937f 深草绿color399c7f

实际上只要在color后面加上0-9、A-F中任6个数字字母组成,如要其它颜色,可自己调。

1、条件表达式:在设计公式中,需要大量使用条件表达式,根据条件表达式的结果,作出判断,以便确定下一步该做什么,不该做什么。基本的条件表达式由“>、>=、<、<>、<=、=、and、or”等比较运算符、逻辑运算符组成,其中\表示并、并且,\表示或、或者。条件表达式的值只有2个,1和0,条件成立则返回1,条件不成立则返回0,下面举例说明:

例1:close>open{表示收盘价大于开盘价,如果成立返回1,否则这个条件表达式的值为0};

例2:close>open and close>ma(close,5){表示收盘价大于开盘价并且close大于5日均价,and 是\且、并且\意思是两个条件同时满足才能作出判断};

例3:close

说明:上面例子中,包含在半角的一对大括号\、\里的内容是注释语句,不会被运行。一个好公式设计,需要花费很多心血,时间久了有可能自己也会忘记当时是怎么设计的,此外也为了别人能看懂公式,适当的加入注释是个好习惯。

2、IF条件函数:设计公式时,条件函数IF很重要,经常都要用到,注释如下: IF 条件函数,根据条件求不同的值。

用法:IF(X,A,B)若X不为0则返回A,否则返回B

例如:IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值}

3、CROSS 交叉函数,这也是常用的函数。用法:CROSS(A,B) ,A:变量或常量,判断交叉的第一条线。 B:变量或常量,判断交叉的第二条线。 例如:CROSS(MA(CLOSE,5),MA(CLOSE,10)),5日均线与10日均线金叉;CROSS(CLOSE,12),价格由下向上突破12元。

明白了条件表达式的意义和IF条件函数、CROSS 交叉函数后,我们来设计二个有点实用价值的公式: 第一个公式: {135战法}

股道短:=MA(C,13);{13日收盘价的均线,\在图上不显示均线} 股道中:=MA(C,34);{34日收盘价的均线,\在图上不显示均线} 股道长:=MA(C,55);{55日收盘价的均线,\在图上不显示均线} 短交长:=CROSS(股道短,股道长);{股道短向上穿过股道长,金叉} 中交长:=CROSS(股道中,股道长);{股道中向上穿过股道长,金叉}

粗选:短交长 OR 中交长,COLORYELLOW;{短交长或者中交长这两个条件有一个成立显示黄色脉冲信号}

空头排列:=股道短<股道中 AND 股道短<股道长 AND 股道中<股道长;{三个条件同时成立} 走平上行:=股道短>=REF(股道短,1);{大于等于昨日的13日收盘价的均线}

红杏出墙:O<股道短 AND C>股道短 AND 走平上行 AND 空头排列,COLORRED;{四个条件同时成立显示红色脉冲信号}

多头排列:=股道短>股道中 AND 股道短>股道长 AND 股道中>股道长;{三个条件同时成立}

满园春色:O<股道短 AND C>股道短 AND 多头排列,COLOR00FF00;{三个条件同时成立显示绿色脉冲信号}

基础:=股道长>REF(股道长,1) AND 股道短>股道长 AND 股道中>股道长;{三个条件同时成立} 梅开二度:基础 AND CROSS(股道短,股道中),COLORWHITE;{两个条件同时成立显示白色脉冲信号} 三线齐推:O<股道短 AND O<股道中 AND O<股道长 AND C>股道短 AND C>股道中 AND C>股道长,COLORFFCC66;{六个条件同时成立显示浅蓝色脉冲信号}如图:

第二个公式: {启动在即} 趋

势: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),coloryellow; 股价启动在即: IF(CROSS(趋势,3),100,0),colorff00ff; 捕食秘密买点: IF(趋势<=3,25,0),color00ff00; 机构建增补仓: IF(趋势<5,45,0),colorwhite; 如图:

公式解释:

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

价,27))*100,5,1),3,1),coloryellow;{画一条黄色趋势线,数字27表示周期,也就是27天,数字5和3也表示周期5天和3天}

股价启动在即: 条件函数(交叉函数(趋势,3),100,0),colorff00ff;{趋势上穿坐标3,在0至100坐标处显示粉色脉冲信号}

捕食秘密买点: 条件函数(趋势<=3,25,0),color00ff00;{趋势小于等于坐标3,在0至25坐标处显示绿色脉冲信号}

机构建增补仓: 条件函数(趋势<5,45,0),colorwhite;{趋势小于坐标5,在0至45坐标处显示白色脉冲信号} 以上2个指标建议你对照指标语句和图反复多看几遍,你也可以动手修改如修改脉冲信号的长度等,更重要的是要理解指标组合、嵌套的含义,只有读懂了指标,你才能把自己的想法、理念编成指标。

只爭朝夕 一、线形函数

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

1、函数:STICK 说明:画棒状线,STICK的英文是棍、棒的意思。 如副图公式:C>REF(C,1) AND C>REF(C,2),STICK;见下图:

2007-06-21 17:58

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; 见下2个图:

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、函数:DRAWICON

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

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

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

DRAWICON(CLOSE

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

用法:DRAWLINE(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、函数:DRAWTEXT 说明:在图形上显示文字。

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

示例:DRAWTEXT(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

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

函数:COUNT(X,N) 参数: X为数组,N为计算周期

说明:统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。 示例:COUNT(CLOSE>OPEN,20);表示统计20周期内收阳的周期数。 看下面的指标(自己取名吧),有几条语句用了COUNT函数: V1:=(MA(CLOSE,80)-MA(CLOSE,13)/3);

神奇线:MA((CLOSE-V1)/V1,1),coloryellow,linethick2;

买点:IF(CROSS(神奇线,0) AND LOW/REF(HIGH,1)<1.012,0.5,0), STICK; 稳赚:IF(COUNT(神奇线>REF(神奇线,1),3)=3 AND COUNT(神奇线<0,10)=10 AND REF(神奇线,3)=LLV(神奇线,10),0.5,0);

V2:=(CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100; V3:=(EMA(CLOSE, 6)-EMA(CLOSE, 12))*100; 猎庄:V3<13 AND V2>9,stick,ColorFFFFFF,linethick2;

YD:=(count(c=10 OR count(c=10) and count(H/L>1.048,13)>=7; DTJJ:=DMA(c,V/MA(V,13)/13); XJPL:=c/DTJJ<0.91; a1:=YD and XJPL;

STICKLINE(a1,0,0.50,4,1),colorffcccc; 回调买入:0,colorffcccc;

aa1:=cross(ref(c,3),ref(ma(c,20),3)); bb1:=count(c>ma(c,20),3)=3;

cc1:=cross(c,ma(c,20)) and (c-ma(c,20))/ma(c,20)>0.03; 突破月线:if((aa1 and bb1) or cc1,0.5,0),stick,linethick2,colorred; drawicon((aa1 and bb1) or cc1,0.6,1);{如图}

指标解析:

V1:=(简单移动平均(收盘价,80)-简单移动平均(收盘价,13)/3);

神奇线:简单移动平均((收盘价-V1)/V1,1),coloryellow,linethick2;{画黄色粗线}

买点:条件函数(交叉函数(神奇线,0) AND 最低价/向前引用(最高价,1)<1.012,0.5,0), 棒状线;{在坐标0--0.5处画棒状线}

稳赚:条件函数(统计总数(神奇线>向前引用(神奇线,1),3)=3 AND 统计总数(神奇线<0,10)=10 AND 向前引用(神奇线,3)=最低值(神奇线,10),0.5,0);{在坐标0--0.5处显示脉冲信号}

V2:=(收盘价-向前引用(收盘价,1))/向前引用(收盘价,1)*100;

V3:=(指数平滑移动平均(收盘价, 6)-指数平滑移动平均(收盘价, 12))*100;

猎庄:V3<13 AND V2>9,棒状线,ColorFFFFFF,linethick2;{默认在坐标0--1处画白色棒状线} YD:=(统计总数(收盘价<向前引用(开盘价,1),13)>=10 OR 统计总数(收盘价<向前引用(收盘价,2),13)>=10) and 统计总数(最高价/最低价>1.048,13)>=7; DTJJ:=动态移动平均(收盘价,成交量/简单移动平均(成交量,13)/13); XJPL:=收盘价/DTJJ<0.91;

a1:=YD and XJPL;{两个条件同时成立}

画柱线(a1,0,0.50,4,1),colorffcccc;{在坐标0--0.5处画宽度为4的青色空心棒状线} 回调买入:0,colorffcccc;{在指标图上方显示?回调买入?}

aa1:=交叉函数(向前引用(收盘价,3),向前引用(简单移动平均(收盘价,20),3)); bb1:=统计总数(收盘价>简单移动平均(收盘价,20),3)=3;

cc1:=交叉函数(收盘价,简单移动平均(收盘价,20)) and (收盘价-简单移动平均(收盘价,20))/简单移动平均(收盘价,20)>0.03;

突破月线:条件函数((aa1 and bb1) or cc1,0.5,0),棒状线,linethick2,colorred;{在坐标0--0.5处画红色粗棒状线}

画图标((aa1 and bb1) or cc1,0.6,1);{在坐标0.6处显示红脸} 下面是几个运用COUNT函数的指标例句: (1)、n日内阴线多于阳线 count(open>close,n)/n<0.5;

注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等 ,达到确定阴线占全部K线个数的比例)。 (2)、n日内阳线多于阴线 count(open0.5;

注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等 ,达到确定阳线占全部K线个数的比例)。 (3)、n日内上涨多于下跌(第二天开盘高于前一天收盘) count(c>ref(c,1),n)/n>0.5;

注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等 ,达到确定其中比例)。

(4)、n日内上涨少于下跌(第二天开盘低于前一天收盘) count(c>ref(c,1),n)/n<0.5;

注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等,达到确定其中比例)。 (5)、连续n日收阳线 up:=close>open; count(up,n)=n;

注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。n为指标参数,可在参数设定范围内设定参数范围。 (6)、连续n日内收阴线 up:=close

注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。 (7)、连续n天上涨

count(close>ref(close,1),n)=n;

注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。 (8)、连续n天下跌 count(c

注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。

以上的参数n只要添入你所需要的周期数即可,如5、10、30等日期就是一个完整的指标或选股指标。

股市的不随机规律,隐藏在统计概率之中。用这两个函数,可以统计很多概率性的规律。 比如,以两天的收盘价相比,昨天是下跌的,今天的下跌的概率是多少?看下面指标: {当日升跌概率} A:=C

B:=REF(A,1) AND C>REF(C,1);{昨天下跌,今天上涨} D:=REF(A,1) AND C=REF(C,1);{昨天下跌,今天平盘} E:=REF(A,1) AND C

那么连跌两天之后,第三天收盘的各种概率是多少?看下面指标: A:=C

B:=REF(A,1) AND C>REF(C,1);{前两天下跌,今天上涨} D:=REF(A,1) AND C=REF(C,1);{前两天下跌,今天平盘}

E:=REF(A,1) AND C

从指数的输出看,概率更明显了。 连跌三天之后呢?看下面指标:

A:=CREF(C,1);{前三天下跌,今天上涨} D:=REF(A,1) AND C=REF(C,1);{前三天下跌,今天平盘} E:=REF(A,1) AND C

规律就更明显了。

不要小看这些数据。虽然没有有些“高手”做出的成功率达百分之九十左右的公式那么夸张,但很有意义的。要知道股市中的随机因素太多,平衡性很强,稍稍的统计偏向,足可作为有用的参考。

函数:SUM(X,N) 参数: X为数组,N为计算周期

说明:统计N周期中X的总和,N=0则从第一个有效值开始。 示例:SUM(VOL,0) 表示统计从上市第一天以来的成交量总和。

SUM和COUNT这两个函数不同之处在于COUNT,计数。SUM,总数、和。请注意这两个函数的区别。

当数组为逻辑运算判断的结果时,SUM和COUNT的返回值是一样的。一般习惯上,对于逻辑运算信号,用COUNT统计,返回其它数值的,用SUM统计。当COUNT统计一般数

值时,数组大于等于1时,计入;小于1时,不计入。这两个函数,主要用于统计。 用COUNT(CROSS(MA(C,5),MA(C,10)),0);就可以统计出全部的五天均线上穿十天均线的金叉数。

用SUM(CROSS(MA(C,5),MA(C,10)),0);和以上得出的结果应该是一样的。 请看下面的指标如何运用SUM函数的。 {多空曲 n:1 100 13 m:1 100 34}

obv:=sum(if(close>ref(close,1),vol,if(close

stickline(ac>=ao,ah,al,0.1,0),colorred;{在ah与al之间画宽度为0.1的实心红柱线} stickline(ac>=ao,ao,ac,4,0),colorred;{在ao与ac之间画宽度为4的实心红柱线} stickline(ac0,ma(ac,2)),colorff00ff; ka1:=(hhv(ah,m)-llv(al,m))/m; ka2:=sum(ac,n)/n; m1:ka2-ka1*n,colorwhite; m2:ka2+ka1*n,colorwhite;

多空分界:(m1+m2)/2,coloryellow;{见下图}

指标解析:

{多空曲 n:1 100 13 m:1 100 34}

obv:=求和(条件函数(收盘价>向前引用(收盘价,1),成交量,条件函数(收盘价<向前引用(收盘价,1),0-成交量,0)),0);

ah:=(求和(最高价,2)*(求和(1+获利盘比例(最高价),2))*求和(obv,2))/2; al:=(求和(最低价,2)*(求和(1+获利盘比例(最低价),2))*求和(obv,2))/2; ao:=(求和(开盘价,2)*(求和(1+获利盘比例(开盘价),2))*求和(obv,2))/2; ac:=(求和(收盘价,2)*(求和(1+获利盘比例(收盘价),2))*求和(obv,2))/2; 画柱线(ac>=ao,ah,al,0.1,0),colorred; 画柱线(ac>=ao,ao,ac,4,0),colorred; 画柱线(ac

画柱线(ac

两日参考:画折线(收盘价>0,简单移动平均(ac,2)),colorff00ff; ka1:=(最高值(ah,m)-最低值(al,m))/m; ka2:=求和(ac,n)/n; m1:ka2-ka1*n,colorwhite; m2:ka2+ka1*n,colorwhite; 多空分界:(m1+m2)/2,coloryellow; 下面是几个运用sum函数的指标例句: (1)、阶段缩量

sum(vol,n1)/capital<=n2;

注:n1为要统计的阶段时间,n2为缩量比例,可在参数设定范围内设定参数范围。 (2)、阶段放量

sum(vol,n1)/capital>=n2;

注:n1为要统计的阶段时间,n2为y放量比例,可在参数设定范围内设定参数范围。 (3)、放量上攻

a:=(c-ref(c,1))/ref(c,1)>=(n/100);

sum(vol,n1)/capital>=(n2/100) and count(vol>ref(vol,1),n3 )=n3 and count(a,n3)=n3; 完整含义:每日股价涨幅均大于n%,n1日内累计换手率大于n2%,并且成交量连续在n3日内放大。 (4)、阶段强势股

a:=sum(if(date-n=0,indexc,0),0); b:=sum(if(date-n1=0,indexc,0)0); e:=sum(if(date-n=0,c,0),0); f:=sum(if(date-n1=0,c,0),0); ((f-e)/e)>((b-a)/a);

注:该公式求的是n日-n1日之间涨幅高于大盘的股票。n、n1参数的表达格式为yymmdd,注意在2000年前的表达为年份的后两位,例如1999年为99,从2000年开始以100依次向后累加,例如2001年9月14日为1010914,indexc函数表示同期大盘的收盘价,该函数对分笔成交分析周期无效。 (5)、阶段弱势股

a:=sum(if(date=n,indexc,0),0); b:=sum(if(date=n1,indexc,0)0); e:=sum(if(date=n,c,0),0); f:=sum(if(date=n1,c,0),0); ((f-e)/e)<((b-a)/a);

注:该公式求的是n日-n1日之间涨幅低于大盘的股票。n、n1参数的表达格式为yymmdd,注意在2000年前的表达为年份的后两位,例如1999年为99,从2000年开始以100依次

向后累加,例如2001年9月14日为1010914,indexc函数表示同期大盘的收盘价,该函数对分笔成交分析周期无效。

1、引用函数HHV 最高值 求最高值。 用法:HHV(X,N),求N周期内X最高值,N=0则从第一个有效值开始。 例如:HHV(HIGH,30),表示求30日最高价。

2、引用函数LLV 最低值 求最低值。 用法:LLV(X,N),求N周期内X最低值,N=0则从第一个有效值开始。 例如:LLV(LOW,0),表示求历史最低价。 例1、如指标(主图)

CG:=Ma(C,18),color00ff00;{18日简单移动平均} FL:=hhv(CG,3),COLOR00ff00;{取3日CG的最高值}

FL3:hhv(CG,9),COLOR00FF00,linethick2;{取9日CG的最高值,画绿色粗线}

FS3:if(CG

例2、根据走势特征编制n日内创新高选股公式: hhv(high,n)=hhv(high,0) and barscount(c)>=n;

注:n为指标参数,可在参数设定范围内设定参数范围。Hhv(x,n),求n周期内x最高值,n=0则从第一个有效值开始; 例2、指标(副图) {三线开花 n:1 100 20} C0:=(h+l+c)/3;

a1:=HHV(C0,n);a2:=LLV(C0,n);a3:=a1-a2; a4:=ema((C0-a2)/a3,2)*100;

b1:=HHV(C0,4*n);b2:=LLV(C0,4*n);b3:=b1-b2; b4:=ema((C0-b2)/b3,2)*100;

C1:=HHV(C0,16*n);C2:=LLV(C0,16*n);C3:=C1-C2; C4:=ema((C0-C2)/C3,2)*100;

短期相对价位:a4,color66dddd,linethick2; 中期相对价位:b4,color6699ff,linethick2; 长期相对价位:C4,color6600ff,linethick2; 天线:95,linethick2,coloreeee33,pointdot; 地线:5,linethick2,color33ee33,pointdot; 中线:50,linethick2,coloreeeeee,pointdot; 如图:

指标解析:

{三线开花 n:1 100 20}

C0:=(最高价+最低价+收盘价)/3;

a1:=最高值(C0,n);a2:=最低值(C0,n);a3:=a1-a2; a4:=指数平滑移动平均((C0-a2)/a3,2)*100;

b1:=最高值(C0,4*n);b2:=最低值(C0,4*n);b3:=b1-b2; b4:=指数平滑移动平均((C0-b2)/b3,2)*100;

C1:=最高值(C0,16*n);C2:=最低值(C0,16*n);C3:=C1-C2; C4:=指数平滑移动平均((C0-C2)/C3,2)*100; 短期相对价位:a4,color66dddd,linethick2; 中期相对价位:b4,color6699ff,linethick2; 长期相对价位:C4,color6600ff,linethick2; 天线:95,linethick2,coloreeee33,点状线; 地线:5,linethick2,color33ee33,点状线; 中线:50,linethick2,coloreeeeee,点状线; 例4、选股指标n日内创新低

llv(low,n)=llv(low,0) and barscount(close)>=n;

注n为指标参数,可在参数设定范围内设定参数范围。Llv(x,n),求n周期内x最低值,n=0则从第一个有效值开始

以上这两个函数在指标编写中被广泛采用。

1、函数:HHVBARS(X,N) 参数:X为数组,N为计算周期。上一高点位置 求上一高点到当前的周期数。

说明:求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计 用法: HHVBARS(HIGH,0) 求得历史新高到当前的周期数。

请看下面的指标: Var1:=VOL/CAPITAL*100;

Var2:=HHVBARS(HIGH, 50);{求得50日最高点到当前的周期数}

Var3:=(CLOSE-REF(OPEN, Var2))/REF(OPEN, Var2)*100;{收盘价-50日最高点到当前的周期数/50日最高点到当前的周期数*100} Var4:=REF(CLOSE,2)*0.865; Var5:=REF(CLOSE,13)*0.772; Var6:=MIN(Var4,Var5);

超跌:IF((CLOSE-Var6)/CLOSE<0.030 AND Var3<(-35) AND

SUM(Var1,5)/5<1.800,1,0)*10;{通过计算比较在低于50日最高点并符合其它几个条件的位置上显示脉冲信号}如图

2、函数: LLVBARS(X,N) 参数:X为数组,N为计算周期。上一低点位置 求上一低点到当前的周期数。

说明:求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计 用法:LLVBARS(HIGH,20) 求得20日最低点到当前的周期数。 你可以参照上面的指标示例运用该函数编写符合自己设计思路的指标。

1、函数:BACKSET 向前赋值 将当前位置到若干周期前的数据设为1。 用法:BACKSET(X,N),X非0,则将当前位置到N周期前的数值设为1。 例如:

BACKSET(CLOSE>OPEN,2),若收阳则将该周期及前一周期数值设为1,否则为0。 请看下面指标:

CSAR:SAR(10,2,20),LINETHICK2;{表示计算10日抛物转向,步长为2%,极限值为20%。} drawtext(CSAR>=H,CSAR,?°?),color00ff00;{当CSAR大于等于最高价,在CSAR上画。状线}

drawtext(CSAR<=L,CSAR,?°?),colorred;{当CSAR小于等于最低价,在CSAR上画。状线} TJ1:=BACKSET(SARTURN(10,2,20)<>0,2);{若10日抛物转向,步长为2%,极限值为20%,则将该周期及前一周期数值设为1,否则为0。} TJ2:=REF(TJ1,1);{引用上一周期TJ1}

drawtext(TJ2,CSAR,?°?),coloryellow;{TJ2条件满足在CSAR画。状线} STICKLINE(C>O,O,C,4,0),COLORRED; STICKLINE(C>O,H,C,1,1),COLORRED; STICKLINE(C>O,O,L,1,1),COLORRED;

STICKLINE(C<=O,O,C,4,0),COLORffcc66; STICKLINE(C<=O,H,O,1,1),COLORffcc66; STICKLINE(C<=O,L,C,1,1),COLORffcc66; {1.向下跌破转向点,卖出;向上突破转向点,买入 2.市道趋势明显时,转向点信号准确}

上面是一个抛物转向指标,在第二步句用到了BACKSET函数,与另一个抛物转向点函数SARTURN构成了一个指标语句。如图:

2、函数:BARSCOUNT 有效值周期数 求总的周期数。 用法:BARSCOUNT(X),第一个有效数据到当前的天数。 例如:BARSCOUNT(CLOSE),对于日线数据取得上市以来总交易日数,对于分笔成交取得当日成交笔数,对于1分钟线取得当日交易分钟数。请看下面指标:

bb1:=REF(CLOSE,1);

bb2:=SMA(MAX(CLOSE-bb1,0),7,1)/SMA(ABS(CLOSE-bb1),7,1)*100; bb3:=SMA(MAX(CLOSE-bb1,0),13,1)/SMA(ABS(CLOSE-bb1),13,1)*100; bb4:=BARSCOUNT(CLOSE);{取得上市以来总交易日数} bb5:=bb2<20 AND bb3<23 AND bb4>35;{这几个条件同时满足} bb5 AND COUNT(bb5,30)=1;

DRAWTEXT(bb5 AND COUNT(bb5,30)=1,{-5}45,?定海神针?),COLORYELLOW; STICKLINE(bb5 AND COUNT(bb5,30)=1,0,50,4,0),COLORWHITE; 如图:

3、函数:BARSLAST 上一次条件成立位置 上一次条件成立到当前的周期数。 用法:BARXLAST(X),上一次X不为0到现在的天数。 例如:

BARSLAST(CLOSE/REF(CLOSE,1)>=1,1),表示上一个涨停到当前的周期数。请看下面指标:

i:=MA(BARSLAST(HIGH=HHV(HIGH,16))*IF(CLOSE

r:=MA(BARSLAST(LOW=LLV(LOW,18))*IF(CLOSE>OPEN,VOL,1),4);{求上一次条件成立

到当前的周期数平均值}

短线逃顶:IF(i,0,90),color00ff00;{显示高度为90的绿色脉冲信号} DRAWICON(短线逃顶,95,2);{在坐标95处显示绿脸} 如图:

4、函数:BARSSINCE 第一个条件成立位置 第一个条件成立到当前的周期数。 用法:BARSSINCE(X),第一次X不为0到现在的天数。 例如:BARSSINCE(HIGH>10),表示股价超过10元时到当前的周期数。请看下面指标: A1:=VOL=HHV(VOL,120); A2:=CLOSE/OPEN>1.05; TJ:=A1 AND A2;

黑马起步:if(TJ OR BARSSINCE(TJ)=0,30,0),COLORWHITE,STICK ,LINETHICK3;{TJ条件成立或者在当前周期股票平均涨幅大于5%及成交量在120日内最高画白色柱线} 如图:

1、函数:FILTER 信号过滤 过滤连续出现的信号。 用法:FILTER(X,N),X满足条件后,删除其后N周期内的数据置为0。 例如:FILTER(CLOSE>OPEN,5),查找阳线,5天内再次出现的阳线不被记录在内。请看下面指标: 顶底背离:0,COLORYELLOW;

A1:=BARSLAST(ref(cross(\ B1:=ref(c,A1+1)>c and ref(\cross(\

MACD底背离:STICKLINE(FILTER(B1>0,5),0,0.75,3,0),COLOR00FF00;{5天内B1>0的条件不被记录在内,在当前周期内出现B1>0画绿色柱线}

DRAWTEXT(FILTER(B1>0,5),0.57,?MACD底背离?),COLOR00FF00; A2:=BARSLAST(ref(cross(\ B2:=ref(c,A2+1)>c and ref(\cross(\

KDJ底背离:STICKLINE(FILTER(B2>0,5),0,1,3,0),COLORYELLOW;{5天内B2>0的条件不被记录在内,在当前周期内出现B>0画黄色柱线}

DRAWTEXT(FILTER(B2>0,5),0.80,?KDJ底背离?),COLORYELLOW; A3:=BARSLAST(ref(cross(\ B3:=ref(c,A3+1)>c and ref(\cross(\

RSI底背离:STICKLINE(FILTER(B3>0,5),0,0.5,3,0),COLORFFCC66;{5天内B3>0的条件不被记录在内,在当前周期内出现B3>0画青色柱线}

DRAWTEXT(FILTER(B3>0,5),0.25,?RSI底背离?),COLORFFCC66; 2,COLORRED;

C1:=BARSLAST(ref(cross(\ D1:=ref(c,C1+1)

MACD顶背离:STICKLINE(FILTER(D1>0,5),2,1.25,3,0),COLOR0066FF;{5天内D1>0的条件不被记录在内,在当前周期内出现D1>0画橘黄色柱线}

DRAWTEXT(FILTER(D1>0,5),1.47,?MACD顶背离?),COLOR0066FF; C2:=BARSLAST(ref(cross(\ D2:=ref(c,C2+1)

KDJ顶背离:STICKLINE(FILTER(D2>0,5),2,1,3,0),COLORRED;{5天内D2>0的条件不被记录在内,在当前周期内出现D2>0画红色柱线}

DRAWTEXT(FILTER(D2>0,5),1.2,?KDJ顶背离?),COLORRED;

C3:=BARSLAST(ref(cross(\ D3:=ref(c,C3+1)

RSI顶背离:STICKLINE(FILTER(D3>0,5),2,1.5,3,0),COLORFF00FF;{5天内D3>0的条件不被记录在内,在当前周期内出现D3>0画粉色柱线}

DRAWTEXT(FILTER(D3>0,5),1.75,?RSI顶背离?),COLORFF00FF; 如图:

这是一个引用FILTER函数比较多的指标,请认真研究和体会一下语句的用法。 2、函数:SUMBARS 累加到指定周期数 向前累加到指定值到现在的周期数。 用法:SUMBARS(X,A),将X向前累加直到大于等于A,返回这个区间的周期数。 例如:

SUMBARS(VOL,CAPITAL),求完全换手到现在的周期数。

这个函数好用,在于它不但能精确地得到统计结果,而且能得到“模糊”的结果。 就以SUMBARS(VOL,CAPITAL)为例:

日期数:SUMBARS(VOL,CAPITAL);{返回成交量累加到流通盘的日期数}

验证:SUM(V,日期数)/CAPITAL;{把返回的日期数之内的成交量累计,再除以流通盘} 运行的结果中,我们可以看到,“验证”的输出,除了SUMBARS起算点附近之外,从来没有小于1的。可见SUMBARS只往多算,不往少算。请看下面指标: Var1:=(CLOSE-LLV(LOW,45))/(HHV(HIGH,45)-LLV(LOW,45))*100; Var2:=SMA(Var1,3,1); Var3:=SMA(Var2,3,1);

VarB:=SUM(IF(CLOSE>REF(CLOSE,7),VOL,IF(CLOSELLV(CLOSE,VarC),1,-1); VarE:=IF(VarB>LLV(VarB,VarC),1,-1); VarF:=VarD*VarE; Var10:=IF(VarF=-1,1,0);

关注:IF(Var10 AND CLOSE=LLV(CLOSE,20) AND Var3<12,70,1),colorffcc66;{在图上0--70的坐标处显示青色脉冲信号}

V1:=SUM(IF(CLOSE>REF(CLOSE,1),VOL,IF(CLOSELLV(CLOSE,V2),1,-1); V4:=IF(V1>LLV(V1,V2),1,-1); V5:=V3*V4; V6:=IF(V5=-1,1,0); V7:=COUNT(V6=1,8)>2; V8:=AMOUNT/VOL/100;

V9:=(3*HIGH+LOW+OPEN+2*CLOSE)/7; VA:=SUM(AMOUNT,13)/V8/100; VB:=DMA(V9,VOL/VA); VC:=(CLOSE-VB)/VB*100<-15;

VD:=(CLOSE-MIN(REF(CLOSE,5)*0.865,REF(CLOSE,21)*0.772))/CLOSE<0.05; 长针:(VC AND VD AND V7)*60,coloryellow;{在图上0--60的坐标处显示黄色脉冲信号}

如图:

下面这组函数用于算术运算,相对简单。

1、ABS 绝对值 求绝对值。 用法:ABS(X)返回X的绝对值。 例如:ABS(-34)返回34。 请看下面指标: {真实量比}

V1:=AMOUNT/10000;

对敲: FINANCE(33), POINTDOT,colorffcc66; Var1:=ref(c,1); var2:=(var1-l)/(h-l); var3:=v1*var2; var4:=V*var2;

var5:=abs(var4);{返回var4} var6:=abs(var3);{返回var3}

var7:=abs(v1-var6);{返回v1-var6差}

大单卖盘:abs(v-var5)/100,color00ffff;{返回v-var5差除100} 买盘:var3/100,colorff00ff; 成交金额:V1/1000,color00ff00;

买卖盘比%:abs(v-var3)/v*100,colorc0c0c0;{返回v-var3差} stickline(c>0,0,var6,5,0),colorffff00;{画天兰色柱} 换手:100*v/capital,colorred;

STICKLINE(换手<3,var6,v1 ,5 ,0),colorred;{画红色柱}

STICKLINE(换手>=3 and 换手<7,var6, V1,5.5,0),coloryellow;{画黄色柱} STICKLINE(换手>=7,var6, V1, 4,0) ,color00ff00;{画绿色柱} 如图:

2、BETWEEN 介于 介于两个数之间。 用法:BETWEEN(A,B,C),表示A处于B和C之间时返回1,否则返回0。 例如:BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5)),表

示收盘价介于5日均线和10日均线之间。请看下面指标: {智慧探庄 参数:下%:1 100 5 上%:1 100 5}

VAR1:=((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27)))*(100); VAR2:=SMA(VAR1,9,1); A:SMA(VAR2,5,1),Color00FFFF; B:SMA(A,3,1),ColorFF00FF; F:(3)*(A)-(2)*(B),Color00FF00;

趋势线:MA(CLOSE,20)-(MA(CLOSE,20))/(3),ColorFFFFFF; X:=((CLOSE)/(趋势线)-1)*(100);

AA:=BETWEEN(X,下%,上%);{表示x介于参数下%,上%之间} 智慧探庄:IF((AA>0),5,80),ColorFFFF00; VAR3:=(MA(WINNER(CLOSE),5))*(100); 智慧出击:=(CROSS(VAR3,2.5))*(85); 出击:IF((智慧出击>0),60,0),Color0000FF;

BB:IF(((智慧出击>0) or (出击>0)),2,20),Color008000,Stick; 如图:

3、LONGCROSS 维持交叉函数 两条线维持一定周期后交叉。 用法:LONGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0。 例如:LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5),表示5日均线维持5周期后与10日均线金叉。

4、CEILING 向上舍入 向数值增大方向舍入。 用法:CEILING(A)返回沿A数值增大方向最接近的整数。 例如:CEILING(12.3)求得13,CEILING(-3.5)求得-3。

5、FLOOR 向下舍入 向数值减小方向舍入。 用法:FLOOR(A)返回沿A数值减小方向最接近的整数。 例如:FLOOR(12.3)求得12,FLOOR(-3.5)求得-4。CEILING与FLOOR用法一样,区别在于向上舍入和向下舍入。 下面指标用到了这几个函数:

aa1:=(EMA(CLOSE,12)-EMA(CLOSE,26))*100+50; aa2:=EMA(aa1,9);

aa3:=(HHV(HIGH,21)-CLOSE)/(HHV(HIGH,21)-LLV(LOW,21))*100-10; aa4:=(CLOSE-LLV(LOW,21))/(HHV(HIGH,21)-LLV(LOW,21))*100; aa5:=SMA(aa4,13,8);

走势:CEILING(SMA(aa5,13,8));{向上舍入 向数值增大方向舍入,aa5的13日均线求得8}

aa6:=SMA(aa3,21,8);

买观注: STICKLINE(走势-aa6<-65,0,5,15,1);

买进:=LONGCROSS(aa1,aa2*1.05,15) AND aa1<40;{表示aa1维持aa2*1.05后与15日金叉}

卖观注: STICKLINE(走势-aa6>85,95,90,15,1);

卖出:STICKLINE(LONGCROSS(aa2,aa1*0.95,7) AND aa1>0,100,80,6,0),color00ff00;{表示aa2维持aa1*0.95后与7日死叉,画绿色柱线} 如图:

6、MAX 最大值 求最大值。 用法:MAX(A,B)返回A和B 中的较大值。 例如:MAX(CLOSE-OPEN,0),表示若收盘价大于开盘价返回它们的差值,否则返回0。 7、MIN 最小值 求最小值。 用法:MIN(A,B)返回A和B中的较小值。 例如:

MIN(CLOSE,OPEN),返回开盘价和收盘价中的较小值。这2个函数通常成双成对使用,请看下面指标:

Var1:=(HIGH+LOW+CLOSE)/3;{(最高价+最低价+收盘价)/3}

Var2:=IF(HIGH=LOW,1,HIGH-MAX(OPEN,CLOSE));{条件函数(最高价=最低价,1,最高价-最大值(开盘价,收盘价))}

Var3:=IF(HIGH=LOW,1,MAX(CLOSE,OPEN)-Var1);{条件函数(最高价=最低价,1,最大值(收盘价,开盘价)-Var1)}

Var4:=IF(HIGH=LOW,1,MIN(OPEN,CLOSE)-LOW);{条件函数(最高价=最低价,1,最小值(开盘价,收盘价)-最低价)}

Var5:=IF(HIGH=LOW,1,Var1-MIN(CLOSE,OPEN));{条件函数(最高价=最低价,1,Var1-最小值(收盘价,开盘价))}

Var6:=VOL/IF(HIGH=LOW,4,HIGH-LOW);{成交量/条件函数(最高价=最低价,4,最高价-最低价)}

Var7:=Var2*Var6; Var8:=Var3*Var6; Var9:=Var4*Var6; VarA:=Var5*Var6;

STICKLINE(CLOSE>0,0,Var7+VarA,4,1),COLORRED;{画柱线(收盘价>0,0,Var7+VarA,4,1),红色柱}

买入量: Var7+VarA,POINTDOT,COLORRED;{红色点状线}

STICKLINE(CLOSE>0,(Var8+Var9)*(-1),0,4,1),COLORFFCCCC;{画柱线(收盘

价>0,(Var8+Var9)*(-1),0,4,1),淡青色柱}

卖出量:(Var8+Var9)*(-1),POINTDOT,COLORFFCCCC;{淡青色点状线} 如图:

8、MOD 求模运算 求模运算。 用法:MOD(A,B)返回A对B求模。 例如:MOD(26,10)返回6。

9、INTPART 取整 绝对值减小取整,即取得数据的整数部分。 用法:INTPART(A)返回沿A绝对值减小方向最接近的整数。 例如:INTPART(12.3)求得12,INTPART(-3.5)求得-3。下面的指标用到了这两个函数:

RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;{(收盘价-最低值(最低价,9))/(最高值(最高价,9)-最低值(最低价,9))*100} K:=(SMA(RSV,3,1));{(移动平均(RSV,3,1))} D:=(SMA(K,3,1));{(移动平均(K,3,1))}

KK:=INTPART(SMA(RSV,3,1));{取整(移动平均(RSV,3,1))} DD:=INTPART(SMA(K,3,1));{取整(移动平均(K,3,1))} N:KK+DD,LINETHICK2,COLORff00ff;{画粗粉色线}

精确涨停:IF(CROSS(N,50),90,50),,COLORYELLOW;{条件函数(交叉函数(N,50),90,50)画黄色线}

接近头部:IF(CROSS(160,N),95,160),,COLOR00ff00;{条件函数(交叉函数(160,N),95,160)画绿色线}

尾数:MOD(n,10),LINETHICK0,COLORWHITE;{求模运算(n,10)画白色线} N的尾数:IF(尾数=0,65,25),,COLORFFCC66;{条件函数(尾数=0,65,25)画青色线} 如图:

10、NOT 求逻辑非。 用法:MOT(X)返回非X,即当X=0时返回1,否则返回0。 例如:MOT(ISUP)表示平盘或收阴。请看这个函数在指标中的用法: Var1:=(MA(CLOSE,80)-MA(CLOSE,13)/3); 神奇线:= MA((CLOSE-Var1)/Var1,1);

买点:IF(REF(神奇线,2)=LLV(神奇线,20) AND REF(神奇线,2)<0.071 AND REF(神奇

线,2)REF(HIGH,2) AND LOW>REF(HIGH,1)) AND CLOSE>REF(CLOSE,1),0.5,0);{这句用到了MOT函数} 如图:

11、RANGE 范围 介于某个范围之间。 用法:RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0。 例如:RANGE(CLOSE,MA(CLOSE,5),MA(CLOSE,10))表示收盘价大于5日均线并且小于10日均线。请看下面指标: a1:=1; a2:=ma(c,30); a3:=(c-a2)/a2*100; a4:=ma(a3,3); a5:=a1-1.01*1000000; a6:=barslast(cross(-10,a4)=1);

a7:=if(a4<-10 and a6>=5,a4,0),colorwhite; 机会:a7,colorstick,colorffff00;{画青色柱线}

a8:=range(a5,(1-0.618)*1000,(1+1.9/100)*1000);{在这句中用到了mange函数,其格式含义请慢慢体会}

drawtext(filter(a7=a4 and a8=0,8)=1,a7*1.2 ,?注意反弹?),coloryellow; 如图:

12、REVERSE 求相反数 求相反数。 用法:REVERSE(X)返回-X。 例如:REVERSE(CLOSE)返回-CLOSE。请看指标: Var1:=(CLOSE-REF(OPEN,29))/REF(OPEN,29)*100; Var2:=HHV(HIGH,60);

VarA:=(CLOSE-LLV(LOW,36))/(HHV(HIGH,36)-LLV(LOW,36))*100; VarB:=SMA(VarA,5,1); VarC:=SMA(VarB,3,1); 跌: Var2*0.382,colorwhite;

底部: REVERSE(IF(CROSS(VarB,VarC) AND VarC<10 AND Var1<-30,跌

*2,-5)),color00ff00;{返回CROSS(VarB,VarC)}

DRAWTEXT(REVERSE(CROSS(VarB,VarC)) AND VarC<10 AND Var1<-30,跌-5,?底部?),color00ff00;{返回CROSS(VarB,VarC)} 如图:

13、ATAN 反正切值 用法:ATAN(X)返回X的反正切值。请看指标: lc1:=ma(c,9);

jxjd:=atan((lc1-ref(lc1,1))/ref(lc1,1)*100)/3.1416*180;{返回((lc1-ref(lc1,1))的反正切值} smk:sma(jxjd,3,1),colorstick;{画柱线} smd:sma(smk,3,1); 如图:

14、EXP 指数 用法:EXP(X)为e的X次幂。 例如:EXP(CLOSE)返回e的CLOSE次幂。

15、LOG 以10为底的对数 用法:LOG(X)取得X的对数。 例如:LOG(100)等于2。下面指标用到了这两个函数:

Var1:=IF(VOL/CAPITAL>0.001,1,EXP(ABS(LOG(VOL/CAPITAL*100))));{返回e的(ABS(LOG(VOL/CAPITAL*100)))次幂}

STICKLINE(Var1>2 AND VOL

16、POW 乘幂 用法:POW(A,B)返回A的B次幂。 例如:POW(CLOSE,3)求得收盘价的3次方。请看黑马预测指标:

Var2:=EMA(CLOSE,100)-EMA(CLOSE,50); Var3:=EMA(Var2,60);

Var4:=(Var2-Var3)*2;

ZX: IF( Var4>0.3,POW(Var4,3)*10/10+POW(Var4,2),0); ZY: EMA(ZX,3); LING: 0; 如图:

17、SQRT 开平方 用法:SQRT(X)为X的平方根。 例如:SQRT(CLOSE)收盘价的平方根。请看指标:

底:(((-SQRT(SQRT(FLOOR(SQRT((MA(((1)/(WINNER(CLOSE)))*(100),4))/(10000)))))))*(5)),Color4455EE;

STICKLINE((底<(-2)),0,底,1.5,1),Color2222FF; 如图:

18、SIN 正弦值 用法:SIN(X)返回X的正弦值。 19、COS 余弦值 用法:COS(X)返回X的余弦值。

正弦波是自然界最常见的波形。正弦波和余弦波的波形是一样的,无非是相差π/2弧度(90度)的相位。

主要应用在技术分析中的周期分析上。那么在指标中画出正弦波应该是很容易了吧。看看这2个函数在指标中的运用: A:=COUNT(C,0)=1;

B:=BARSLAST(A);{1,2,3,4,.....} 正弦值:SIN(B); 余弦值:COS(B);

正余平方和:POW(正弦值,2)+POW(余弦值,2); 正弦180度:SIN(3.1415926); 如图:

但是看起来不太光滑.究其原因,是因为正弦波的周期是2π,当X取值较大时(1,2,3,...)时,返回值就不太“精密”了,也就是说构成波形的点数不够。这个就好办了,我们可以把数列的值都减小N倍,再来看看效果。 A:=COUNT(C,0)=1;

B:=BARSLAST(A)/N;{参数N:1 999 10} 正弦值:SIN(B); 余弦值:COS(B); 如图:

调整参数N,就可以发现,N取值越大,波形就越光滑。当N取3时,就有不错的光滑度。当N取10时,就非常光滑了。

N调整得越大,在2π周期中的点数就越多,一个完整波形的周期内所含的日期差(在日K线中)就越大了。

20、TAN 正切值 TAN(X)返回X 的正切值。正切值的绝对值,最小是0,最大趋向于无穷大。当正弦值接近1时,正切值接近于无穷大。请看: A:=COUNT(C,0)=1;

B:=BARSLAST(A)/N;{参数N:1 999 10} 正弦值:SIN(B); 余弦值:COS(B); TAN(B); 如图:

以下几个函数很少用到,做一下简单了解就行了。你可以挖掘这几个函数的运用,也许会有出乎意料的收获。

21、ASIN 反正弦值 用法:ASIN(X)返回X的反正弦值。

22、SGN 符号值 求符号值。 用法:SGN(X),当X>0,X<0分别顺1,0,-1。 23、ACOS 反余弦值 用法:ACOS(X)返回X的反余弦值。

23、LN自然对数 求自然对数。 用法:LN(X)以e为底的对数。 例如:LN(CLOSE)求收盘价的对数。LN(X)是取自然对数。自然数e=2.718281828... 25、SIN 正弦值 用法:SIN(X)返回X的正弦值。

(1)、AVEDEV 平均绝对偏差 用法:AVEDEV(X,N) 含义:平均绝对偏差,求X的N日平均绝对偏差。请看指标:

TYP:=(HIGH+LOW+CLOSE)/(3);{最高+最底+收盘价/3} 趋势

线:(TYP-MA(TYP,100))/((0.015)*(AVEDEV(TYP,100))),Color00FFFF;{(AVEDEV(TYP,100)求TYP的100日平均绝对偏差.} 如图:

(2)、DEVSQ 数据偏差平方和 用法:DEVSQ(X,N) 含义:数据偏差平方和,求X的N日数据偏差平方和。数据偏差平方和除以N,即为方差。比较一下这2句在图上的区别: a1:DEVSQ(C,5)/5;{0.025} a2:DEVSQ(C,5);{0.126} 见图:

(3)、FORCAST 线性回归预测值 用法:FORCAST(X,N)为X的N周期线性回归预测值。示例: FORCAST(CLOSE,10) 表示求10周期线性回归预测。用最小二乘法求出N周期内X的一元线性回归线上的当天的值。请看指标: 平均价:=(HIGH+4*LOW+OPEN+CLOSE)/7; 均价差:= EMA(平均价,13) - EMA(平均价,34); 移动均价:= EMA(均价差,5); 差:=(均价差-移动均价)*5;

A:=IF(差>=1000 ,1000 ,IF(差<=平均价,平均价,差) );

分水岭:=forcast(forcast(A,31),10),linethick3,COLORYELLOW;{求出31日内A的线性回归预测和10日线性回归预测}

上涨:if(A>分水岭,A,分水岭),LINETHICK2,colorred; 下跌:if(A<分水岭,A,分水岭),LINETHICK2,COLORGREEN;

分水岭1:forcast(forcast(A,31),10),linethick2,COLORYELLOW;{求出31日内A的线性回归预测和10日线性回归预测} 见图:

(4)、SLOPE 线性回归斜率 用法:SLOPE(X,N)为X的N周期线性回归线的斜率。例如:SLOPE(CLOSE,10)表示求10周期线性回归线的斜率。请看指标: XLB:forcast(V,8)/EMA(forcast(V,36),7);{forcast(V,8)求8周期线性回归预测}

XLL:if(slope(XLB,2)>0,slope(XLB,2)*XLB,0),linethick2;{slope(XLB,2)求2周期线性回归线的斜率}

{排序,用于抓住量比放大,正在快速上涨的股。} 见图:

(5)、STD 估算标准差 用法:STD(X,N)为X的N日估算标准差。例如:STD(CLOSE,10),求10周期收盘价的估算标准差。请看指标: var1:=ema((high+low+close)/3,3); 重心: var1,colorwhite; varb:=amount/(100*vol); varc:=ma(varb,34); vard:=ma(close,26);

通道: (vard+varc)/2, coloryellow;

压力l: vard+2*std(close,49), colorred;{求49周期收盘价的估算标准差} 支持l: (vard-2*std(close,26)),colorgreen;{求26周期收盘价的估算标准差} 通道*1.062,colorff00ff; 通道*0.938,colorff00ff;

vare:=ma(winner(close),5)*100;

顶: drawtext(vare>60 and high>压力l,high,?卖?), color00ff00; 底: drawtext(vare<15 and cross(var1,通道),low,?买?),colorwhite; 见图:

(6)、STDP 总体标准差 用法:STDP(X,N)为X的N日总体标准差。例如:STDP(CLOSE,10),求10周期收盘价的总体标准差。请看指标: VAR1:=AMOUNT/VOL/100;

VAR2:=(3*HIGH+LOW+OPEN+2*CLOSE)/7; VAR3:=SUM(AMOUNT,34)/VAR1/100; VAR4:=DMA(VAR2,VOL/VAR3); VAR5:=100*(C-VAR4)/VAR4;

次强上轨:(MA(VAR5,20)+STDP(VAR5,20)),COLORRED;{STDP(VAR5,20)求20周期var5的总体标准差}

次强下轨:(MA(VAR5,20)-STDP(VAR5,20)),COLORRED;{STDP(VAR5,20)求20周期var5的总体标准差}

强弱线:(次强上轨+次强下轨)/2,POINTDOT,COLORYELLOW;

强势区上轨:(MA(VAR5,20)+1.7*STDP(VAR5,20)),COLOR10FFFF;{STDP(VAR5,20)求20周期var5的总体标准差}

强势区下轨:(MA(VAR5,20)-1.7*STDP(VAR5,20)),COLOR10FFFF;{STDP(VAR5,20)求20周期var5的总体标准差} 标准线:VAR5,COLORWHITE; 见图:

下面这2个函数用的比较少,略做简单介绍:

(7)、VAR 估算样本方差 用法:VAR(X,N)为X 的N日估算样本差。 (8)、VARP 总体样本方差 用法:VARP(X,N)为X的N日总体样本方差。

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

2、CROSS 交叉函数 CROSS(A,B) A:变量或常量,判断交叉的第一条线。 B:变量或常量,判断交叉的第二条线。 例如:CROSS(MA(CLOSE,5),MA(CLOSE,10)),5日均线与10日均线金叉;CROSS(CLOSE,12),价格由下向上突破12元。

上面这两个函数我们在前面已经讲过,在此就不做介绍了。讲一讲下面几个逻辑函数。 下面这几个逻辑函数比较好理解,用法简单,只是用的很少。

3、ISDOWN 当日下跌 该周期是否收阴。 用法:ISDOWN当收盘<开盘时,返回值为1,否则为0。

4、ISEQUAL 当日平盘 该周期是否平盘。 用法:ISEQUAL当收盘=开盘时,返回值为1,否则为0。

5、ISUP 该周期是否收阳。 用法:ISUP当收盘>开盘时,返回值为1,否则为0。请看指标:

Var1:=EMA(CLOSE,3); Var2:=EMA(CLOSE,21);

Var3:=BARSLAST(CROSS(Var2,Var1))>15; Var4:=VOL>MA(VOL,5)*2 AND VOL

Var5:=CROSS(Var1,Var2) AND ISUP AND Var4 AND Var3;{交叉(var1,var2) 并且 当日上涨 并且VAR4 并且VAR3}

黑马:if(Var5,80,0),stick,linethick4,colorf00ff0; drawtext(Var5,70,?黑马!?),colorf00ff0; 见图:

6、NOT 求逻辑非 NOT(X) 求逻辑非,返回非X,即当X=0时返回1,否则返回0。 例如:NOT(ISUP),是否平盘或收阴。请看指标: XX2:=(MA(CLOSE,80)-MA(CLOSE,13)/3); 神奇线: MA((CLOSE-XX2)/XX2,1);

买点1: IF(CROSS(神奇线,0) AND LOW/REF(HIGH,1)<1.012,0.5,0), STICK,COLORWHITE;

稳赚: IF(COUNT(神奇线>REF(神奇线,1),3)=3 AND COUNT(神奇线<0,10)=10 AND REF(神奇线,3)=LLV(神奇线,10),0.5,0);

买点2: IF(REF(神奇线,2)=LLV(神奇线,20) AND REF(神奇线,2)<0.071 AND REF(神奇线,2)REF(HIGH,2) AND LOW>REF(HIGH,1)) AND CLOSE>REF(CLOSE,1),0.5,0),COLORRED;{这段语句

NOT(REF(LOW,1)>REF(HIGH,2)的意思,是否昨天最低价大于前天最高价,这几个条件都

满足显示脉冲信号,否则不显示}

DRAWTEXT( 买点1>0,0.2 ,?★神奇线?),COLORWHITE; DRAWTEXT( 买点2>0,0.4 , ?★神奇线?),COLORRED; 见图:

(1)、COST 成本分布 用法:COST(10),表示10%获利盘的价格是多少,即有10%的持仓量在该价格以下,其余90%在该价格以上为套牢盘,该函数仅对日线分析周期有效。 (2)、WINNER 获利盘比例 用法:WINNER(CLOSE)表示以当前收市价卖出的获利盘比例。例如:返回0.1表示10%获利盘:WINNER(10.5)表示10.5元价格的获利盘。该函数仅对日线分析周期有效。

COST,成本。WINNER,优胜者,获利。这两个函数两者互相换算。COST是根据获利盘估算价格,WINNER是根据价格估算获利盘。之所以说估算,是因为要精确算,必须把每笔成交的价格和成交量都记录下来,一般这是很难做到的。就算能做到,筹码分布方面的技术分析有效么?这就看各人自己的取舍了,股市中目前还没有发现包赚不赔的技术指标。示例:

COST(WINNER(C)*100);

此两者趋于相等。也说明这两个函数支持序列变量。指标示例: var1:=COST(10);

var2A:=(CLOSE-var1)/var1*100; var2B:=COUNT(var2A<-2.05,3)*1;

主力吸货: IF(var2B>=3,10,0),COLORWHITE;

平均成本价的计算。将刚好完全换手的每笔成交量和成交价格相乘,然后除以这期间总的成交量,即为平均成本价。示例: 平均成本价格:COST(50); AA:=SUMBARS(VOL,CAPITAL); 平均成本价:SUM(C*V,AA)/SUM(V,AA);

实际上这两种方法都是估算出来的,后者的误差可能更大一些。相当于一箱苹果是2元一

斤,另两箱苹果是5元一斤。三箱苹果的平均价格就是(2*1+5*2)/(1+2)=4元。

这有点统计学中的调和平均值的味道了。筹码分布,要搞得复杂,可以计算中位值、众位值,研究正态分布、偏态分布,还有集中度、穿透力,当真是花样繁多,只能留给有兴趣的朋友自己研究了。

筹码分布的峰位在哪个价格区域,是筹码分布爱好者很想知道的一个指标。用COST可以估算出来,留作思考题吧。

(3)、PEAK 前M个波峰值――――――前M 个ZIG转向波峰值。用法:PEAK(K,N,M)表示之字转向ZIG(K,N)的前M个波峰的数值,M必须大于等于1。例如:PEAK(1,5,1)表示%5最高价ZIG转向的上一个波峰的数值。示例:

a1:PEAK(1,5,1);{表示%5最高价ZIG转向的上一个波峰的数值}

a2:PEAK(MA(C,20),5,1);{表示均线的5%的ZIG转向的上一个波峰的数值}

(4)、PEAKBARS 前M个波峰位置――――――前M个ZIG转向波峰到当前距离。用法:PEAKBARS(K,N,M)表示之字转向ZIG(K,N)的前M个波峰到当前的周期,M必须大于等于1。例如:PEAKBARS(0,5,1)表示%5开盘价ZIG转向的上一个波峰到当前的周期数。示例:

a1:PEAKBARS(1,5,1);{表示%5开盘价ZIG转向的上一个波峰到当前的周期数}

a2:PEAKBARS(MA(C,20),5,1);{表示均线的5%的ZIG转向的上一个波峰到当前的周期数} (5)、SAR 抛物转向 用法:SAR(N,S,M0,N为计算周期,S为步长,M为极值。例如:SAR(10,2,20)表示计算10日抛物转向,步长为2%,极限值为20%。 附、SAR的画法。

SAR(N,S,M),参数:N为计算天数,STEP=调整系数×100,MAXP=调整系数上限×100。 以sar(5,2,20),circledot;用在日线中为例。 SAR只跟K线中的H、L有关,与O、C无关。 1、起画点

当N取5时,起画点就在第六根K线上。第一步要做的事,就是由第一根K线到第五根K线判断是看涨还是看跌。如是看涨,就要把起画点画成看涨SAR,如是看跌,就要把起画点画成看跌SAR。

A:(H-REF(H,1)+L-REF(L,1))>0 AND BARSCOUNT(C)=2;

如果A成立,则先画看跌SAR(SAR在K线之上);如果A不成立,则先画看涨SAR(SAR在K线之下)。这是我的观察所得,各位不妨去看看是不是如此。就是说不管N取多少,起画点是根据第一、二根K线上的H、L决定的。 2、看涨SAR

第一个看涨SAR的值,是前五天的最低价,即REF(LLV(L,5),1);然后看看SAR值是不是比L小,是的话继续,否则在下一天跳转。第二个看涨SAR的值是SAR(2)=SAR(1)+AF1*(REF(HHV(H,5),1)-SAR(1)),

SAR(1)即为第一个看涨SAR的值。AF1是调整系数,如果当天的H比前五天的最高H大,则要+0.02(得0.04),否则还是取0.02。然后看看SAR值是不是比L小,是的话继续,否

则在下一天跳转。 第三个看涨SAR的值,是

SAR(3)=SAR(2)+AF2*(REF(HHV(H,5),1)-SAR(2)),

计算方法与求第二个看涨SAR类同,只是当天的H是否比前五天的最高H大还要判断,是的话AF2=AF1+0.02,否则取AF1。

然后看看SAR值是不是比L小,是的话继续,否则在下一天跳转。

因为没有跳转的话,REF(HHV(H,5),1)-SAR(2)的值肯定大于0,所以看涨SAR一直是向上升的。

如此循环往复,直到跳转条件成立就跳转,去画看跌SAR了。而调整系数AF的值,经过反复累积的话,最大是不能超过0.2的。 1、看跌SAR

第一个看跌SAR的值,是前五天的最高价,即REF(HHV(H,5),1);然后看看SAR值是不是比H大,是的话继续,否则要在下一天跳转。 第二个看跌SAR的值,是

SAR(2)=SAR(1)+AF1*(REF(LLV(L,5),1)-SAR(1)),

SAR(1)即为第一个看跌SAR的值。AF1是调整系数,如果当天的L比前五天的最低L小,则要+0.02(得0.04),否则还是取0.02。然后看看SAR值是不是比H大,是的话继续,否则在下一天跳转。

第三个看跌SAR的值,是SAR(3)=SAR(2)+AF2*(REF(LLV(L,5),1)-SAR(2)),

计算方法与求第二个看跌SAR类同,只是当天的L是否比前五天的最低L小还要判断,是的话AF2=AF1+0.02,否则取AF1。

然后看看SAR值是不是比H大,是的话继续,否则在下一天跳转。

因为没有跳转的话,REF(LLV(L,5),1)-SAR(2)的值肯定小于0,所以看跌SAR一直是向下跌的。

如此循环往复,直到跳转条件成立就跳转,去画看涨SAR了。而调整系数AF的值,经过反复累积的话,最大是不能超过0.2的。

SAR没有未来之嫌,但是N、S、M的调整对SAR影响都很大,感觉灵敏性过大。大智慧有这个主图指标,请参考。

(6)、SARTURN 抛物转向点 用法:SARTURN(N,S,M),N为计算周期,S为步长,M为极值,若发生向上转向则返回1,若发生向下转向则返回-1,否则为0,其用法与SAR函数相同。说明:若发生向上转向则返回1,若发生向下转向则返回-1,否则为0, 由于可以返回三个值,就可以判断是向上的跳转还是向下的跳转。示例: SA:=SAR(3,2,20); A:=SARTURN(3,2,20); B:=A=1; D:=A=-1;

E:=BARSLAST(B)>BARSLAST(D);

F:=NOT(E);

DRAWTEXT(e,sa,?°?); DRAWTEXT(f,sa,?°?);

(7)、TROUGH 前M个波谷值――――――前M个ZIG转向波谷值。用法:

TROUGH(K,N,M)表示之字转向ZIH(K,N)的前M个波谷的数值,M必须大于等于1。例如:TROUGH(2,5,2)表示%5最低价ZIG转向的前2个波谷的数值。示例: a1:TROUGH(2,5,2);{表示%5最低价ZIG转向的前2个波谷的数值}

a2:TROUGH(MA(C,20),5,2);{表示均线的5%的ZIG转向的前2个波谷的数值}

(8)、TROUGHBARS 前M个波谷位置――――――前M个ZIG转向波谷到当前距离。用法:TROUGHBARS(K,N,M)表示之字转向ZIG(K,N)的前M个波谷到当前的周期数,M必须大于等于1,例如:TROUGHBARS(2,5,2)表示%5最低价ZIG转向的前2个波谷到当前的周期数。示例:

a1:TROUGHBARS(2,5,2);{表示%5最低价ZIG转向的前2个波谷到当前的周期数} a2:TROUGHBARS(MA(C,20),5,2);{表示均线的5%的ZIG转向的前2个波谷到当前的周期数}

(9)、ZIG 之字转向 用法:ZIG(K,N),当价格变化量超过N%时转向,K表示0:开盘价,1:最高价,2:最低价,3:收盘价。例如:ZIG(3,5)表示收盘价的5%的ZIG转向。示例: ZIG(3,5);{表示收盘价的5%的ZIG转向} ZIG(MA(C,20),5);{表示均线的5%的ZIG转向}

1、K可以作为参数调整,也可以直接写其它的指标线,如\。N也可以做成参数调整。 2、在K线中,ZIG只能对一根指标线进行转向处理。要想高点在H位置,低点在L位置,ZIG是做不到的。

3、ZIG输出的是数值,不是直线。 4、ZIG一般使用在看波浪、看形态上。

5、ZIG到底是如何体现“未来”的?即它是怎么画出来的?见说明。 附、ZIG线的画法。

假设在手工画线年代,ZIG线是怎么画出来的,实际上也介绍了算法。 以zig(3,5),即收盘价转向,转向要求5%,可以任意找只股票举例。

从第一根K线上的收盘价到当天的C,和以前的K线的最低C值相比的涨幅,或与最高C值相比的跌幅超过5%时,才在当天作出记号,称之为拐点。涨幅超过5%的,称为向上的拐点,跌幅超过5%的,称为向下的拐点。先有向下的拐点,于是第一根K线上的C值,就是高点了。在向下的拐点出现之后的每根K线上,相比较记录最低之C值。然后把当天的C值,与记录的最低C值比较,看有没有涨幅超过5%。满足条件之后向上出现拐点。向上的拐点出现之后,回过头,在与上一个向下的拐点之间,找到一个最低的C,作为ZIG的低点。产生向上拐点之后,就在之后的K线中记录C的最大值。当出现当天的C值,与最大C值相比,跌幅超过5%时,产生向下的拐点。于是从向下的拐点回过头来,再与上一个向上的拐点之间,找到一个最高的C,作为ZIG的高点。如此循环。也就是说,ZIG的高点和低点,是根据向上和向下的拐点出来之后,回溯过去才找到的。这就是ZIG未来数据的实质所在。ZIG函数是未来函数之第二大嫌疑。在交易系统中用未来函数,就是用BACKSET或ZIG,可以使许多人“梦想成真”。由于“未来函数”在交易系统中可以大大作弊,才使其在指标和选股公式中也一起“臭名昭著”。 判断未来数据的简单方法:

1、含有未来数据指标的基本特征是买卖信号不定,常常是某日发出了买入信号,第二日如果继续下跌该信号就会消失,这也正是该指标的危害所在,从历史上看信号很准,但应用时切不可信以为真。这个特征也是验证一个指标是否含有未来数据的基本方法。大智慧能够带来未来数据的函数不多,下面列出全部可能的函数,如果公式中含有这些函数就要警惕,需要说明的是含有这些函数不一定表明就含有未来数据,还要分析清楚它的详细算法才能确定。

ZIG之字转向,

BACKSET(X,N),若X非0,则将当前位置到N周期前的数值设为1。 PEAK 前M个ZIG转向波峰值

PEAKBARS 前M个ZIG转向波峰到当前距离。 TROUGH前M个ZIG转向波谷值。

TROUGHBARS 前M个ZIG转向波谷到当前距离。 2、验证指标是否含有未来数据的方法:

前面已经提到基本方法是看信号是否确定,即一个信号出现后是否会随着未来k线图的走势消失或指标线发生变化。当然这种方法不能立刻知道是否含有未来数据,需要使用一段时间才能判定。

另一种方法是搞清公式的算法,是否含有未来数据立刻便知。 3、可能带来未来数据函数的用途:

事实上,设计前面列举的这些函数时,并不是为使用未来数据的,在公式中恰当运用不会带来未来数据。在指标的使用当中,它仅做为一种参考工具来用,当指标发出信号时,还是加以分析它发出这个信号是不是合理,等,如有的指标在实战中发现当它发出信号时,可能观

察1到3天量能变化等,因为这个指标发出信号时只是提示你股价振荡幅度在减小,底可能在未来的几天内完成,如果底部没有完成迹象,信号会消失,等到下一个环节,股价振荡幅度小时在发出信号,这就是某个指标的结果,还有就是指标请不要用于股价大幅杀跌行情中,并对个股业绩行业等进行研究,说这么多只想了解指标中的未来数据,因为如果正确理解和使用它并没有坏处。

4、未来数据主要有以下两种类型:

第一种类型:在某一天发出买入信号,几天后如股票上涨则提示当时的信号成功,如股票下跌则信号消失。投资者根本无所适从,更不要说盈利。

第二种类型:如果今天股票上涨,会在几天前低价位的某一天出现买入信号。你会经常看到有信号成功,但永远也无法介入,因为没有人能买到几天前的股票。这种手法比较隐蔽,许多号称没有使用未来数据、信号不会消失的公式使用的就是这种方法。 检查未来数据的方法:

1、如果公式中使用了zig,backset,week,month,year,troughb,trough,peak等函数语句,可以判定使用了未来数据。

2、通过股软来判断,如飞狐,分析家中的“时空隧道”或专门的软件来判断。

一、大盘函数

INDEXA 表示同期大盘的成交额。 INDEXADV 表示同期大盘的上涨家数。 INDEXC 表示同期大盘的收盘价。 INDEXDEC 表示同期大盘的下跌家数。 INDEXH 表示同期大盘的最高价。 INDEXL 表示同期大盘的最低价。 INCEXO 表示同期大盘的开盘价。 INDEXV 表示同期大盘的成交量。

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

{均衡定价 参数 m:1,2,1 (m表示半年报)} 均衡定

价:(FINANCE(34)*0.32+3.8+FINANCE(33)*3.9*m)*\inethick2;{调用了上证”H000001$CLOSE”大盘本周期的收盘价} 股价上限:均衡定价*1.8,colorblue; 股价下限:均衡定价/1.8,colorblue; 股票价格:close,colorffcc66,linethick2;

指标示例二: {拉升在即}

A:=((VOL)/(CAPITAL))*(100);

S:((MA(A,30))/(MA(INDEXA,10)))*(MA(INDEXA,60)),Color00FFFF;{引用了10日、60日大盘的成交额}

Y:((MA(A,120))/(MA(INDEXA,10)))*(MA(INDEXA,60)),ColorFF00FF;{引用了10日、60日大盘的成交额} X:1,Color00AA00; 如图:

二、常用函数

(1)、CAPITAL 流通盘大小 CAPITAL,返回流通盘大小,单位为手。对于A股得到流通A股,B股得到B股总股本,指数为0。 该函数返回常数。示例: 流通盘万股:CAPITAL/100;

换手率:100*VOL/CAPITAL;{VOL为当期成交量,CAPITAL为流通股本}

(2)、VOLUNIT 每手股数 VOLUNIT,返回每手股数。对于股票值为100,债券为10。 该函返回常数。

(3)、HOLDEDRNUM 取得该周期散户人数评估值。用法:HOLDEDRNUM

(4)、TYPE 股票类别 用法:TYPE,返回类别;指数为0;A股为1;B股为2;国债为3;基金为4;其它为5;注意:该函数返回常数。

(5)、PRECISION 数据精度。用法:TYPE 返回数据精度类别;基金精度为3,其它为2。注意:该函数返回常数。 财务数据函数 动态行情: 财务指标:

DYNAINFO(3)昨收 FINANCE(1)总股本(万股) DYNAINFO(4)今开 FINANCE(2)国家股(万股) DYNAINFO(5)最高 FINANCE(3)发起人法人股 DYNAINFO(6)最低 FINANCE(4)法人股

DYNAINFO(7)最新 FINANCE(5)B股 DYNAINFO(8)总手 FINANCE(6)H股 DYNAINFO(9)现手 FINANCE(7)目前流通 DYNAINFO(10)总额(持仓) FINANCE(8)职工股 DYNAINFO(11)均价 FINANCE(9)A2转配股 DYNAINFO(12)涨跌 FINANCE(10)总资产(千元) DYNAINFO(13)振幅 FINANCE(11)流动资产(千元) DYNAINFO(14)涨幅 FINANCE(12)固定资产(千元) DYNAINFO(15)委比 FINANCE(13)无形资产(千元) DYNAINFO(16)委差 FINANCE(14)长期投资(千元) DYNAINFO(17)量比 FINANCE(15)流动负债(千元) DYNAINFO(18)委买 FINANCE(16)长期负债(千元) DYNAINFO(19)委卖 FINANCE(17)资本公积金(千元) DYNAINFO(20)委买价 FINANCE(18)每股公积金 DYNAINFO(21)委卖价 FINANCE(19)股东权益(千元) DYNAINFO(22)内盘 FINANCE(20)主营收入(千元) DYNAINFO(23)外盘 FINANCE(21)主营利润(千元) DYNAINFO(24)涨速 FINANCE(22)其他利润(千元) DYNAINFO(25)买一量 FINANCE(23)营业利润(千元) DYNAINFO(26)买二量 FINANCE(24)投资收益(千元) DYNAINFO(27)买三量 FINANCE(25)补贴收入(千元) DYNAINFO(28)买一价 FINANCE(26)营业外收支(千元) DYNAINFO(29)买二价 FINANCE(27)上年损益调整(千元) DYNAINFO(30)买三价 FINANCE(28)利润总额(千元) DYNAINFO(31)卖一量 FINANCE(29)税后利润(千元) DYNAINFO(32)卖二量 FINANCE(30)净利润(千元) DYNAINFO(33)卖三量 FINANCE(31)未分配利润(千元) DYNAINFO(34)卖一价 FINANCE(32)每股未分配 DYNAINFO(35)卖二价 FINANCE(33)每股收益 DYNAINFO(36)卖三价 FINANCE(34)每股净资产 DYNAINFO(37)换手率 FINANCE(35)调整每股净资(千元) DYNAINFO(38)5日均量 FINANCE(36)股东权益比率 DYNAINFO(39)市盈率 FINANCE(37)净资收益率 DYNAINFO(40)成交方向 DYNAINFO(41)买四量 DYNAINFO(42)买四价 DYNAINFO(43)卖四量

DYNAINFO(44)卖四价

DYNAINFO(45)持仓量(暂无数值) DYNAINFO(46)买五量 DYNAINFO(47)买五价 DYNAINFO(48)卖五量 DYNAINFO(49)卖五价 指标示例一: VOL,VOLSTICK; MA(VOL,5); MA(VOL,10);

流通:capital*0.000001,pointdot; 净资产:finance(34); 收益:finance(33); MA(VOL,34); 如图:

指标示例二:

{量比涨幅选股 换手N:1 10 5} var1:=dynainfo(14)>=1;{涨幅>=2%} var2:=dynainfo(17)>=2;{量比>=2} var3:=dynainfo(37)>=换手N;{换手>=5%} var1 and var2 and var3 三、时间函数

1、DATE 年月日 函数返回有效值范围为(700101-1341231),表示19700101-20341231,取得该周期从1900以来的年月日。

2、DAY 日期 函数返回有效值范围为(1-31),取得该周期的日期。

3、HOUR 小时 函数返回有效值范围为(0-23),对于日线及更长的分析周期值为0,取得该周期的小时数。

4、MINUTE 分钟 函数返回有效值范围为(0-59),对于日线及更长的分析周期值为0,取得该周期的分钟数。

5、MONTH 月份 函数返回有效值范围为(1-12),取得该周期的月份。

6、TEME 时分秒 函数返回有效值范围为(000000-235959),取得该周期的时分秒。 7、WEEK 星期 函数返回有效值范围为(0-6),0表示星期天,取得该周期的星期数。