1、在条件选股中点击“新建”;
2、原来MA5:MA(CLOSE,5);
表示的是一条指标线,可是现在我们在条件选股当中只要引用它,不需要把它画出来。所以我们在冒号的后面加一个符号,表示等会要引用它:MA5:=MA(CLOSE,5);
条件选股总结:
1、指标和条件选股在结构上没有差别,只是在内容上,条件选股要多加上我们的条件,比如大于10,或者交叉等等!
2、中间表达式可以帮助我们清晰的表达我们的公式,不至于使公式的结构特别的混乱!
如何编写BIAS指标?
如果大家都是均线的忠实爱好者的话,那么大家一定牢牢记得在均线大师哥南威尔的8大法则当中的第四条和第五条中曾经提到了当股价偏离均线太远的时候,便会向它靠拢,但是并不提到多远才会靠拢--为了解决这个问题,也为了我们更好地用客观数据来体现股价运动的过程,乖离率这个指标应运而生。
本课我们的任务就是通过对乖离率的原理到编写方法的学习来加强我们对公式设计的理解。
首先,什么是乖离率?
以当日的均线价格为准,股价和均价之间的差距称为乖离程度,以乖离程度除以均价的百分比就是乖离率。
当日股价与10日均线的乖离率=(当日股价-10日均价)/10日均价*100;
当日股价与20日均线的乖离率=(当日股价-20日均价)/20日均价*100;
当日股价与30日均线的乖离率=(当日股价-30日均价)/30日均价*100;
原理就是这么简单,可是怎么使用呢?您别急,所用的指标其实都是在观察当中得出一定的启示,您先实现这几条指标线,让它们以图形的方式出现在您的面前,然后您再去观察,一定会事半功倍!
比如编写10日乖离率
第一步:乖离率的命名,崇尚人家的习惯,依旧使用BIAS,那么第一条就叫做BIAS1好了!
第二步:当日股价用CLOSE表示;
10均价我们在前一节课刚刚学过,顺手拈来,用MA(CLOSE,10)表示;
第三步:一样使用加减乘除符号以及括号,只是要注意只有小括号,没有中大括号,那么公式就有了--
BIAS1:(CLOSE-MA(CLOSE,10))/MA(CLOSE,10)*100;
这样的话我们在技术指标编辑器中将另外两条指标也同样写下来,就得到了BIAS指标,请看下图:
第四步:就是您得自己好好观察您的指标公式在各个股票的表现,得出您自己的结论,因为每一个投资者即使是在使用同样一个指标的时候,都会有不同的理解,我们无法判断优劣,但是有一条可以告诉我们答案,那就是永远让市场说话,因为它永远是对的!
如果您不介意的话,可以参考BIAS,不过仅供参考!
您明白怎么编写了吗?
我能不能直接用写好的指标公式?
我想用KD指标选股,能不能直接写成“D>20”就可以执行了?
就一句话:“KDJ,D”<20;
“KDJ,D”注意格式上,两边用引号括起来,指标名称KDJ和指标线名称D之间用“,”隔开!
额外加餐
现在我们可以很方便的做另外一件事了,我们可以将通常说的KDJ买入条件完整的表达出来了:
“KD指标发生了黄金交叉,并且D<20”
T1:=“KDJ,K”;--引用K线;
T2:=“KDJ,D”;--引用D线;
条件: AND在分析家中就表示“并且”,将两个条件并列起来
CROSS(T1,T2)AND T2<20;
放量、缩量、上涨、下跌、收阳、收阴
涨停板攻击?
一、量化的概念
我们都知道,按规定涨幅不得超过10%,但是由于四舍五入的关系,常常有9.98%、10.23%等等的涨停板,所以我们要找一个合适的数值,然后用分析家的语言告诉计算机,这个过程学名叫量化!
比如我们考察之后,决定让大于9.99%的都为涨停。
二、编写公式
其实就一句话:今日收盘除以昨日收盘的值大于1.0999
X:=CLOSE/REF(CLOSE,1)>1.0999;
三、测试我们的条件
在这里我们的测试方法是:
测试时间是从2000/01/01到2001/03/02,测试股票共计583只,初始投入100,000元。
当满足买入公式中定义的条件时,也就是涨停板时,按照收盘价使用相同资金买入一只股票,当满足以下平仓条件时按照收盘价平仓;买入5日后强制平仓或者亏损达到3%止损平仓或者利润达到5%止赢平仓,然后按照以上的规则统计在测试的时间段内的所有交易的状况。
这是一种追涨的短线方法,所以测试的时间我们只用5天,目标利润为5%,(非常抱歉,因为其中的设置和选择方法十分灵活而且需要较好的理解能力,所以我们在这里就不介绍具体的内容了)
加上一个缩量的条件,比如当日成交量小于5日的均量;Y:=VOL<MA(VOL,5);大家可以做一下测试,看看结果如何!以下是同样测试条件下的结果。 X AND Y;
您满意吗?我们的成功率已达到了80%,剩下的任务就是您如何操作的问题了!
公式:公式的形式由若干语句组成。每个语句得到一个计算结果,对于技术指标,就是一条指标线,语句间用分号隔开。
例如函数REF(X,N)用于引用N周期前的X值,X是一个变量,N是一个常量,REF(close(),1)表示计算上一周期的收盘价。函数若需调用几个参数,则它们在括号内是有顺序的。若没有参数则可以省去括号,例如CLOSE()函数没有参数,所以写成 CLOSE和 CLOSE()都可以。函数计算得到的结果是一个变量。
语句名写在语句的前面,用一个冒号将它与语句隔开。语句“上日收盘价:REF(close,1)”就表示该语句REF(close,1)的名称为“上日收盘价”。该语句后而的语句若需引用它,则写公式名即可,如MA(上日收盘价,20)意思是对上日收盘价求20日平均。
设计中间语句:把不需要显示语句定义为中间语句,中间语句的写法只需在一般语句的名称与语句之间的冒号后加个等号,即“:=”即可。例如,语句“上日收盘价:=REF(close,1)”就表示该语句为中间语句。重复使用的语句也可以定义成中间语句。
条件选股公式只有一条逻辑表达式语句,用来表示选股条件是否成立,例如CLOSE>REF(close,1)语句,表示选出当期收盘价高于上日收盘价的股票。其他的语句必须设定为中间语句,否则编辑器出现“只能有一个输出结果”的警示。
交易系统公式需要1-4条逻辑表达式语句,分别为多头和空头的切入切出条件语句,分别用ENTERLONG, EXITLONG, ENTERSHORT, EXITSHORT表示多头买入、多头卖出、空头切入、空头切出条件,当这些语句返回非0时,表示需要进行相应的操作。其他的语句必须设定为中间语句,否则编辑器出现“非交易信号变量只能用:=赋值”的警示。这四个条件中必须至少设定一个条件。
7、设计计算参数:我们有时需要调节公式中的常数来看公式的表现,可以直接进入公式修改,更方便的方法是用计算参数来指代公式中的常数,需要调节公式时不需进公式只需调节参数就可以了。比如,经常要修改REF(close,1)中的第二个参数1,这时可以把它设为一个计算参数N,公式写成REF(close,N),到时调节N即可。计算参数包括参数名称、最小值、最大值、缺省值四个部分。参数名称用于标识参数,本例我们将参数名定位N,计算公式时采用缺省值计算,而最小值和最大值是参数的调整范围。设定参数后,在图形分析窗口显示该指标时,指标名跟着有参数,右键点击参数即可对它进行修改。对于交易系统公式,每个参数还包括一个测试步长,在优化参数时系统从最小值到最大值逐一调整参数,每次调整的增量就是测试步长。例如最小值1,最大值30,步长10,则系统将测试参数1,11,21。最大测试步数为10000次。每个公式可以带有最多16个计算参数。
8、其他语句:
有时我们想指定技术指标线的画法,这时我们可以在语句后加上线形描述符,描述该语句对应的指标线画法。线形描述符包括STICK:柱状线;COLORSTICK:彩色柱状线,当语句结果为正时显示红色,否则显示绿色;VOLSTICK:成交量柱状线,股价上涨时显示红色空心柱,下跌时显示绿色实心柱;LINESTICK:同时画出柱状线和指标线;CROSSDOT:小叉线;CIRCLEDOT:小圆圈线;POINTDOT:小圆点线。
技术指标公式还可以主动设定欲显示的坐标线,例如我们在坐标线位置输入框中写入-10;O;10,则显示该指标时出现-10,0,10三条坐标线。
特殊数据引用
(1)、指标数据引用
调用其他指标的基本格式:”指标.指标线”(参数)
A、指标与指标线之间用点“.”分开,一个指标不一定只有一条指标线,所以有必要在指标后标注指标线的名称,但是如果缺失则表示引用最后一条指标线。
B、参数在表达式的末尾,必须用括号括起来,参数之间用“,”号分开,通过参数设置可选择设定该指标的参数,如果参数缺失则表示使用该指标的默认参数设置(不过我在使用过程中发现,如不写参数,测试就通不过)。
C、整个表达式用引号引在其中,除参数以外。
例如:”MACD.DEF”(26,12,9)表示计算MACD指标的DEA指标线,计算参数为26、12、9,”MACD”(26,12,9)表示该指标的最后一条指标线,计算参数是26、12、9,”MACD”表示该指标的最后一条指标线,并且使用公式的默认参数。
(2)、其他股票数据引用
使用以下的格式可以在当前的分析界面下引用大盘的数据或者其他个股的数据实现横向上的对比。
A、引用大盘数据
引用大盘数据时使用下列函数:INDEXC、INDEXV等等。
B、引用个股数据
引用个股数据时使用下列格式:”股票代码$数据”,在以上格式当中调用CLOSE、VOL、AMOUNT等等,例如,”Z000002$VOL”表示000002该股本周期的成交量。同时大盘也可视为一只个股来引用,例如,上证”H000001$CLOSE”表示为大盘本周期的收盘价,深市”Z399001$CLOSE”同样表法大盘本周期的收盘价。
(3)、注意事项
在编公式中所运用的标点符号均是在英语状态下的符号。
在编制公式中,有要显示的句子和不显示的句子,要显示用“:”不要显示用“:=”,
一个源码中最多只能有16个可显示的句子,并且每句结束后要加分号“;”。
另外,开盘价、收盘价、最高价、最低价,在公式中可用该函数的第一个字母代替。因此在编公式时不要单独用这几个字母,请要注意。
9、引用其他公式、周期或股票的数据: (注意:本点只作为参考,因大智慧未设有引用其它周期的数据功能)
可以在一个公式中引用其他公式、周期或股票的数据,具体做法如下。
1)引用指标公式/交易系统/条件选股公式
可以引用其他技术指标的指标线,写法是"公式名称.指标线名称"(参数表),请注意,参数表中的参数个数应该与该公式的实际参数数量一致,若不写参数表,则表示使用缺省参数。例如:"KDJ.K(9,6,6)",表示引用根据(9,6,6)参数计算出KDJ指标中的K指标线数值。
可以引用交易系统公式,写法为"SYSTEM.公式名称.交易类型"(参数表),交易类型包括ENTERLONG、EXITLONG、ENTERSHORT、EXITSHORT,分别表示引用多头买入、多头卖出、空头买入、空头卖出条件。例如:"SYSTEM.KDJ.ENTERLONG",表示引用根据缺省参数计算的KDJ交易系统的多头买入条件。
可以引用条件选股公式,写法为"EXPLORER.公式名称"(参数表),例如:"EXPLORER.KDJ",表示引用根据缺省参数计算的KDJ买入条件选股条件。
2)跨周期引用公式(大智慧不支持)
可以引用其他周期的数据,写法为"公式名称.指标线名称#周期"(参数表),跨周期引用只能从较短周期引用较长周期,反方向的引用不允许。例如"KDJ.K#WEEK"(9,6,6),表示引用根据(9,6,6)参数计算周线周期的KDJ指标公式K指标线的数值。
其中周期包括MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH,分别表示1、5、15、30、60分钟线,以及日线、周线、月线。
3)引用任意股票的数据
可以引用其它股票的数据,写法为:"股票代码$数据名称",其中数据名称包括OPEN、HIGH、LOW、CLOSE、VOL、AMOUNT,分别表示开盘价、最高价、最低价、收盘价、成交量、成交额。
第二章:基本公式
1.简单公式
收盘价线
例如:MA1: MA (CLOSE,5) ,coloryellow ;表示为:参数名 画一条5日收盘价的均线 设置该线为黄色
换手率指当期的成交量占流通股本的比例。公式:VOL/CAPITAL VOL为当期成交量,CAPITAL为流通股本。
创新高指当日最高价是最近一段时间的最高价: HIGH=HHV(HIGH,N)
其中的HIGH为当期最高价,HHV(X,N)是求N周期内X最高值。因此该公式的含义是当日最高价创N日新高时返回值为1,否则为0。
横盘整理指最近一段时期价格在一定幅度之内摆动:
(HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE<0.05
其中的LLV(X,N)是求N周期内X最低值。因此该公式表示10日收盘价振幅振幅在5%以内。
区间统计
例如,要取得2002年2月1日到2002年12月30日间的最低价。
LL:=IF(YEAR=2002 AND MONTH>=2 AND MONTH<=12,LOW,0)
该语句用一个条件函数来判断时间是否处于规定区间,若是则返回最低价,否则返回0。我们再用LLV函数,就可求得该段时间最低的最低价:LLV(LL,0)
技术指标公式
参数名称:最小值,最大值,缺省值
N: 1 10O 9
M1: 2 40 3
M2: 2 40 3
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
J:3*K-2*D
该公式绘制K、D、J两条指标线。RSV行是一个中间语句,计算当期收盘价与N天内最低价之差除以N内最高价与最低价之差的比值,再乘以系数100。K线为RSV的M1天移动平均线,D线为线K的M2天移动平均线,J线为K线与J线的差值。
aa:=ma(c,5);{这是5日均线}
bb:=ref(ma(c,5),1);{这是昨日5日均线}
cc:=(aa-bb)/bb>n/100;{这是5日均线增长比率,比率越大,其上长的斜率就越大}
n是参数,n%是5日均线的增长比率,因此n定5以上可能其的斜率就越大,你可试试。)
(对于时间限制的问题,我们就以‘庄家进出’公式来作分析了解。
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;
{输出分界线: VARC的26日异同移动平均*VAR1, LINETHICK2, COLORF0F000}
庄家线1: EMA(VarC,1)*Var1, COLORRED;
{输出庄家线1: VARC的1日异同移动平均*VAR1, 画红色}
庄家线2: EMA(VarC,6)*Var1, COLORYELLOW;
{输出庄家线2: VARC的6日异同移动平均*VAR1, 画黄色}
庄家线3: EMA(VarC,12)*Var1, COLOR00ff00 ;
{输出庄家线3: VARC的12日异同移动平均*VAR1, COLOR00FF00 })
颜色代码
如:colorred{红}
colormagenta(COLORf00ff0){品红} coloryellow{黄} colorgray{灰} colorffff00{兰} colorblue{青} colorwhite{白} colorgreen{绿} colorbrown{棕}
linethick{0--7指标线粗细} linethick{同时显示柱状线和指标线}
circledot{空心园点} pointdot{小点} pointdot,linethick2{实心方点}
crossdot{X点状线} cmcledot{0点状线} stick{显示} colorstick{显示}
linestick{显示} 希望各位指标爱好者自己动手进行配色修改,这样才会记得牢,学得透,不断探索,不断前进。一花开放不是春,万紫千红春满园。
走势特征选股公式的编制
(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%以下,同时前二均线今日比昨日上翘。
2.五彩K线与交易系统指标的编制方法
一、 五彩K线
1、 五彩K线简介
简单地说五彩K线,就是对于我们事先描述好的K线形态,大智慧将自动地给我们找出来,同时对满足条件的K线形态赋于颜色,以区别于其他的K线。
依据K 线的形态,我们将五彩K线分为“上涨”、“下跌”、“反转”三大类。
2、 五彩K线编辑时常用的函数
(1)、BACKSET(X,N)
五彩K线就是对满足条件的K线形态赋于颜色,在这里,我们就需要赋值函数BACKSET赋予满足条件的K线时段以不同的颜色,区分不满足条件的其它时段的K线。
函数BACKSET(X,N)中,X是由逻辑判断语句组合的一个综合条件,N为你意欲赋予颜色的时间长度,该时间长度的取值法为“从当前周期开始向前到N个当前周期”。
(2)、更改颜色
如果不进行任何的颜色设定,系统将以黄色显示五彩K线,目前我们在每个指标中以红色显示五彩K线。如果要更改颜色,只需要瘵指标中“COLORRED”改为其他颜色即可。
3、 五彩K线的编制方法
五彩K 线的编制并没有和前面介绍的其他公式有很大的区别,一般的公式编辑是作
为特定的指标来显示,五彩K线将满足条件的连续K线形态赋予颜色,区别于其它的K线,则是把满足设定条件的个股以其们的颜色标明。
(1) 阳包阴五彩K线的编制
这里的阳包阴就是说某一天的阳线将前一天的阴线全部包容起来,使得在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;
即:
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;
(2)、三只乌鸦五彩K线的编制方法
在股价顶部,庄家已获利丰厚,准备出逃时会连续拉出二根、三根或三根以上的小阴线,且每日的K线均低于上一日的收盘价。这促顶部特征不一定要伴随着大的成交量,因此具有较大的欺骗性。
原理:
1、 连续三支阴线;
2、 每日收盘价均向下跌;
3、 收盘价接近每日的最低价位;
4、 每日的开盘价都下跌。
五彩K 线的编辑:
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;
注:
三只乌鸦形态发生在上升趋势中,三只乌鸦出现前必须有一段明显的上升趋势,无论这段上升趋势是长或短,在此之后出现该形态才较为有效。三只乌鸦形态如果出现在前期的形态压力位附近,则其反转的可靠性进一步增强。对行情的研判更具意义。在一段上升行情的关健位置在历史高价位区域,且是重要的支撑阻挡位时,出现三只乌鸦形态,则其意义显得重要,在很大的程度上趋势将反转下跌。
(3)、红三兵五彩K线的编制
在本形态中,相继出现的3根阳线K线组成,它们的收市价一个比一个高(并且每根K线的收市价均接近当日的最高价),表示多头势力的加强。如果这样的3根阳线K线出现在一贯相对稳定的价格阶段之后,而且处于一个低价区,则预示着市场将进一步坚挺。
五彩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线,那么就构成了一个(阳线三兵)停顿形态。有时候,这种形态也称为(阳线三兵)深思形态。
二、 交易系统
交易系统是大智慧在条件选股功能上的一个大的延伸,旨在建立一套完整的交易规则体系,系统可以通过此平台对我们的买入、卖出等操作发出明确的买卖信号指示。
1、 编辑交易系统公式
进入大智慧“公式编辑器”
(1) 、点击“交易系统”选项,选择“新建”,可以建立一个亲的交易系统。
(2) 、选中一个具体的交易系统,双击名称或者点击“修改”,可能浏览并编辑该系统
的公式内容。
2、 交易提示编辑时常用的函数:
(1)、前提:交易系统一共包含多头买入(卖出)、空头买入(卖出)四种情况,但是由于我们只允许多头买入、卖出,故我们这里不讨论空头情况。
(2)、函数
ENTERLONG:多头买入函数。
EXITLONG:多头卖出函数。
简单的交易系统模型应该如下表示:
ENTERLONG:条件A;
EXITLONG:条件B;
注意:一个完整的交易系统必须有进出两个条件组成,也就是说是ENTERLONG、EXITLONG或者ENTERSHORT、EXITSHORT(空头买入、卖出函数)中其中一组组成。
3、 交易系统的编制方法
首先,要确定的是,交易系统是多个条件的组合。通过不同条件的叠加、修正,系统自动在满足我们组合条件的个股K线图中添加买卖信号。
(1)、均线交易系统
如果个股5日均线上穿20日均线时,我要买入;相反,个股5日均线下穿20日均线我就卖出,这样的一个思路我们怎么来编写交易系统呢?
很简单
5日均线上穿20日均线(买入条件):CROSS(MA(CLOSE,5),MA(CLOSE,20))
5日均线下穿20日均线(卖出条件):CROSS(MA(CLOSE,20),MA(CLOSE,5))
按照前面所讲,交易系统函数“ENTERLONG:条件A;EXITLONG:条件B;”的方式表达:
ENTERLONG: CROSS(MA(CLOSE,5),MA(CLOSE,20));
EXITLONG: CROSS(MA(CLOSE,20),MA(CLOSE,5));
同时按照自己的需求选择正确的介入点,如果不作选择,系统将默认在满足条件时发出提示信号。
为了方便修改指标参数,也可以将5日均线、20日均线设定成参数:SHORT和LONG,并将其默认为5、20。参数自述中加上“短期(Parsm#1)均线上穿长期(Param#2)均线买入,长期均线上穿短期均线卖出。”
那么在使用该交易系统时,用鼠标右健点击发出的买卖提示点,选择“调整指标参数”,就可以很方便的修改里面的2条均线参数。
(2)、KDJ交易系统
我们知道如果在D 小于20的区域发生了K线上穿过D线是很好的买入条件;相反,D>80并且好生了D线下穿过了K线,则是很好的卖出条件。如何编辑呢?
第一步:在公式编写栏中分别设定公式的名称、分析周期、参数的各项内容,并编写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;
完整表达式:
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;
但是,假设在一个KD强势的市场中,如果股价从下方穿过了30日均线,并且当天的成交量有比较明显的放大,我会买入;我的卖出条件是股价跌下10日均线之下立即抛出。这个交易系统怎么编辑呢?
买入条件:
KDJ强势:
AA:=”KDJ,D”(9,3,3);(因为KDJ指标中3个参数默认值分别为9、3、3,故我们应在指标中增加默认值)。
A1:=AA>40;
成交量明显放大,量化为大于5日均量的一倍。
A2:=VOL/MA(VOL,5)>2;
股价从下方上穿过了30日均线。
A3:=CROSS(CLOSE,MA(CLOSE,30));
完整的买入条件为
ENTERLONG:A1 AND A2 AND A3;
卖出条件:
股价从上方下穿过了5日均线
A4:=CROSS(MA(CLOSE,5),CLOSE);
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;
公式编写实例
编写实例
3.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%的幅度变成“下轨”}
----------------------------------------------------
4.指标类型:选“路径型”,还有大势型、超买超卖型、趋势型、能量型等如图
5.画线方法:副图、主图叠加、副图叠加线、副图叠加美国线四种;选中“主图叠加型”,副图是K线图下面的区域;
6.密码保护:010101
7.参数设置:#N:最小值为1,最大值为100,缺省值(默认)为26;
8.坐标线位置:在非“主图叠加”中,此编辑框处可写状态;输出线为副图中深红色横线显示,是副图坐标线;
9.额外Y轴分界:是指标敏感数值输出线,在副图中显示为白色;
10.引入指标公式:在引入原公式的基础上进行编辑;
11.插入函数:左上为函数类别,右上为函数表,下区为函数解释区及用法举例;
12.公式编辑区:
〖{ }〗是解释,不输出,为了提示自己和别人,便于看懂公式;
〖:=〗赋值符,意为“相当于”;
〖:〗输出符,它前面的名称为输出名称,可以在副图中看到,它后面的为公式定义;
〖;〗分段符,表示一段完成;
〖,〗分节符;
〖()〗括号中为公式体。
13.测试公式:测试通过则自动保存;测试不能通过,则在翻译区提示错误所在。
14.用法注释:自编公式使用说明。
15.在K线图上,直接敲字母键“JXTD”调出自编的公式“均线通道”,查看结果;
16.修改公式:左键选中公式线后,点击右键,在弹出的对话框中,选中“修改指标”项,直接调出《公式编辑器》修改公式。如果左键选指标线不便,直接用右键选参数数值,也可调出公式编辑器。
17.鼠标动态提示:将鼠标放在函数上,等一会系统自动出现提示框,方便函数学习和应用,如图:
3.2 选股公式:均线通道
改公式“均线通道”(JXTD)为选股公式“均线通道”
1. 〖Ctrl〗+〖F〗打开“公式**器”;
2. 点击“条件选股公式”选项;
3. 点击“新建”按钮,打开“条件选股公式编辑器”;
4. 点击“引入指标公式”按钮,选最后一项“均线通道”,确定;
5.修改输出:公式输出项改为赋值项;即将〖:〗符改为〖:=〗符;
6.新建输出项:选股:CLOSE<下轨;{选出收盘价小于下轨的股票};如图
7.测试公式通过;
8. 〖Ctrl〗+〖T〗打开条件选股公式“均线通道”,进入公式选股操作程序;
3.3 五彩K线公式:均线通道
改公式“均线通道”(JXTD)为五彩K线公式“均线通道”
1. 〖Ctrl〗+〖F〗打开“公式**器”;
2. 点击“五彩K线公式”选项;
3. 点击“新建”按钮,打开“K线指示公式编辑器”;
4. 点击“引入指标公式”按钮,选“均线通道”确定;
五彩K线公式
公式名:JXTD
公式描述:均线通道
参数 (最小值)(最大值)(缺省值)
#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, COLORMAGENTA;{低于下轨6%提示加仓洋红色}
--------------------------------------------------
5.测试通过,退出;
6.〖Ctrl〗+〖K〗,打开“五彩K线指示”---“均线通道”;
7.查看效果,不满意就修改参数一直到满意为止;
3.4 交易系统公式
改公式“均线通道”(JXTD)为交易系统公式“均线通道”
1. 〖Ctrl〗+〖F〗打开“公式**器”;
2. 点击“交易系统公式”选项;
3. 点击“新建”按钮,打开“交易系统公式编辑器”;
4. 点击“引入指标公式”按钮,选“均线通道”确定;
公式名:JXTD
公式描述:均线通道
参数 (最小值)(最大值)(缺省值)
#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>上轨;
---------------------------------------------------
5.测试通过,退出;
6.〖Ctrl〗+〖E〗,打开“五彩K线指示”---“均线通道”;
7.查看效果,不满意就修改参数一直到满意为止;
8.删除指示:快捷键〖Ctrl〗+〖H〗;鼠标左键选中指示图标,按〖Delete〗,或者点击鼠标右键,在弹出的菜单中选“删除交易系统指示”。
3.5 颜色参数应用:“MACD”K线
公式名称:MACDK
简称:“MACD”K线
----------------------------
DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:EMA(DIF,MID);
MACDDIF-DEA)*2,COLORSTICK;
D1:=EMA(C,3)-EMA(C,8);
D2:=EMA(O,3)-EMA(O,8);
D3:=EMA(H,3)-EMA(H,8);
D4:=EMA(L,3)-EMA(L,8);
DRAWICON(CROSS(D1,DIF) AND DIF<0 ,D4-0.1,10);
STICKLINE(D1>=D2,D1,D2,8,0),COLOR0055AA;
STICKLINE(D1<=D2,D1,D2,8,0),COLOR006600;
STICKLINE(D1>=D2,D1,D2,5,0),COLOR0077CC;
STICKLINE(D1>=D2,D1,D2,3,0),COLOR0099DD;
STICKLINE(D1>=D2,D3,D4,0,0),COLOR00BBFF;
STICKLINE(D1<=D2,D1,D2,5,0),COLOR009900;
STICKLINE(D1<=D2,D1,D2,3,0),COLOR00BB00;
STICKLINE(D1<=D2,D3,D4,0,0),COLOR00EE00;
颜色描述符还可以自定义颜色,格式为COLOR+“RRGGBB”:RR、GG、BB表示红色、绿色和蓝色的分量,每种颜色的取值范围是00-FF,采用了16进制。
例如:MA5:MA(CLOSE,5),COLOR00FFFF表示纯红色与纯绿色的混合色:COLOR808000表示淡蓝色和淡绿色的混合色。
3.6 新增函数应用(horcalc)
函数: HORCALC(X)
说明: 数据项:100-HIGH,101-OPEN,102-LOW,103-CLOSE,104-VOL,105-涨幅
计算方式:0-累加,1-排名次
权重:0-总股本,1-流通股本,2-等同权重,3-流通市值
用法: HORCALC(板块名称,数据项,计算方式,权重)
例如: HORCALC('自选股',103,0,1);以自选股板块股票的总股本为权重,以收盘价为数源进行累加。
公式名称:zdkx
公式描述:自定指数K线
参数:(最小值)(最大值)(缺省值)
#n: 1 100 10
---------------
高:=HORCALC('湖北板块',100,0,1);
开:=HORCALC('湖北板块',101,0,1);
低:=HORCALC('湖北板块',102,0,1);
收:=HORCALC('湖北板块',103,0,1);
自定K线: DRAWKLINE(高,开,低,收);
MA(自定K线,N);
---------------
公式说明:
1.用于制作自定义指数、自设板块指数K线。
2.先制作自定义板块,“Ctrl+z”,填写好板块名称和简称(数字);
3.“板块名称”须用单引号,如'自选股'、'庄股';
4.起始位为1000点(下载到本地数据);
5.板块内不要含有太多的股票数量,以免影响速度;
3.7 新增函数应用(blocksetnum)
函数: BLOCKSETNUM(板块名称)
说明: 统计板块中股票数量
用法: BLOCKSETNUM(板块名称)
注意:板块名称要用单引号
例如: BLOCKSETNUM('ST板块'),返回“ST板块”数量。
公式名称:STPM
公式描述:个股在st板块内排名
--------------
板块股数量:BLOCKSETNUM('ST板块'),NODRAW;
ST涨幅排名:HORCALC('ST板块',105,1,2);
说明:
NODRAW是不输出线型只输出数值命令,用于多指标不兼容坐标;
3.常用语句
常用语句
1)今收盘对于N日内最低收盘价的涨幅(%)(c-llv(c,n))/llv(c,n)*100;
2)今收盘价对于N日最高收盘价的跌幅(%)(HHV(C,N)-C)/HHV(C,N)*100;
3)股价在过去N日内运行空间的相对位置 (C-LLV(L,N))/(HHV(H,N)-LLV(L,N))*100;
4)股价上方N1%至N2%处的筹码(%)
aa:=winner(c+c*n2/100)*100;
bb:=winner(c+c*n1/100)*100;
aa-bb
5)股价下方N1%至N2%处的筹码(%)
(winner(c-c*n1/100)-winner(c-c*n2/100))*100;
6)收盘价N%处的套牢盘 100-(winner(c*N/100))*100;
7)收盘价N%处的获利盘 winner(c*N/100)*100;
8)下影线 (MIN(O,C)-L)/L*100;
9)上影线 (h-max(o,c))/max(o,c)*100;
10)本周期的涨跌幅 (c-ref(c,1))/ref(c,1)*100;
11)振幅 (h-l)/l*100;
12)均线金叉(M.N为均线周期) cross(ma(c,m),ma(c,n))
13)均线多头排列
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);
14) 均线空头排列
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);
15)N日均线向下
aa:=ma(c,n);
bb:=ref(aa,2);
aa<bb
16)向前N日至M日出现过均线死叉(P1<P2)
aa:=ma(c,p1);
bb:=ma(c,p2);
cc:=ref(cross(bb,aa),n);
count(cc,m);
17)今日成交量大于N日以来的均量 VOL>MA(VOL,N);
18)低位密集
A1:=COST(85);
A2:=COST(15);
A3:=A1-A2;
A4:=(A1+A2)/2;
A5:=A3/A4*100<10;
B1:=HHV(H,120);
B2:=LLV(L,120);
B3:=B1-B2;
B4:=(A4-B2)<B3/2;
A5 AND B4;
19)换手率 VOL/CAPITAL*100;
20)N日盈亏
V1:=VOL/SUM(VOL,N);
V2:=DMA(CLOSE,V1);
V3: (CLOSE-V2)/V2*100;
4.条件表达式及其应用
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个指标建议你对照指标语句和图反复多看几遍,你也可以动手修改如修改脉冲信号的长度等,更重要的是要理解指标组合、嵌套的含义,只有读懂了指标,你才能把自己的想法、理念编成指标。
第三章:函数
1.数学函数
数学函数
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);smk;
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);
正余平方和OW(正弦值,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的反余弦值。
24、LN自然对数 求自然对数。 用法:LN(X)以e为底的对数。 例如:LN(CLOSE)求收盘价的对数。
25、SIN 正弦值 用法:SIN(X)返回X的正弦值。
2.引用函数一
引用函数COUNT的运用
函数: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;
规律就更明显了。
不要小看这些数据。虽然没有有些“高手”做出的成功率达百分之九十左右的公式那么夸张,但很有意义的。要知道股市中的随机因素太多,平衡性很强,稍稍的统计偏向,足可作为有用的参考。
2.引用函数二
引用函数FILTER、SUMBARS的运用
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的坐标处显示黄色脉冲信号}
2.引用函数三
引用函数SUM的运用
函数: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函数表示同期大盘的收盘价,该函数对分笔成交分析周期无效。
2.引用函数四
引用函数HHV和LLV的运用
引用函数HHV和LLV的运用
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则从第一个有效值开始;barscount(x),将当前位置到n周期前的数值设为1,若x非0,则将当前位置到n周期前的数值设为1。如把N添上参数30就是30日内创新高。
例3、指标(副图)
{三线开花 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,color66d,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,color66d,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则从第一个有效值开始;barscount(x)第一个有效数据到当前的天数,例如,barscount(close)以于日线数据取得上市以来总交易日数。
以上这两个函数在指标编写中被广泛采用。
3.逻辑函数
逻辑函数
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;
4.统计函数
统计函数
(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周期线性回归线的斜率}
drawicon(XLL<0.8,0,11);
drawicon(XLL>=0.8,0,10);
{排序,用于抓住量比放大,正在快速上涨的股。}
(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日总体样本方差。
5.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),表示上一周期的收盘价,在日线上就是昨收。记住了吗,以后经常要用到的。
6.绘图函数
妙用绘图函数
绘图函数的功能是在主图或副图上设定条件输出图标、直线、文字、数字、指标线、指标柱等。运用恰当使编制出的主副图指标给以视觉上的美感。
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、函数OLYLINE 说明:在图形上绘制折线段。
用法OLYLINE(COND,PRICE),当COND条件满足时,以PRICE位置为顶点画折线连接。
示例OLYLINE(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,0.8,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;
绘图函数结合示例介绍完了,相信你一定有所收获吧,举一反三自己动手编个指标。不要怕失败,失败是成功之母,试试把,你一定会有收获。
7.线形函数
妙用线形函数
一、线形函数
线形函数要和其它指标函数一起用才能发挥效力,因为它们都是描述其它指标函数的。正确用好线形函数可以使主副图指标显示丰富多彩,色彩缤纷。
1、函数:STICK 说明:画棒状线,STICK的英文是棍、棒的意思。
如副图公式:C>REF(C,1) AND C>REF(C,2),STICK;
2、函数:COLORSTICK 说明:以零轴为中心画彩色棒状线,零轴下为阴线颜色,零轴上为阳线颜色,这样零轴就如楚汉交界,泾渭分明了。
如副图公式:C-REF(C,1),COLORSTICK;
3、函数:LINESTICK 说明:同时画棒状线与指标线。LINE是线,STICK是棒,LINESTICK自然是线棒一起显示了。如副图公式:
A:=C-REF(C,1);
A,LINESTICK;
即想显示指标线和棒状线,又想以零轴为中心上下显示两种彩色棒状线,可以用分开的两句语句来达到目的,如副图公式:
A:=C-REF(C,1);
A,LINESTICK;
A,COLORSTICK;
4、函数:VOLSTICK 说明:画成交量柱状线。这是专门为显示成交量设计的。如副图公式:
VOL,VOLSTICK;
5、函数:CROSSDOT 说明:画叉状线或x状线。CROSS是交叉,DOT是点。如副图公式:
ma1:ma(c,30),CROSSDOT;
6、函数:CIRCLEDOT 说明:画小圆圈线,如副图公式:
ma1:ma(c,30),CIRCLEDOT;
7、函数:LINETHICK 说明:改变指标线粗细。取1、2、3、4、5、6、7放在LINETHICK后面如:LINETHICK2,数字越大,线越粗,最大可取7。如副图公式:
例1:ma1:ma(close,30),COLORFF00FF,linethick2;
例2:A:=C-REF(C,1);
A,COLORSTICK,LINETHICK4;
8、函数:POINTDOT 说明:画点状线,POINT是点、加点的意思。这个点状线看起来有点太小了,可以用加粗线函数。如副图公式:
ma1:ma(c,30),COLOR00FF00,POINTDOT,LINETHICK2;
我们编个指标,看看都用了哪些线形函数。
{顶底指标}
股价趋势:3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1),COLORFF00FF,LINETHICK2;
底部警戒:10,COLORFFCCCC,POINTDOT;
买入警戒:IF(股价趋势<=10,40,0),stick,linethick3,coloryellow;
买入信号:IF(CROSS(股价趋势,底部警戒),80,0),stick,linethick3,colorblue;
强弱分界:50,COLORWHITE,POINTDOT,LINETHICK2;
顶部警戒:90,COLORFFCC66,POINTDOT;
卖出警戒:IF(股价趋势>=85,40,0),stick,linethick3,colorred;
卖出信号:IF(CROSS(股价趋势,顶部警戒),80,0),stick,linethick3,color00ff00;
指标解析:
{顶底指标}
股价趋势:3*移动平均((收盘价-最低值(最低价,27))/(最高值(最高价,27)-最低值(最低价,27))*100,5,1)-2*移动平均(移动平均((收盘价-最低值(最低价,27))/(最高值(最高价,27)-最低值(最低价,27))*100,5,1),3,1),COLORFF00FF,LINETHICK2;
底部警戒:10,COLORFFCCCC,点状线;
买入警戒:条件函数(股价趋势<=10,40,0),棒状线,linethick3,coloryellow;{黄粗棒状}
买入信号:条件函数(交叉函数(股价趋势,底部警戒),80,0),棒状线,linethick3,colorblue;{蓝粗棒状}
强弱分界:50,COLORWHITE,点状线,LINETHICK2;{粗点状线}
顶部警戒:90,COLORFFCC66,点状线;
卖出警戒:条件函数(股价趋势>=85,40,0),棒状线,linethick3,colorred;{红粗棒状}
卖出信号:条件函数(交叉函数(股价趋势,顶部警戒),80,0),棒状线,linethick3,color00ff00;{绿粗棒状}
了解了以上线形函数,学着把自己手中的指标美化一下吧,以上每个例子你都可以在大智慧里试试,亲身体会一下。祝大家成功。
8.移动平均函数
移动平均函数简介
指标的结构:
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日收盘价的均线 设置该线为粉色
明白了上面这些函数用法,我们开始编第一个指标:
给指标起个名,就叫"月均线主图"吧!
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日收盘价的均线,设置该线为蓝色}
DMA 动态移动平均很少用到,在这里就不举例了,有兴趣的朋友发挥吧。
附颜色代码供选择设置:
各种颜色表示:
红色colorred、灰色colorgray、绿色color00ff00、黄色coloryellow、蓝色colorblue、白色colorwhite.
另外颜色还有:
粉红colorf00ff0、草绿color00ff00、淡蓝colorf0f000、紫色colorff0099、金黄色color008364、紫红color000999、综色color0055ff、深黄色color00cccc、紫罗蓝colore66878、天蓝色colorff937f 深草绿color399c7f
实际上只要在color后面加上0-9、A-F中任6个数字字母组成,如要其它颜色,可自己调。
第四章:指标编写
1.经典指标的原理、算法及用法
BIAS、 CCI、KDJ、威廉指标(William's %R)、主力进出、MACD、散户线、VOL、MA移动平均线、心电图、脑电波、主力买卖、MTM动力指标、瀑布线
一、 BIAS
名称:乖离率
算法:当日收盘价与移动平均线之间的差距;
用法:
正的乖离率愈大,表示短期获利愈大,则获利回吐的可能性愈高;负的乖离率愈大,则空头回补的可能性愈高。
按个股收盘价与不同天数的平均价之间的差距,可绘制不同的BIAS线。
参数:系统绘制三条BIAS线,分别为收盘价与L1日、L2日、L3日移动平均价的差。
二、 CCI
名称:顺势指标
原理:用目前股价的波动程度和常态分布范围比较,来得出超买或超卖的结论,用于捕捉趋势反转点。
算法:典型价格与典型价格的N日移动平均的差除以N日内典型价格的平均绝对偏差。
用法:
当CCI小于-100时为买入信号,CCI大于100时为卖出信号;
股价产生背离现象时,是一项明显的警告信号。
参数:N 设定计算移动平均的天数,一般为14。
三、 KDJ
名称:随机指标
原理:用目前股价在近阶段股价分布中的相对位置来预测可能发生的趋势反转。
算法:对每一交易日求RSV(未成熟随机值)
RSV=(收盘价-最近N日最低价)/(最近N日最高价-
最近N日最低价)×100
K线:RSV的M1日移动平均 D线:K值的M2日移动平均
J线:3×D-2×K
参数:N、M1、M2 天数,一般取9、3、3
用法:
1.D>80,超买;D<20,超卖;J>100%超卖;J<10%超卖
2.线K向上突破线D,买进信号;线K向下跌破线D,卖出信号。
3.线K与线D的交叉发生在70以上,30以下,才有效。
4.KD指标不适于发行量小,交易不活跃的股票;
5.KD指标对大盘和热门大盘股有极高准确性。
四、 W&R
名称:威廉指标(William's %R)
原理:用当日收盘价在最近一段时间股价分布的相对位置来描述超买和超卖程度。
算法:N日内最高价与当日收盘价的差,除以N日内最高价与最低价的差,结果放大100倍
参数:N 统计天数 一般取14天
用法:
1.低于20,超买,即将见顶,应及时卖出
2.高于80,超卖,即将见底,应伺机买进
3.与RSI、MTM指标配合使用,效果更好 五、主力进出
名称:主力进出
原理:量价指标。
用法:
绿线为短期主力运作轨迹,黄线为中期主力运作轨迹,白线为长期主力运作轨迹。
主力进出指标的绿线向上突破黄线、白线且三线向上发散,表示主力有效控盘,可逢底介入,持股待涨。
主力进出指标的绿线上涨过快远离黄、白线,出现较大乖离,表示短线获利筹码较多,宜注意控制风险,可适当卖出。
当绿线回落至黄、白线处受支撑时,而黄白线发散向上,表示上升趋势未改,前期股价回落仅是途中的回调,可适量跟进。
主力进出三线“死亡交叉”,盘口呈空头排列,投资者宜尽快出局。
主力进出三线相近并平行向下时,表明主力尚未进场或正在出货,此时不宜介入。
主力进出是一种趋势指标,但趋势改变信号有时会出现滞后现象,此时就要用主力买卖指标加以配合使用。
六、 MACD
名称:平滑异同平均线(Moving Average Convergence Divergence)
原理: MACD(Moving Average Convergence Divergence)中文名称:平滑异同移动平均线,是由Gerald Appel首先在Systems And Forecasts一书中发表,主要是利用长短期的二条平滑平均线,计算两者之间的差离值,作为研判行情买卖之依据。
算法:DIFF线 收盘价短期、长期指数平滑移动平均线间的差
DEA线 DIFF线的M日指数平滑移动平均线
MACD线 DIFF线与DEA线的差,彩色柱状线
参数:SHORT(短期)、LONG(长期)、M 天数,一般为12、26、9
用法:
1.DIFF、DEA均为正,DIFF向上突破DEA,买入信号。
2.DIFF、DEA均为负,DIFF向下跌破DEA,卖出信号。
3.DEA线与K线发生背离,行情反转信号。
4.分析MACD柱状线,由正变负,卖出信号;由负变正,买入信号。
七、散户线
名称:散户线
原理:该指标给出散户线值,通过观察散户值增减变化可以了解主力的操作行为。
用法:
1、股价在相对低位震荡整理,散户值逐渐减少,表明主力在悄悄建仓,可在起涨时果断介入。
2、随着股价节节攀升,散户值继续减少,表明主力还在搜集筹码,该股将有大行情,可逢低买入,波段持股。
3、股价攀升,散户值显著增加,表明主力在拉高出货应及时获利了结。
4、股价高位盘整,散户值明显增加,表明主力出货。
注意:要结合股价走势历史的综合研判散户值,从而分析出主力操作行为。既要注意方向的变化,又要注意变化量的大小。要特别注意高控盘股不能简单机械的照搬上述用法。结合控筹线使用。
八、 VOL
名称:成交量
VOLUME线 画法:若今日收市价高过昨日收市价,成交量画红色空心实体;否则画绿色实心。
MA1、MA2、MA3分别为成交量的M1日、M2日、M3日均线
参数:M1、M2、M3一般取5日、10日、20日 九、MA
移动平均线
绘制收盘价的P1日、P2日、P3日、P4日移动平均线
P1、P2、P3、P4一般取5日、10日、20日、60日
用法:葛氏八法则
1.短期均线向上穿越长期均线,买入信号
2.短期均线向下跌破长期均线,卖出信号 十、心电图
名称:心电图
原理:比较个股和大盘走势相对强弱的指标。
用法:
1、当心电图上升的时候,说明它比其他多数股票走势强
2、当心电图下降的时候,说明它比其他多数股票走势差
3、当心电图基本走平或者波动不大的时候,说明无人关照,属于散户行情。
4、能够反映心电图趋势的是5日和10日均线。操作上也很简单,如果心电图的走势线上 冲过5日和10日均线,且从最低价向上走高的幅度超过7%,则可买进。如果向下跌破5日均线,应该考虑抛出,如果又跌破10日均线,应该坚决抛出。假如从最高点向下的幅度超过了7%,也应该确认破位有效,应该坚决抛出。
5、背离指标:如果股价收盘创新高但心电图没有创新高,则形成顶背离,应注意抛出。如果股价收盘创新低,但心电图没有创新低,则说明有大资金在关照,可以留心并找一个相对的时机买进。
6、与该指标同时相伴发生作用的是量比指标。如果该指标上升,同时量比指标也上升,表明有机构主动介入,所以量大,这种强势是有效的。但过一段时间之后,强弱值上升,量比应该是下降或者持平的,这说明筹码的锁定性好。如果上涨了相当长时间,强弱值上升,量比指标突然极端放大,这就是利用上涨出货的例子。强弱指标下降的时候,如果量比上升,这是放量出货的情况。强弱指标连续下跌后,量比下降或者上升都没有意义。
7、如果心电图远离均线,犹如人过度透支平时的能量,股价将产生反抽作用。
8、心电图与均线上升,说明有主力进入;反之如果心电图与均线下降,则说明有主力出货。该法则对于我们判断主力进入的时机有重大作用。 十一、脑电波
名称:脑电波
原理:收盘价相对位置的累加值
用法:
1、脑电波上升且在均线之上,可买进或者持有;脑电波下降且在均线之下,应卖出或者不买进。脑电波处于平坦期,则观望。
2、脑电波远离均线,将产生反抽作用。
3、警告:如果心电图上升但脑电波下降,甚至在均线之下,则说明主力在玩花招,在暗暗地动脑筋,应防止主力随时可能出货。如果心电图下降,但脑电波上升,甚至在均线之上,则应防止主力在悄悄建仓,股价随时可能一跃而起。
4、脑电波和心电图同时上升或者在均线之上,可放心持有,脑电波和心电图同时下降或者在均线之下,应坚决出货。
对于大盘来说,我们倾向于认为脑电波只要在均线之下,就是弱市,就不能买进股票,就要谨慎;脑电波在均线之上,就是强市,就可以继续持有股票。 十二、主力买卖
名称:主力买卖
原理:趋向指标
用法: 绿线为短期趋势线,黄线为中期趋势线,白线为长期趋势线。
1、主力买卖与主力进出配合使用时准确率极高。 2、当底部构成发出信号,且主力进出线向上时判断买点,准确率极高。 3、当短线上穿中线及长线时,形成最佳短线买点交叉形态(如底部构成已发出信号或主力进出线也向上且短线乖离率不大时)。
4、当短线、中线均上穿长线,形成中线最佳买点形态(如底部构成已发出信号或主力进出线也向上且三线均向上时)。 5、当短线下穿中线,且短线与长线正乖离率太大时,形成短线最佳卖点交叉形态。 6、当短线、中线下穿长线,且是主力进出已走平或下降时,形成中线最佳卖点交叉形态。
7、在上升途中,短、中线回落受长线支撑再度上行之时,为较佳的买入时机。
8、指标在0以上表明个股处于强势,指标跌穿0线表明该股步入弱势。 十三、MTM动力指标
名称:MTM动力指标
算法:
MTM线 当日收盘价与N日前的收盘价的差
MTMMA线 对上面的差值求N日移动平均
参数:N 间隔天数,也是求移动平均的天数,一般取6
用法:
1.MTM从下向上突破MTMMA,买入信号
2.MTM从上向下跌破MTMMA,卖出信号
3.股价续创新高,而MTM未配合上升,意味上涨动力减弱
4.股价续创新低,而MTM未配合下降,意味下跌动力减弱
5.股价与MTM在低位同步上升,将有反弹行情;反之,从高位同步下降,将有回落走势。 瀑布线
名称:瀑布线
原理:均线类指标
用法:
瀑布线是趋势性指标,因其在运行的过程中,形态与瀑布极其相似,故得名为瀑布线。
? 瀑布线在低位粘合,短线瀑布线向上穿越长线瀑布线并向上发散,买入。
? 瀑布线在高位粘合,短线瀑布线向下穿越长线瀑布线并向下发散,卖出。
? 当长中短期瀑布线依次由下向上排列形成多头排列时,可持股。
? 当长中短期瀑布线依次由上向下排列形成空头排列时,应空仓。
2.诊断指标的编写
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 s1:1,99999,40000;s2:1,99999,10000}
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高位死叉,建议卖出。','')
朋友们可以照猫画虎自编一个,只要有一个成功了,你也就掌握了方法。
行情函数:(OPEN、CLOSE、HIGH、LOW、VOL等)
大盘函数:(INDEXA、INDEXC、INDEXH等)
常数函数:(CAPITAL、市盈率、量比等)
时间函数:(DATE、DAY、TIME等)
DATE:有效返回值范围为700101-1341231,表示19700101-20341231取得该周期从1900年以来的年月日 DAY:取得该周期的日期,有效返回值1-31
引用函数:(MA、HHV、COUNT、REF、SUM、SMA等)
逻辑函数:(IF、CROSS、NOT等)
NOT:求非逻辑 NOT(X)返回非X,即当X=0时返回1,否则返回0。例:NOT(ISUP):是否平盘或收阴
数学函数:(MAX、MIN、LN、三角函数等)
统计函数: (STD、VAR、AVEDEV等)
指标函数:(COST、WINNER、SAR、ZIG等)
绘图函数:(DRAWICON、DRAWLINE、DRAWTEXT、POLYLINE、STICKLINE)
DRAWICON:在图形上绘制小图标。
用法:DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标。
注:TYPE参数只有3个即0,1,2;0代表哭脸、1为笑脸、3是平脸
例如:DRAWICON(CLOSE>OPEN,LOW,1)表示当收阳时在最低价位置画1号图标。
用法:POLYLINE(COND,PRICE),当COND条件满足时,以PRICE位置为顶点画折线连接。
例如:POLYLINE(HIGH>=HHV(HIGH,20),HIGH)表示在创20天新高点之间画折线。
STICKLINE:在图形上绘制柱线。
用法:STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当COND条件满足时,在PRICE1和PRICE2位置之间画柱状线,宽度为WIDTH(10为标准间距),EMPTH不为0则画空心柱。
例如:STICKLINE(CLOSE>OPEN,CLOSE,OPEN,0.8,1)表示画K线中阳线的空心柱体部分。