分享

学习编辑指标

 往事 2007-08-28
K线函数


 炒股票最先接触到的就是K线图,每天必看,不看就会迷失方向,就不知道如何买卖。所以就从K线开始介绍有关的函数:
收盘价 close 这是取得该周期的收盘价;
最高价 high 这是取得该周期的最高价;
最低价 low 这是取得该周期的最低价;
开盘价 open 这是取得该周期的开盘价;
成交量 vol 这是取得该周期的成交量;
成交额 amount 这是取得该周期的成交额;
一根K线由四个价格组成即收盘价close、最高价high、最低价low、开盘价open。
上述几个函数可以编写以下几个简单的指标:
1、close>open 意思是当天的收盘价大于开盘价,反映在K线上就是当天收阳,用该指标选股所选出的股票在当天都收阳(>是数学上的大于符号)。
2、close<open 这个指标与上面的指标意思正好相反,反映在K线上就是当天收阴,用该指标选股所选出的股票都收阴(<是数学上的小于符号)。
3、close<5 意思是收盘价小于5元,用该指标选股所选出的都是低于5元以下的股票,如选低于3元的股票,把5改成3就行啦。如选高于5元的股票,把<符号改成>就OK啦!
K线的描述
阳线
close>open;{收盘价大于开盘价}
阴线
close<open;{收盘价小于开盘价}
高开
open>ref(close,1);{开盘价大于昨天的收盘价}
低开
open<ref(close,1);{开盘价小于昨天的收盘价}
跳空高开(high为最高价)
open>ref(high,1);{开盘价大于昨天的最高价}
跳空低开(low为最低价)
open<ref(low,1);{开盘价小于昨天的最低价}
以上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”等比较运算符、逻辑运算符组成,其中"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<ref(close,1) or close<=ref(close,2){今收盘小于昨收盘或今收盘小于等于前2天收盘价,"or"表示或、或者。意思是两个条件只要有一个条件满足就能作出判断};
  说明:上面例子中,包含在半角的一对大括号"{"、"}"里的内容是注释语句,不会被运行。一个好公式设计,需要花费很多心血,时间久了有可能自己也会忘记当时是怎么设计的,此外也为了别人能看懂公式,适当的加入注释是个好习惯。
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个指标建议你对照指标语句和图反复多看几遍,你也可以动手修改如修改脉冲信号的长度等,更重要的是要理解指标组合、嵌套的含义,只有读懂了指标,你才能把自己的想法、理念编成指标。

只爭朝夕
2007-06-21 17:58
一、线形函数
线形函数要和其它指标函数一起用才能发挥效力,因为它们都是描述其它指标函数的。正确用好线形函数可以使主副图指标显示丰富多彩,色彩缤纷。
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;
见下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<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
用法: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<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;
如图:

绘图函数结合示例介绍完了,相信你一定有所收获吧,举一反三自己动手编个指标。不要怕失败,失败是成功之母。
 
函数: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<ref(O,1),13)>=10 OR count(c<ref(c,2),13)>=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(open<close,n)/n>0.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<open;
count(up,n)=n;
注: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<ref(c,1),n)=n;
注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。
以上的参数n只要添入你所需要的周期数即可,如5、10、30等日期就是一个完整的指标或选股指标。
股市的不随机规律,隐藏在统计概率之中。用这两个函数,可以统计很多概率性的规律。
比如,以两天的收盘价相比,昨天是下跌的,今天的下跌的概率是多少?看下面指标:
{当日升跌概率}
A:=C<REF(C,1);
B:=REF(A,1) AND C>REF(C,1);{昨天下跌,今天上涨}
D:=REF(A,1) AND C=REF(C,1);{昨天下跌,今天平盘}
E:=REF(A,1) AND C<REF(C,1);{昨天下跌,今天下跌}
F:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0);
上升概率:100*COUNT(B,0)/F;
下跌概率:100*COUNT(E,0)/F;
平盘概率:100*COUNT(D,0)/F;{如图}

那么连跌两天之后,第三天收盘的各种概率是多少?看下面指标:
A:=C<REF(C,1) and ref(c,1)<ref(c,2);
B:=REF(A,1) AND C>REF(C,1);{前两天下跌,今天上涨}
D:=REF(A,1) AND C=REF(C,1);{前两天下跌,今天平盘}
E:=REF(A,1) AND C<REF(C,1);{前两天下跌,今天下跌}
F:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0);
上升概率:100*COUNT(B,0)/F;
下跌概率:100*COUNT(E,0)/F;
平盘概率:100*COUNT(D,0)/F;

从指数的输出看,概率更明显了。
连跌三天之后呢?看下面指标:
A:=C<REF(C,1) and ref(c,1)<ref(c,2) and ref(c,2)<ref(c,3);
B:=REF(A,1) AND C>REF(C,1);{前三天下跌,今天上涨}
D:=REF(A,1) AND C=REF(C,1);{前三天下跌,今天平盘}
E:=REF(A,1) AND C<REF(C,1);{前三天下跌,今天下跌}
F:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0);
上升概率:100*COUNT(B,0)/F;
下跌概率:100*COUNT(E,0)/F;
平盘概率:100*COUNT(D,0)/F;

规律就更明显了。
不要小看这些数据。虽然没有有些“高手”做出的成功率达百分之九十左右的公式那么夸张,但很有意义的。要知道股市中的随机因素太多,平衡性很强,稍稍的统计偏向,足可作为有用的参考。
 
函数: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<ref(close,1),0-vol,0)),0);
ah:=(sum(h,2)*(sum(1+winner(h),2))*sum(obv,2))/2;
al:=(sum(l,2)*(sum(1+winner(l),2))*sum(obv,2))/2;
ao:=(sum(o,2)*(sum(1+winner(o),2))*sum(obv,2))/2;
ac:=(sum(c,2)*(sum(1+winner(c),2))*sum(obv,2))/2;
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(ac<ao,ah,al,0.1,0),colorffcc66;{在ah与al之间画宽度为0.1的实心青柱线}
stickline(ac<ao,ao,ac,4,0),colorffcc66;{在ao与ac之间画宽度为4的实心青柱线}
两日参考:polyline(c>0,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<ao,ah,al,0.1,0),colorffcc66;
画柱线(ac<ao,ao,ac,4,0),colorffcc66;
两日参考:画折线(收盘价>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<FL3,(CG-(FL3-CG)),FL3),COLORred,linethick2;{根据括号内所求的值及条件画红色粗线}。如图:

例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<OPEN,VOL,1),3);{求上一次条件成立到当前的周期数平均值}
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("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;{5天内B1>0的条件不被记录在内,在当前周期内出现B1>0画绿色柱线}
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;{5天内B2>0的条件不被记录在内,在当前周期内出现B>0画黄色柱线}
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;{5天内B3>0的条件不被记录在内,在当前周期内出现B3>0画青色柱线}
DRAWTEXT(FILTER(B3>0,5),0.25,‘RSI底背离‘),COLORFFCC66;
2,COLORRED;
C1:=BARSLAST(ref(cross("macd.dea"(12,26,9),"macd.diff"(12,26,9)),1));
D1:=ref(c,C1+1)<c and ref("macd.diff"(12,26,9),C1+1)>"macd.diff"(12,26,9) and cross("macd.dea"(12,26,9),"macd.diff"(12,26,9));
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("kdj.d"(9,3,3),"kdj.k"(9,3,3)),1));
D2:=ref(c,C2+1)<c and ref("kdj.k"(9,3,3),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;{5天内D2>0的条件不被记录在内,在当前周期内出现D2>0画红色柱线}
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)<c and ref("RSI.RSI1"(6,12,24),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;{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(CLOSE<REF(CLOSE,7),0-VOL,0)),0);
VarC:=SUMBARS(VOL,CAPITAL);{求完全换手到现在的周期数}
VarD:=IF(CLOSE>LLV(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(CLOSE<REF(CLOSE,1),0-VOL,0)),0);
V2:=SUMBARS(VOL,CAPITAL);{求完全换手到现在的周期数}
V3:=IF(CLOSE>LLV(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(神奇线,1) AND NOT(REF(LOW,1)>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<MA(VOL,5)/2,0,VOL,4,0),COLORFF00FF;{画柱线}
相对地量:0,COLORFF00FF;
如图:

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<MA(VOL,5)*5;
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(神奇线,1) AND NOT(REF(LOW,1)>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可以作为参数调整,也可以直接写其它的指标线,如"kd.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)*"H000001$CLOSE"/1000,coloryellow,linethick2;{调用了上证”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表示星期天,取得该周期的星期数。
8、YEAR 年份 函数返回有效值范围为(1970-2038),取得该周期的年份。
举例:
1、区间统计指标示例:
例如,要取得2002年2月1日到2002年12月30日间的最低价。思考一下,一段时间的最低价必然是该段时间内每个分析周期的最低价中最小的那个。所以我们要引用的数据是该段时间各分析周期的最低价,而不需要用到开盘价、收盘价或最高价;还要将不需要的数据,即区间外的数据设为0。语句为:
    LL:=IF(YEAR=2002 AND MONTH>=2 AND MONTH<=12,LOW,0);{LL赋值:如果年份>=2002 AND 月份>=2 AND 月份<=12,若是返回最低价,否则返回0}
  该语句用一个条件函数来判断时间是否处于规定区间,我们再用LLV函数,就可求得该段时间最低的最低价:
    LLV(LL,0);完整指标就是:
LL:=IF(YEAR=2002 AND MONTH>=2 AND MONTH<=12,LOW,0);
LLV(LL,0);
2、时间限制指标示例:
Var1:=IF(YEAR>=2034 AND MONTH>=1,0,1);{VAR1赋值:如果年份>=2034 AND 月份>=1,返回0,否则返回1}
{这个语句在配合其它语句使用的情况下可起到时间限制作用}
VarC:=MA(SUM(IF(CLOSE>REF(CLOSE,1),VOL,IF(CLOSE<REF(CLOSE,1),0-VOL,0)),0)/25000,2)*Var1;
{VARC赋值:如果收盘价>昨收,返回成交量(手),否则返回(如果收盘价<昨收,返回0-成交量(手),否则返回0)的历史累和/25000的2日简单移动平均*VAR1}
{在这句用到了VAR1,当VAR1符合条件即:年份>=2034 和 月份>=1时,则VAR1=0,这样以后计算出来的结果全是0,这时该指标便毫无意义了,起到了时间限制的作用。}
分界线: EMA(VarC,26)*Var1, LINETHICK2, COLORf0f000;
庄家线1: EMA(VarC,1)*Var1, COLORRED;
庄家线2: EMA(VarC,6)*Var1, COLORYELLOW;
庄家线3: EMA(VarC,12)*Var1, COLOR00ff00 ;
例如:每月15日显示一行或一个字。
a1:=if(month>=1 and day=15,15,0);
DRAWTEXT(a1,10,‘涨‘);
 
什么是条件选股?
简单讲,就是按照您设定的条件用电脑帮助您完成一些太多太复杂的挑选--比如您有一些好的心得和方法,可是有1300多只股票,您就是有100双眼睛有时也不一定可以看得过来,这时条件选股公式+电脑就派上用场了!编写条件选股公式其实很简单,它是在技术公式的基础上编写而成的,我们还可以将任意一个技术指标公式改写成选股公式。值得注意的是,选股公式与技术公式的区别是它只有一个返回值,通俗的讲就是选股公式只有一个不带“=”号的语句,其它语句都要有“=”号,否则在测试时会提示"选股公式必须只有一个返回值",如图:
好了,我们开始建立一个选股公式。点击”条件选股“选项,选择”新建“,开始编写,写完后给指标起个名字,点击测试通过后保存。我们举例来说明:
{龙行KDJ}
RSV:=(CLOSE-LLV(LOW,7))/(HHV(HIGH,7)-LLV(LOW,7))*100;
短K:SMA(RSV,3,1),COLORFF00FF;
短D:SMA(短K,3,1),COLORYELLOW;
RSV1:=(CLOSE-LLV(LOW,38))/(HHV(HIGH,38)-LLV(LOW,38))*100;
长K:SMA(RSV1,5,1),COLORRED;
长D:SMA(长K,10,1),COLOR66CC33;
18,COLORWHITE;
85,COLORBLUE;
STICKLINE(短K>短D,短K,短D,4,0),COLORYELLOW;
STICKLINE(短K<=短D,短K,短D,4,0),COLORGREEN;
STICKLINE(长K>长D,长K,长D,4,0),COLORRED;
STICKLINE(长K<=长D,长K,长D,4,0),COLOR669933;
上面是《龙行KDJ》技术指标,根据这个指标改编成选股指标。
{龙行短线选股}
RSV:=(CLOSE-LLV(LOW,7))/(HHV(HIGH,7)-LLV(LOW,7))*100;
短K:=SMA(RSV,3,1);
短D:=SMA(短K,3,1);
cross(短K,短D)
{配合龙行kdj指标使用}
{龙行长线选股}
RSV:=(CLOSE-LLV(LOW,38))/(HHV(HIGH,38)-LLV(LOW,38))*100;
长K:=SMA(RSV1,5,1);
长D:=SMA(长K,10,1);
cross(长K,长D)
{配合龙行KDJ指标使用}
看明白了吧!我们把一个技术指标改编成了2个选股指标,而且每个只用了4条语句就OK啦!那么我们就可以开始选股啦,把选出的股票存放在大智慧自选1板块里,用龙行KDJ技术指标对照比较一下,看看选出的股票走势都是在技术指标的什么位置上,是处在低位还是处在阶段低位,你就可以根据判断择机介入了。凡是用技术指标改编的选股公式建议你都这样做。条件选股的优势在于语句少、速度快,凡是符合条件的股票一个不漏的选出来存放在自选1或自选2等自定义的板块里供你挑选。下面选择一些各种走势特征和形态特征的指标供朋友参考。
一、放量、缩量(成交量函数为VOL)
1、放量:
(1).今天成交量较昨天增加了1倍,表示如下:
   VOL/REF(VOL,1)>2
(2).今天成交量较10个交易日平均成交量放大了1倍,表示如下:
a:=ma(vol,10);
Vol/a>2
或者直接用如下公式表示:
vol/ma(vol,10)>2;
(3).今日的5日均量较10个交易日平均成交量放大了1倍,表示如下:
  a:=ma(vol,10);
b:=ma(vol,5);
b/a>2;
(4).今日的成交量超过了整个流通盘的5%,表示如下:
   vol/capital>0.05;{其中capital代表流通盘。}
2、缩量
  (1).今日成交量较昨日减少了一半,表示如下:
vol/ref(vol,1)<0.5;
(2).今日成交量较10个交易日平均成交量减少一倍,表示如下:
   a:=ma(vol,10);
vol/a<2;
或者直接用如下公式表示:
   vol/ma(vol,10)<2;
(3).今日的5日均量较10个交易日平均成交量减少1倍,表示如下:
a:=ma(vol,10);
b:=ref(a,5);
a/b<2;
(4).今日的成交量低于了整个流通盘的5%,表示如下:
vol/capital<0.05;
二、上涨、下跌
上涨:
今天的涨幅达到5%以上,表示如下:
close/ref(close,1)>1.05;
5日均价连续上涨,表示如下:
a:=ma(close,5);
b:=ref(a,1);
b;
下跌:
今天的跌幅达到5%以上,表示如下:
close/ref(close,1)<0.95;
5日均价连续下跌,表示如下:
a:=ma(close,5);
b:=ref(a,1);
a<b;
(3)、K线的描述
close>open;阳线
close<open;阴线
open>ref(close,1);高开
open<ref(close,1);低开
open>ref(high,1);跳空高开(high为最高价)
open<ref(low,1);跳空低开(low为最低价)
三、走势特征选股公式的编制
(1)、n日内创新高
   hhv(high,n)=hhv(high,0) and barscount(c)>=n;
注:n为指标参数,可在参数设定范围内设定参数范围。Hhv(x,n),求n周期内x最高值,n=0则从第一个有效值开始;barscount(x),将当前位置到n周期前的数值设为1,若x非0,则将当前位置到n周期前的数值设为1。
(2)、n日内创新低
   llv(low,n)=llv(low,0) and barscount(close)>=n;
注n为指标参数,可在参数设定范围内设定参数范围。Llv(x,n),求n周期内x最低值,n=0则从第一个有效值开始;barscount(x)第一个有效数据到当前的天数,例如,barscount(close)以于日线数据取得上市以来总交易日数。
(3)、n日内阴线多于阳线
   count(open>close,n)/n<0.5;
注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等 ,达到确定阴线占全部K线个数的比例)。
(4)、n日内阳线多于阴线
   count(open<close,n)/n>0.5;
注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等 ,达到确定阳线占全部K线个数的比例)。
(5)、n日内上涨多于下跌(第二天开盘高于前一天收盘)
count(c>ref(c,1),n)/n>0.5;
注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等 ,达到确定其中比例)。
(6)、n日内上涨少于下跌(第二天开盘低于前一天收盘)
   count(c>ref(c,1),n)/n<0.5;
注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等 ,达到确定其中比例)。
(7)、连续n日收阳线
   up:=close>open;
count(up,n)=n;
注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。n为指标参数,可在参数设定范围内设定参数范围。
(8)、连续n日内收阴线
   up:=close<open;
count(up,n)=n;
注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。
(9)、连续n天上涨
   count(close>ref(close,1),n)=n;
注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。
(10)、连续n天下跌
   count(c<ref(c,1),n)=n;
注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。
(11)、首次创新高
   barssince(c>hhv(if(barscount(c)=1,high,0),0))+1=1;
注:barscount(x),若x非0,则将当前位置到n周期前的数值设为1。
(12)、创历史新高
   hhv(close,0)=close;
注:hhv(x,n),求n周期内x最高值,n=0则从第一个有效值开始。
(13)、创历史新低
   llv(close,0)=close;
注:llv(x,n),求n周期内x最小值,n=0则从第一个有效值开始。
(14)、单日放量
   a:=ref(ma(vol,5),1);
vol/a>n and vol/capital*100>m;
注:n为指标参数,代表今日成交量和前一日的5日均量的比值,可在参数设定范围内设定参数范围。
(15)、阶段缩量
   sum(vol,n1)/capital<=n2;
注:n1为要统计的阶段时间,n2为缩量比例,可在参数设定范围内设定参数范围。
(16)、阶段放量
   sum(vol,n1)/capital>=n2;
注:n1为要统计的阶段时间,n2为y放量比例,可在参数设定范围内设定参数范围。
(17)、持续放量
   a:=vol>ref(vol,1);
count(a,n)=n;
注:其中条件a的含义为成交量较上一交易日放大,n为要统计的阶段时间,可在参数设定范围内设定参数范围。
(18)、持续缩量
   a:=vol<ref(vol,1);
count(a,n)=n;
注:其中条件a的含义为成交量较上一交易日缩小,n为要统计的阶段时间,可在参数设定范围内设定参数范围。
(19)、间隔放量
   a:=ma(vol,5);
barscount(c)>=n and hhv(a,n)<n1*llv(a,n) and count(vol>n2*a,n)>n3;
注:a.barscount(x)第一个有效数据到当前的天数。Barscount(c)对于日线数据取得上市以来总交易日数。
b.完整含义:n日内五日均量的最大值小于最小值的n1倍,成交量大于等于五日均量的n2倍的情况发生的次数多于n3次。
(20)、放量上攻
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日内放大。
(21)、温和放量上攻
   股价小幅上扬
a1:=close/ref(close,1);
a2:=a1>1 and a1<1.03;
成交量小幅上扬
  b1:=vol/ref(vol,1);
b2:=b1>1 and b1<2;
c1:=ma(vol,n)/capital<0.05;
count(a2 and b2,n)/n>0.6 and c1;
完整公式为:
  a1:=close/ref(close,1);
a2:=a1>1 and a1<1.03;
b1:=vol/ref(vol,1);
b2:=b1>1 and b1<2;
c1:=ma(vol,n)/capital<0.05;
count(a2 and b2,n)/n>0.6 and c1;
注:公式分为股价小幅上扬和成交量小幅上扬两个部分,请在指标编写时注意其结构。
(22)、突然放量
   vol>ref(hhv(vol,n),1*m;
注:当前成交量高于n个周期中最大成交量的m倍。
(23)、平台整理
   count(close,0)>n and (hhv(close,n)-llv(close,n))/llv(close,n)<=(n1/100);
注:count(close,0)>n为平台整理n个周期的设定。(hhv(close,n)-llv(close,n))/llv(close,n)<=(n1/100)为平台整理幅度n1%的设定。
(24)、突破长期盘整
ref(((hhv(h,n)-llv(l,n))/llv(l,n))/llv(l,n)),1)<=(n1/100) and c>=ref(hhv(h,n),1) and barscount(c)>n;
注:前n日在上下n1%的幅度内整理:ref(((hhv(h,n)-llv(l,n))/llv(l,n))/llv(l,n)),1)<=(n1/100);
今日突破:c>=ref(hhv(h,n),1);
(25)、阶段强势股
  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函数表示同期大盘的收盘价,该函数对分笔成交分析周期无效。
(26)、阶段弱势股
  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函数表示同期大盘的收盘价,该函数对分笔成交分析周期无效。
(27)、大盘同步
   count((c>o and indexc>indexo) or (c<o and indexc<indexo),n)/n>m/100;
注:含义为n周期中与大盘走势相同(同收阴线或同收阳线)的例超过m%。此处的o不是数字的零,而是开盘价open的首写字母o。
(28)、n日内强势股
a:=(c-ref(o,n))/ref(o,n);
b:=(indexc-ref(indexo,n))/ref(indexo,n);
a>b and a/b>=m;
注:n日内个股涨幅大于等于大盘涨幅的m倍。
四、形态特征选股公式的编制
(1)、均线多头排列
  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 and isup;
注:n1、n2、n3、n4j日均线呈多头排列,isup也可以用close>open表示。
(2)、均线空头排列
  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 and not(isup);
注:n1、n2、n3、n4j日均线呈空头排列,isup也可以用close<open表示。
(3)、早晨之星
   ref(close,2)/ref(open,2<0.95 and ref(open,1)<ref(close,2) and abs(ref(open,1)-ref(close,1)/ref(close,1)<0.03 and close/open>1.05 and close>ref(close,2);
注:早晨之星,这种形态和叫法自然是后市向好,为买进信号。早晨之星由三根K线组成,其顺序是:
   第一天在下跌过程中已形成一根阴线:
   ref(close,2)/ref(open,2<0.95
第二天呈裂口下跌,K线实体较短,构成星的主体部分,阴线或阳线均可,有无上下影线均不重要。
   ref(open,1)<ref(close,2) and abs(ref(open,1)-ref(close,1)/ref(close,1)<0.03
   关键是第三根K线必须是阳线,且其长度至少要升至第一根阴线实体(如果能够“包容”第一根阴线则最好不过了)
   close/open>1.05 and close>ref(close,2)
(4)、强势整理
a1:=abs(close-open)/open<0.015;
a2:=count(a,m)=m;
a3:=ref(o,m)<ref(c,m) and ref (c,m)/ref(c,m+1)>1+n/100;
a2 and a3;
注:一根实体超过n的长阳,后面跟m个K线实体不超过1.5%的K线。
(5)、高开大阴线
   open>close and open/ref(c,1)>=1+m/100 and close/open<=1-n/100;
注:跳空高开m%,当日股价较开盘价跌幅大于n。股价经过一段持续攀升之后,某一日突然跳高开盘:
   open/ref(c,1)>=1+m/100
   后股价一路下行,尾市以接近最低点收市:
   close/open<=1-n/100
   此信号出现,往往意味着股价已形成短期头部,应注意回避风险。
(6)、低开大阳线
   open<close and open/ref(c,1)<=1-m/100 and close/open>=1+n/100;
注:跳空低开m%,当日股价较开盘价涨幅大于n,其他描述请参见(5)。
(7)、黄昏之星
   ref(close,2)/ref(open,2)>1.03 and ref(open,1)>ref(close,2) and abs(ref(open,1)-ref(close,1)/ref(close,1)<0.02 and close/open<0.97 and close<ref(close,2);
注:黄昏之星表示股价回落,是卖出信号,应伺机抛货。幕星同样由三根K线组成,其形态和晨星正好相反:
   第一天股价继续上升,拉出一根阳线:
   ref(close,2)/ref(open,2)>1.03
   第二天波动较小,形成一根小阳线或小阴线,构成星的主体部分:
   ref(open,1)>ref(close,2) and abs(ref(open,1)-ref(close,1)/ref(close,1)<0.02
   第三天形成一根包容第二天并延伸至第一天阳线实体:
   close/open<0.97 and close<ref(close,2)
(8)、跳空缺口
   high<ref(low,1) or low>ref(high,1);
注:从内容上看,分别是向下跳空缺口和向上跳空缺口。
(9)、均线金叉
  a;=ma(c,5);
b:=ma(c,10);
cross(a,b);
注:前二句是5、10日均线,cross是交叉函数,cross(a,b)表示5日均线与10日均线金叉。
(10)、均线死叉
  a;=ma(c,5);
b:=ma(c,10);
cross(b,a);
注:前二句是5、10日均线,cross是交叉函数,cross(b,a)表示5日均线与10日均线死叉。
(11)、均线粘合
ma1:=ma(c,5);
ma2:=ma(c,10),
ma3:=ma(c,20);
  p1:=abs(ma1-ma2)+abs(ma2-ma3);
p1/c<m/100 and ma1>ref(ma1,1) and ma2>ref(ma2,1);
注:前三句是三根均线,p1是第一根均线减第二根均线差的绝对值与第二根均线减第三根均线差的绝对值之和,最后一句是p1与收盘价的比值小于一定比率m%(一般该比率为2%以下,同时前二均线今日比昨日上翘。
 
 交易系统指标是通过大智慧的函数及条件所编制的在主图K线图上显示买卖红绿箭头的指标,是大智慧在条件选股功能上的一个大的延伸,旨在建立一套完整的交易规则体系,系统可以通过此平台对我们的买入、卖出等操作发出明确的买卖信号指示。
一、 编辑交易系统公式
进入大智慧“公式编辑器”
(1) 、点击“交易系统”选项,选择“新建”,可以建立一个新的交易系统。
(2) 、选中一个具体的交易系统,双击名称或者点击“修改”,可能浏览并编辑该系统的公式内容。
二、 交易提示编辑时常用的函数:
(1)、前提:交易系统一共包含多头买入(卖出)、空头买入(卖出)四种情况,但是由于我们只允许多头买入、卖出,故我们这里不讨论空头情况。
(2)、函数
   ENTERLONG:多头买入函数。
   EXITLONG:多头卖出函数。
   简单的交易系统模型应该如下表示:
   ENTERLONG:条件A;
EXITLONG:条件B;
注意:一个完整的交易系统必须有进出两个条件组成,也就是说是ENTERLONG、EXITLONG或者ENTERSHORT、EXITSHORT(空头买入、卖出函数)中其中一组组成。
三、 交易系统的编制方法
  首先,要确定的是交易系统是多个条件的组合。通过不同条件的叠加、修正,系统自动在满足我们组合条件的个股K线图中添加买卖信号。
 (1)、均线交易系统
  如果个股5日均线上穿10日均线时,我要买入;相反,个股5日均线下穿10日均线我就卖出,这样的一个思路我们怎么来编写交易系统呢?很简单
  {均线交易}
a1:=CROSS(MA(CLOSE,5),MA(CLOSE,10));{5日均线上穿10日均线(买入条件)}
a2:=CROSS(MA(CLOSE,10),MA(CLOSE,5));{10日均线下穿5日均线(卖出条件)}
ENTERLONG:CROSS(MA(CLOSE,5),MA(CLOSE,10));{多头买入ENTERLONG:条件a1}
EXITLONG:CROSS(MA(CLOSE,10),MA(CLOSE,5));{多头卖出EXITLONG:条件a2}
同时按照自己的需求选择正确的介入点,如果不作选择,系统将默认在满足条件时发出提示信号。
  为了方便修改指标参数,也可以将5日均线、10日均线设定成参数:N(1 100 5)和M(1 100 10),并将其默认为5、10。参数自述中加上“短期均线上穿长期均线买入,长期均线上穿短期均线卖出。”
  那么在使用该交易系统时,用鼠标右健点击发出的买卖提示点,选择“调整指标参数”,就可以很方便的修改里面的2条均线参数。
 (2)、KDJ交易系统
  我们知道如果在K小于20的区域发生了K线上穿过D线是很好的买入条件;相反,K>80并且K线下穿过了D线,则是很好的卖出条件。如何编辑呢?
  第一步:在公式编写栏中分别设定公式的名称、分析周期、参数的各项内容,并编写KD的表达式,并且将K、D表达为两个中间表达式。中间表达式用符号“:=”
  RSB:=(CLOSE-LLV(LOW,N))/(HHV(HIGN,N)-LLV(LOW,N)0*100;
K:=SMA(RSV,M1,1);
D:=SMA(K,M2,1);
第二步:完成交易系统的结构
  ENTERLONG:CROSS(K,D) AND K<20;
EXITLONG:CROSS(D,K) AND K>80;
完整表达式:
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
ENTERLONG:CROSS(K,D) AND K<20;
EXITLONG:CROSS(D,K) AND K>80;
测试通过,退出。
  但是,假设在一个KD强势的市场中,如果股价从下方穿过了30日均线,并且当天的成交量有比较明显的放大,我会买入;我的卖出条件是股价跌下10日均线之下立即抛出。这个交易系统怎么编辑呢?
  买入条件:
KDJ强势:
AA:="KDJ.D"(9,3,3);{因为KDJ指标中3个参数默认值分别为9、3、3,故我们应在指标中增加默认值}。
A1:=AA>40;
A2:=VOL/MA(VOL,5)>2;{成交量明显放大,量化为大于5日均量的一倍}
A3:=CROSS(CLOSE,MA(CLOSE,30));{股价从下方上穿过了30日均线}
ENTERLONG:A1 AND A2 AND A3;{买入条件}
A4:=CROSS(MA(CLOSE,5),CLOSE);{股价从上方下穿过了5日均线}
EXITLONG:A4 AND COUNT(A1 AND A2 AND A3,20)=1;{卖出条件:注意其后的COUNT( )是用来限定卖出信号发生在买入条件发生的20天内。}
  那么,完整的公式为:
AA:="kdj.d"(9,3,3);
A1:=AA>40;
A2:=VOL/MA(VOL,5)>2;
A3:=CROSS(CLOSE,MA(CLOSE,30));
A4:=CROSS(MA(CLOSE,5),CLOSE);
ENTERLONG:A1 AND A2 AND A3;
EXITLONG:A4 AND COUNT(A1 AND A2 AND A3,20)=1;
测试通过,退出。
交易系统公式最好找自己熟悉的且常用的技术指标(主副图)或选股指标公式来改编,一是容易上手;二是使用放心。
公式举例:
{均线轨道 参数 N: 1 100 26}
VAR1:=MA(CLOSE,N);{对“VAR1”赋值}
VAR2:=MA(CLOSE,2*N);{对“VAR2”赋值}
VAR3:=MA(CLOSE,3*N);{对“VAR3”赋值}
VAR4:=MA(CLOSE,4*N);{对“VAR4”赋值}
VAR5:=MA((VAR1+VAR2+VAR3+VAR4)/4,5);{一条多条均线的平均线}
上轨:=VAR5*1.08;{在均线“VAR5”上加上8%的幅度变成“上轨”}
下轨:=VAR5*0.92; {在均线“VAR5”上减去8%的幅度变成“下轨”}
{多头买入} ENTERLONG:CLOSE<下轨;
{多头卖出} EXITLONG:CLOSE>上轨;
 
一、五彩K线简介
简单地说五彩K线,就是对于我们事先描述好的K线形态,大智慧将自动地给我们找出来,同时对满足条件的K线形态赋于颜色,以区别于其他的K线。依据K 线的形态,我们将五彩K线分为“上涨”、“下跌”、“反转”三大类。
二、五彩K线编辑时常用的函数
(1)、BACKSET(X,N)
五彩K线就是对满足条件的K线形态赋于颜色,在这里,我们就需要赋值函数BACKSET赋予满足条件的K线时段以不同的颜色,区分不满足条件的其它时段的K线。
  函数BACKSET(X,N)中,X是由逻辑判断语句组合的一个综合条件,N为你意欲赋予颜色的时间长度,该时间长度的取值法为“从当前周期开始向前到N个当前周期”。
 (2)、更改颜色
  如果不进行任何的颜色设定,系统将以黄色显示五彩K线,目前我们在每个指标中以红色显示五彩K线。如果要更改颜色,只需要将指标中“COLORRED”改为其他颜色即可。
三、五彩K线的编制方法
五彩K线的编制并没有和前面介绍的其他公式有很大的区别,一般的公式编辑是作为特定的指标来显示,五彩K线将满足条件的连续K线形态赋予颜色,区别于其它的K线,则是把满足设定条件的个股以其颜色来标明。
下面我们动手编制:
1. 点击“自编指标”;
2. 点击“五彩K线”选项;
3. 点击“新建”按钮,在“指标编辑器”输入指标语句。
(一)编写阳包阴五彩K线
这里的阳包阴就是说某一天的阳线将前一天的阴线全部包容起来,使得在K线组合上出现前小后大的形态。该动态表明前日所有价位买进而未出局者都能获利,从而大鼓舞了人气,为此后的持续上升奠定了基础,是典型的底部信号。
原理:某一天的阳线将前一天的阴线全部包容起来。
编写思路:
REF(OPEN,1)>REF(CLOSE,1) 上一交易日收阴线。
CLOSE>REF(OPEN,1) 收盘价高于上一交易日开盘价。
OPEN<REF(CLOSE,1) 开盘价小于上一交易日收盘价。
HIGH>REF(HIGH,1) 最高价高于上一交易日最高价。
LOW<REF(LOW,1) 最低价小于上一交易日最低价。
CLOSE>OPEN 收阳线
(CLOSE-OPEN)>(EMA((HIGH-LOW),N))
为了避免小阴小阳的“阳包阴”,我们设定幅度超过市场N个交易日内平均涨幅。
COLORRED 五彩K线颜色为红色。
BACKSET(我们假定的条件,2),COLORRED;
把参数N设为5日(N:1 100 5),起一个<阳包阴>的名字,那么整体的公式为:
  BACKSET (REF(OPEN,1)>REF(CLOSE,1) AND CLOSE>REF(OPEN,1) AND OPEN<REF(CLOSE,1) AND HIGH>REF(HIGH,1) AND LOW<REF(LOW,1) AND CLOSE>OPEN AND (CLOSE-OPEN)>(EMA((HIGH-LOW),N)),2),COLORRED;
 (二)、编写三只乌鸦五彩K线
  在股价顶部,庄家已获利丰厚,准备出逃时会连续拉出二根、三根或三根以上的小阴线,且每日的K线均低于上一日的收盘价。这促顶部特征不一定要伴随着大的成交量,因此具有较大的欺骗性。
  原理:
1、连续三支阴线;
2、每日收盘价均向下跌;
3、收盘价接近每日的最低价位;
4、每日的开盘价都下跌。
  编写思路:
REF(CLOSE,2)<REF(OPEN,2) 前二个交易日收阴线。
REF(CLOSE,1)<REF(OPEN,1) 前一个交易日收阴线。
CLOSE<OPEN 最后交易日收阴线。
REF(CLOSE,1)<REF(CLOSE,2) AND CLOSE<REF(CLOSE,1) 每日收盘价都向下跌。
REF(OPEN,1)<REF(OPEN,2) AND OPEN<REF(OPEN,1) 每日开盘价都向下跌。
REF(C,3)/REF(O,3)>=1.02 第一根阴线跌幅超过2%。
COLORRED 五彩K线颜色为红色。
BACKSET(我们假定的条件,3),COLORED
起一个<三只乌鸦>的名字,那么整体的公式为:
BACKSET(REF(CLOSE,2)<REF(OPEN,2) AND REF(CLOSE,1)<REF(OPEN,1) AND CLOSE<OPEN AND REF(CLOSE,1)<REF(CLOSE,2) AND CLOSE<REF(CLOSE,1) AND REF(OPEN,1)<REF(OPEN,2) AND OPEN<REF(OPEN,1) AND REF(C,3)/REF(O,3)>=1.02,3),COLORRED;
注:三只乌鸦形态发生在上升趋势中,三只乌鸦出现前必须有一段明显的上升趋势,无论这段上升趋势是长或短,在此之后出现该形态才较为有效。三只乌鸦形态如果出现在前期的形态压力位附近,则其反转的可靠性进一步增强。对行情的研判更具意义。在一段上升行情的关健位置在历史高价位区域,且是重要的支撑阻挡位时,出现三只乌鸦形态,则其意义显得重要,在很大的程度上趋势将反转下跌。
 (三)、编写红三兵五彩K线
  在本形态中,相继出现的3根阳线K线组成,它们的收市价一个比一个高(并且每根K线的收市价均接近当日的最高价),表示多头势力的加强。如果这样的3根阳线K线出现在一贯相对稳定的价格阶段之后,而且处于一个低价区,则预示着市场将进一步坚挺。
  编写思路:
REF(CLOSE,2)>REF(OPEN,2) 第一根K线收阳。
REF(CLOSE,1)>REF(OPEN,1) 第二根K线收阳。
CLOSE>OPEN 第三根K线收阳。
(CLOSE-OPEN)>=REF((CLOSE-OPEN),1) 第三根阳线实体大于第二根阳线实体。
REF((CLOSE-OPEN),1)>=REF((CLOSE-OPEN),2) 第二根阳线实体大于第一根阳线实体。
OPEN>REF(OPEN,1) 第三根阳线开盘高于第二根阳线开盘。
REF(OPEN,1)>REF(OPEN,2) 第二根阳线开盘高于第一根阳线开盘。
COLORRED 标明为红色。
BACKSET(我们假定的条件,3),COLORED;
起一个<上涨红三兵>的名字,那么整体的公式为:
  BACKSET(REF(CLOSE,2)>REF(OPEN,2) AND REF(CLOSE,1)>REF(OPEN,1) AND CLOSE>OPEN AND (CLOSE-OPEN)>=REF((CLOSE-OPEN),1) AND REF((CLOSE-OPEN),1)>=REF((CLOSE-OPEN),2) AND OPEN>REF(OPEN,1) AND REF(OPEN,1)>REF(OPEN,2),3),COLORRED;
注:如果红三兵出现在V型底、W底的附近,则构成了底部反转形态的确认信号;红三兵形态发生在下降趋势中,红三兵出现前必须有一段明显的下降趋势,无论这段下降趋势是长或短,在此之后出现该形态更为有效;红三兵形态如果出现在底部,是一种底部反转信号,此时买进;红三兵形态如果出现在高位,则是一种较为危险的顶部反转信号,此时不宜买进。
  阳线三兵形态有三种类似的构成,表现为一个逐渐而稳定的上升过程,其中每根阳线K线的开市价都处于前一天的阳线实体之内,或者处在其附近的位置上;每一根阳线K线的收市价都应当位于当日的最高点或接近当日的最高点,如果其中第二根和第三根K线,或者仅仅是第三根K线,表现出上涨势头减弱的迹象,就构成了一个前方受阻(阳线三兵)形态。在前方受阻形态中,作为上涨势头减弱的具体表现,既可能是其中的阳线实体一个比一个小,也可能是后两根阳线K线具有相当较长的上影线,如果在后两根K线中,前一个为长长的阳线实体,并且向上创出了新高,后一根只是一个小的阳线K线,那么就构成了一个(阳线三兵)停顿形态。有时候,这种形态也称为(阳线三兵)深思形态。
公式举例:
{均线通道 参数 N: 1 100 26}
VAR1:=MA(CLOSE,N);{对“VAR1”赋值}
VAR2:=MA(CLOSE,2*N);{对“VAR2”赋值}
VAR3:=MA(CLOSE,3*N);{对“VAR3”赋值}
VAR4:=MA(CLOSE,4*N);{对“VAR4”赋值}
VAR5:=MA((VAR1+VAR2+VAR3+VAR4)/4,5);{一条多条均线的平均线}
上轨:=VAR5*1.08;{在均线“VAR5”上加上8%的幅度变成“上轨”}
下轨:=VAR5*0.92; {在均线“VAR5”上减去8%的幅度变成“下轨”}
CLOSE<下轨,COLORRED; {小于下轨提示买入红色}
CLOSE>上轨,COLORYELLOW; {高于上轨提示卖出黄色}
HIGH>上轨*1.06,COLORBLUE;{高于上轨6%提示清仓蓝色}
LOW<下轨*0.94, COLORFF00FF;{低于下轨6%提示加仓粉红色}
 
 大智慧的诊断指标形同于飞狐、分析家的解盘指标,都是通过文字来提供当前盘面个股的趋势、均线、基本面、K线形态等技术指标的演化状态的,这对盘面分析很有帮助。
诊断指标是通过引用技术指标来完成文字诊断的。此外,还要用到文字诊断字符串输出函数,下面分别介绍所用到的函数:
1、IFS 字符串IF函数 用法:IFS(A>B,‘返回A‘,‘返回B‘);
该函数返回一个字符串,上例表示:
如果A大于B,则返回‘返回A‘串,否则返回‘返回B‘串;
2、STR 数据到字符串转换函数 用法:STR(X,N);
该函数返回一个字符串.上例子表示:范围精度为N的X的字符串;
诊断指标分两部分组成,前一部分是指标公式,后一部分是文字诊断。下面我们用实例来说明指标的编制:
{基本面 参数 n1:1 999 50 n2:1 999 10 p1:1 999 20 p2:1 999 50}
m1:=FINANCE(33);{每股收益}
m2:=FINANCE(34);{每股净资产}
m3:=CAPITAL/1000000;{流通盘}
m4:=FINANCE(34);{净资产}
m5:=FINANCE(18);{公积金}
m6:=FINANCE(32);{未分配利润}
c1:=c/ref(ema(c,30),30);
c2:=indexc/ref(ema(indexc,30),30);
l1:=c1/c2*10-10;
c3:=c/ma(c,60);
c4:=indexc/ma(indexc,60);
l2:=c3/c4*10-10;
c5:=c/ma(c,120);
c6:=indexc/ma(indexc,120);
l3:=c5/c6*10-10;
L4:=MA(L1+L2+L3,5);
DIFF:="MACD.DIFF"(12,26,9);
DEA:="MACD.DEA"(12,26,9);
MACD:="MACD.MACD"(12,26,9);
K:="KD.K"(17,4,4);
D:="KD.D"(17,4,4);
{以上部分是公式,不能设有返回值,也就是全用":="赋值符。以下部分是引用上面的公式所做的文字诊断}
‘【阳之光解盘】‘+
‘该股为‘+
IFS(FINANCE(33)>=N1/100,‘绩优、‘,‘‘)+IFS(FINANCE(33)<N1/100 AND FINANCE(33)>=N2/100,‘中等业绩、‘,‘‘)+IFS(FINANCE(33)<N2/100 AND FINANCE(33)>=0,‘绩差、‘,‘‘)+IFS(FINANCE(33)<0,‘亏损、‘,‘‘)+
IFS(DYNAINFO(39)<=P1 AND DYNAINFO(39)>0,‘低市盈率、‘,‘‘)+IFS(DYNAINFO(39)>P1 AND DYNAINFO(39)<=P2,‘中等市盈率、‘,‘‘)+IFS(DYNAINFO(39)>P2,‘高市盈率、‘,‘‘)+IFS(FINANCE(7)>=S1,‘大盘股。‘,‘‘)+IFS(FINANCE(7)<S1 AND FINANCE(7)>=S2,‘中盘股。‘,‘‘)+IFS(FINANCE(7)<S2,‘小盘股。‘,‘‘)+‘流通盘(万)‘+str(m3,4)+‘。每股净资产为‘+str(m4,2)+‘,收益为‘+str(m1,2)+‘,市盈率为‘+str(c/m1,3)+‘,市净率为‘+str(c/m2,2)+‘,公积金为‘+str(m5,2)+‘,未分配利润为‘+str(m6,2)+‘。‘+
{‘ ‘之间的汉字作为字符串输出会显示在评价窗口中,str函数把数字转化为字符串输出。数据到字符串转换函数。
STR 用法:STR(X,N);该函数返回一个字符串.此例子表示:范围精度为N的X的字符串;}
{‘ ‘+}
IFS(REF(L4,1)>0 AND REF(L4,1)>REF(L4,2),‘该股中长期走势强于大盘,且近期继续走强。‘,‘‘)+
IFS(REF(L4,1)>0 AND REF(L4,1)<=REF(L4,2),‘该股中长期走势强于大盘,但近期有所走弱。‘,‘‘)+
IFS(REF(L4,1)<=0 AND REF(L4,1)>REF(L4,2),‘该股中长期走势弱于大盘,但近期有所转强。‘,‘‘)+
IFS(REF(L4,1)<=0 AND REF(L4,1)<=REF(L4,2),‘该股中长期走势弱于大盘,且近期继续走弱。‘,‘‘)+
IFS(DIFF>=0,‘MACD指标显示该股处于多头行情中‘,‘MACD指标显示该股处于空头行情中‘)+
IFS(DIFF>=0 AND MACD>=0 AND MACD>REF(MACD,1),‘且有加速上涨趋势。‘,‘‘)+
IFS(DIFF>=0 AND MACD>=0 AND MACD<=REF(MACD,1),‘但上涨趋势有所减缓,短线投资者可逢高卖出,但当回落至均线或其他支撑位时应及时回补。‘,‘‘)+
IFS(DIFF>=0 AND MACD<0 AND MACD>=REF(MACD,1),‘,目前正处于回落整理阶段,但整理即将结束,可在均线或其他支撑位附近逢低买入,但当整理完成后选择再次向下突破时应注意及时止损。‘,‘‘)+
IFS(DIFF>=0 AND MACD<0 AND MACD<REF(MACD,1),‘,目前正处于回落整理阶段,且回落有加速趋势。‘,‘‘)+
IFS(DIFF<0 AND MACD<=0 AND MACD<REF(MACD,1),‘且有加速下跌趋势。‘,‘‘)+
IFS(DIFF<0 AND MACD<=0 AND MACD>=REF(MACD,1),‘但下跌趋势有所减缓,可在W&R指标大于90时逢低买入,但有可能再次加速下跌,注意及时止损。‘,‘‘)+
IFS(DIFF<0 AND MACD>0 AND MACD>REF(MACD,1),‘,目前正处于反弹阶段,投资者应保持谨慎。‘,‘‘)+
IFS(DIFF<0 AND MACD>0 AND MACD<REF(MACD,1),‘,短线反弹已经结束,应继续坚持谨慎原则。‘,‘‘)+
IFS(CROSS(DIFF,0),‘该股今日从空头市场转换为多头行情。‘,‘‘)+
IFS(CROSS(0,DIFF),‘该股今日从多头市场转换为空头行情。‘,‘‘)+

IFS(K>80 AND CROSS(D,K)=0,‘KD指标提示该股已经处于超买状态,如果KD指标死叉应及时卖出。‘,‘‘)+
IFS(K<20 AND CROSS(K,D)=0,‘KD指标提示该股已经处于超卖状态,如果KD指标金叉应及时买入。‘,‘‘)+
IFS(CROSS(K,D) AND LLV(K,3)<20,‘KD低位金叉,建议买入。‘,‘‘)+
IFS(CROSS(D,K) AND HHV(K,3)>80,‘KD高位死叉,建议卖出。‘,‘‘)
{每条语句以+符号结束,指标最后一句没有+的符号。}
注意:引用技术指标要准确无误以外,还要注意格式,否则不能通过测试。为了让朋友更明白一些,再举一例:
{KDJ解盘}
K:="KD.K"(17,4,4);
D:="KD.D"(17,4,4);
‘【阳之光解盘】‘+
IFS(K>80 AND CROSS(D,K)=0,‘KD指标提示该股已经处于超买状态,如果KD指标死叉应及时卖出。‘,‘‘)+
IFS(K<20 AND CROSS(K,D)=0,‘KD指标提示该股已经处于超卖状态,如果KD指标金叉应及时买入。‘,‘‘)+
IFS(CROSS(K,D) AND LLV(K,3)<20,‘KD低位金叉,建议买入。‘,‘‘)+
IFS(CROSS(D,K) AND HHV(K,3)>80,‘KD高位死叉,建议卖出。‘,‘‘)
朋友们可以照猫画虎自编一个,只要有一个成功了,你也就掌握了方法。

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多