如何编制大智慧指标

来源:百度文库 编辑:神马文学网 时间:2024/04/26 01:06:28
一步一步教大家如何编制大智慧指标 (申请版主加精)
如何汇编自己的公式,好多人只会引入或拆解别人的公式组装一下但终归不是自己的原装,自己也想动手编制但苦于不会,这里就教你学会如何由浅至深
的编制公式的技能.满世界找开琐钥匙(寻找破解指标),不如自己做个造锁专家(编写公式指标专家),您说呢?
怎样编写大智慧指标公式?
目前大多数证券分析软件都具有指标分析和条件选股的功能,但只有用户可以自己编制算法公式的系统才是真正实用的,因为:
许多软件的指标和选股功能是黑箱操作,也就是说,其内部算法是不公开的。这样用户并不知道其指标和选股到底是如何运作的、可靠性有多高、前提条件
是什么,因而也难以决定是否采用指标或选股的结果。这样的指标和选股只有宣传上的意义而没有任何实际意义。
许多软件的选股功能都不够强大和灵活。例如有些软件的条件选股功能只能让用户按照特定的模式进行设定,适用面很窄。
公式系统类似于一种编程语言,用户可以数学公式的形式实现任何自己期望的技术指标和选股条件等。可编制的公式可以完全公开算法,用户可以自行分析
、评价和修改,做到心中有数。
公式系统的作用是什么呢?公式系统其实就是对一系列随时间变化的原始数据组序列进行代数和逻辑计算。为什么是数据组序列呢?因为每一个时间周期(
即相邻两组数据间的时间间隔)都包含了一组原始数据,如开高低收量额,公式系统能对其中的任何原始数据进行操作。使用者定义出如何对原始数据进行处理
得到一个新的数据,公式系统读出原始数据并按要求计算出使用者定制的数据,并以曲线、图形、指示等形式显示出来。
公式系统可以编辑四种类型的公式,分别是技术指标、交易系统、条件选股和五彩K线公式。技术指标公式是最基本的公式,它用于指标图形的绘制。技术指
标公式结合选股条件逻辑判断表达式,即得到条件选股公式,用于条件选股。技术指标公式结合买卖逻辑判断表达式,得到交易系统公式,用于交易系统指示。
技术指标公式结合色彩逻辑判断表达式,即得到K线模式公式,用于描述特定的K线模式。公式的编辑在公式编辑器中完成。
公式系统处理的原始数据的分析周期(即相邻两组数据间的时间间隔)可以从1分钟到1000天间的任意值,也可以是分笔成交数据,我们用鼠标把一个公式拖
到某只证券的某个周期的图形分析窗口,则该公式处理这个周期的原始数据,如开高低收量额,改变分析窗口显示的分析周期,则公式处理新的分析周期的数据。
公式系统对数据的运算是基于一系列函数,函数中除ZIG之字转向函数类和BACKSET函数外,其余函数均满足时间不变性,即时间靠后的数据不对时间靠前的
结果产生影响。
公式设定步骤
1.设定公式名称:每个公式都有自己的名称,它由字母或数字组成,最多可以有9个字符。请注意,公式名称在同类公式中不能重复。
2.描述公式:用于简单描述该公式的含义,若输入,则在公式列表中会显示这段文帧?br>
3.注释公式:用于描述一个公式如何使用、计算方法等内容。输入后,在有关窗口按“用法注释”按钮可以查看公式注释。
4. 设计技术指标公式语句:
公式的形式由若干语句组成。每个语句得到一个计算结果,对于技术指标,就是一条指标线,语句间用分号隔开。
一个语句由若干函数通过四则运算或逻辑运算而组成。函数是公式系统的基本成分,它是对数据做某种操作,如CLOSE()函数表示调用该分析周期的收盘价。函
数由函数名称和参数组成,参数用函数名后的括号括起来,每个函数调用的参数可以是变量或常量,变量是一个随着时间变化而变化的数据,例如收盘价;常量
是一个不随时间变化而变的数据。例如函数REF(X,N)用于引用N周期前的X值,X是一个变量,N是一个常量,REF(close(),1)表示计算上一周期的收盘价。函数
若需调用几个参数,则它们在括号内是有顺序的。若没有参数则可以省去括号,例如CLOSE()函数没有参数,所以写成 CLOSE和 CLOSE()都可以。函数计算得到的
结果是一个变量。
计算符将函数连接成为语句。计算符分为算术计算符和逻辑计算符。算术计算符有+、-、*、/,分别是对计算符两边的数值进行加减乘除计算;逻辑计算符有>
、<、<>、>=、<=、=、AND、OR,分别是对计算符两边的数值做大于、小于、不等于、大于等于、小于等于、等于、逻辑与、逻辑或的逻辑运算,如果逻辑条件成
立返回的计算结果为1,否则为0。例如:2>1的逻辑运算结果等于1,1>2的逻辑运算结果就等于0。
语句得到的计算结果连成线就是所谓的指标线,不同的语句就得到不同的线,为了在指标图形中互相区分,不同的线有不同的颜色,而且语句还可以有自己的
名称,在指标图形中显示在左上角位置。语句名写在语句的前面,用一个冒号将它与语句隔开。语句“上日收盘价:REF(close,1)”就表示该语句REF(close,1)
的名称为“上日收盘价”。该语句后而的语句若需引用它,则写公式名即可,如MA(上日收盘价,20)意思是对上日收盘价求20日平均。
5、设计中间语句:
一个语句将显示一条指标线,一个复杂的公式往往有很多语句,而且有些语句没必要显示出来。这时我们可以把不需要显示语句定义为中间语句,中间语句
的写法只需在一般语句的名称与语句之间的冒号后加个等号,即“:=”即可。例如,语句“上日收盘价:=REF(close,1)”就表示该语句为中间语句。重复使用的
语句也可以定义成中间语句。
6、设计其他公式语句:
其他类型的公式显示的不是指标线,而是相应的操作,如条件选股公式显示的是选股结果,交易系统公式显示的是交易指示,五彩K线公式显示的是K线颜色。
这些公式需要有一条或几条逻辑表达式表示这些操作的语句,当语句返回0时表示不需要进行相应的操作,当返回非0时表示需要进行相应的操作。其他的语句都
应设定为中间语句。
条件选股公式只有一条逻辑表达式语句,用来表示选股条件是否成立,例如CLOSE>REF(close,1)语句,表示选出当期收盘价高于上日收盘价的股票。其他的语
句必须设定为中间语句,否则编辑器出现“只能有一个输出结果”的警示。
交易系统公式需要1-4条逻辑表达式语句,分别为多头和空头的切入切出条件语句,分别用ENTERLONG, EXITLONG, ENTERSHORT, EXITSHORT表示多头买入、
多头卖出、空头切入、空头切出条件,当这些语句返回非0时,表示需要进行相应的操作。其他的语句必须设定为中间语句,否则编辑器出现“非交易信号变量只
能用:=赋值”的警示。这四个条件中必须至少设定一个条件。
五彩K线公式可以有1-6条逻辑表达式语句,最多描述6种不同的颜色。
7、设计计算参数:
我们有时需要调节公式中的常数来看公式的表现,可以直接进入公式修改,更方便的方法是用计算参数来指代公式中的常数,需要调节公式时不需进公式只需
调节参数就可以了。比如,经常要修改REF(close,1)中的第二个参数1,这时可以把它设为一个计算参数N,公式写成REF(close,N),到时调节N即可。计算参数
包括参数名称、最小值、最大值、缺省值四个部分。参数名称用于标识参数,本例我们将参数名定位N,计算公式时采用缺省值计算,而最小值和最大值是参数的
调整范围。设定参数后,在图形分析窗口显示该指标时,指标名跟着有参数,右键点击参数即可对它进行修改。对于交易系统公式,每个参数还包括一个测试步
长,在优化参数时系统从最小值到最大值逐一调整参数,每次调整的增量就是测试步长。例如最小值1,最大值30,步长10,则系统将测试参数1,11,21。最大
测试步数为10000次。每个公式可以带有最多16个计算参数。
8、其他语句:
有时我们想指定技术指标线的画法,这时我们可以在语句后加上线形描述符,描述该语句对应的指标线画法。线形描述符包括STICK:柱状线;COLORSTICK:
彩色柱状线,当语句结果为正时显示红色,否则显示绿色;VOLSTICK:成交量柱状线,股价上涨时显示红色空心柱,下跌时显示绿色实心柱;LINESTICK:同时画
出柱状线和指标线;CROSSDOT:小叉线;CIRCLEDOT:小圆圈线;POINTDOT:小圆点线。
五彩K线公式有用来描述显示K线颜色的语句,其实就是在语句后加上色彩描述符,之间用逗号隔开,表示当该句返回非0时K线的颜色。色彩描述符有:
COLORRED:红色;COLORGREEN:绿色;COLORBLUE:蓝色;COLORBLACK:黑色:COLORWHITE:白色;COLORYELLOW:黄色:COLORYELLOW:青色;COLORF0F000:晶
红色;COLORBROWN:棕色。
技术指标公式还可以主动设定欲显示的坐标线,例如我们在坐标线位置输入框中写入-10;O;10,则显示该指标时出现-10,0,10三条坐标线。
特殊数据引用
(1)、指标数据引用
在编制公式过程中,有时需要使用另外一个指标的值,如果按照通常的做法,重新编制这个指标就显得很麻烦,因此很有必要学习使用如何调用别的指标
公式。
调用其他指标的基本格式:”指标.指标线”(参数)
A、指标与指标线之间用点“.”分开,一个指标不一定只有一条指标线,所以有必要在指标后标注指标线的名称,但是如果缺失则表示引用最后一条指标线。
B、参数在表达式的末尾,必须用括号括起来,参数之间用“,”号分开,通过参数设置可选择设定该指标的参数,如果参数缺失则表示使用该指标的默认参数设
置(不过我在使用过程中发现,如不写参数,测试就通不过)。
C、整个表达式用引号引在其中,除参数以外。
例如:”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,分别表示开盘价、最高价、最低价
、收盘价、成交量、成交额。
公式编制
这里举一些最简单的公式例子,有些只有一条语句且函数简单,较复杂的公式中函数复杂且语句较多。
收盘价线
这是最简单的公式:
CLOSE
均线的画法
计算N日内收盘价的算术平均值,它是最常用的指标之一,公式为:MA(X,N)表示X的N日平均。
例如:
MA1:     MA (CLOSE,5)   ,   coloryellow ;
表示为:   参数名   画一条5日收盘价的均线     设置该线为黄色
涨幅
涨幅指今日收盘价相对于昨日收盘价的变动幅度,即(今日收盘价-昨日收盘价)/昨日收盘价*100%,  昨日收盘价的公式为:REF(CLOSE,1),因此涨幅
的公式:
(CLOSE-REF(CLOSE,1))/REF(CLOSE,1)
换手率
换手率指当期的成交量占流通股本的比例。
公式:
VOL/CAPITAL
VOL为当期成交量,CAPITAL为流通股本。
[Copy to clipboard] [ - ]CODE:
创新高
创新高指当日最高价是最近一段时间的最高价:
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日间的最低价。思考一下,一段时间的最低价必然是该段时间内每个分析周期的最低价中最小的那个。所以我们要
引用的数据是该段时间各分析周期的最低价,而不需要用到开盘价、收盘价或最高价;还要将不需要的数据,即区间外的数据设为0。语句为:
LL:=IF(YEAR=2002 AND MONTH>=2 AND MONTH<=12,LOW,0)
该语句用一个条件函数来判断时间是否处于规定区间,若是则返回最低价,否则返回0。
我们再用LLV函数,就可求得该段时间最低的最低价:
LLV(LL,0)
技术指标公式
技术指标公式用于绘制技术指标线。以KDJ指标为例,右键点击KDJ,选择“编辑公式”后打开公式算法编辑器,显示出KDJ指标公式的内容。
参数名称:最小值,最大值,缺省值
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线的差值。
(以下是引用‘wjwjc’版主对计算‘5日均线上升角度’的实例讲解
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{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)、放量、缩量(成交量函数为VOL)
A、放量
a.今天成交量较昨天增加了1倍,表示如下:
VOL/REF(VOL,1)>2
b.今天成交量较10个交易日平均成交量放大了1倍,表示如下:
a:=ma(vol,10);
Vol/a>2
或者直接用如下公式表示:
vol/ma(vol,10)>2;
c.今日的5日均量较10个交易日平均成交量放大了1倍,表示如下:
a:=ma(vol,10);
b:=ma(vol,5);
b/a>2;
d.今日的成交量超过了整个流通盘的5%,表示如下:
vol/capital>0.05;其中capital代表流通盘。
B、缩量
a.今日成交量较昨日减少了一半,表示如下:
vol/ref(vol,1)<0.5;
b.今日成交量较10个交易日平均成交量减少一倍,表示如下:
a:=ma(vol,10);
vol/a<2;
或者直接用如下公式表示:
vol/ma(vol,10)<2;
c.今日的5日均量较10个交易日平均成交量减少1倍,表示如下:
a:=ma(vol,10);
b:=ref(a,5);
a/b<2;
d.今日的成交量低于了整个流通盘的5%,表示如下:
vol/capital<0.05;
(2)、上涨、下跌
上涨
今天的涨幅达到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(3)、K线的描述
阳线
close>open;
阴线
close高开
open>ref(close,1);
低开
open跳空高开(high为最高价)
open>ref(high,1);
跳空低开(low为最低价)
open走势特征选股公式的编制
(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(open0.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:=closecount(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注: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:=volcount(a,n)=n;
注:其中条件a的含义为成交量较上一交易日缩小,n为要统计的阶段时间,可在参数设定范围内设定参数范围。
(19)、间隔放量
a:=ma(vol,5);
barscount(c)>=n and hhv(a,n)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 (cm/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注:n1、n2、n3、n4j日均线呈空头排列,isup也可以用close(3)、早晨之星
ref(close,2)/ref(open,2<0.95 and ref(open,1)1.05 and
close>ref(close,2);
注:早晨之星,这种形态和叫法自然是后市向好,为买进信号。早晨之星由三根K线组成,其顺序是:
第一天在下跌过程中已形成一根阴线:
ref(close,2)/ref(open,2<0.95
第二天呈裂口下跌,K线实体较短,构成星的主体部分,阴线或阳线均可,有无上下影线均不重要。
ref(open,1)关键是第三根K线必须是阳线,且其长度至少要升至第一根阴线实体(如果能够“包容”第一根阴线则最好不过了)
close/open>1.05 and close>ref(close,2)
[Copy to clipboard] [ - ]CODE:
(4)、强势整理
a1:=abs(close-open)/open<0.015;
a2:=count(a,m)=m;
a3:=ref(o,m)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=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注:黄昏之星表示股价回落,是卖出信号,应伺机抛货。幕星同样由三根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(8)、跳空缺口
highref(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/cref(ma1,1) and ma2>ref(ma2,1);
注:前三句是三根均线,p1是第一根均线减第二根均线差的绝对值与第二根均线减第三根均线差的绝对值之和,最后一句是p1与收盘价的比值小于一定比率m%(一
般该比率为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)       收盘价高于上一交易日开盘价。
OPENHIGH>REF(HIGH,1)       最高价高于上一交易日最高价。
LOWCLOSE>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 OPENREF(HIGH,1) AND LOWOPEN
AND (CLOSE-OPEN)>(EMA((HIGH-LOW),N)),2),COLORRED;
(2)、三只乌鸦五彩K线的编制方法
在股价顶部,庄家已获利丰厚,准备出逃时会连续拉出二根、三根或三根以上的小阴线,且每日的K线均低于上一日的收盘价。这促顶部特征不一定要伴
随着大的成交量,因此具有较大的欺骗性。
原理:
1、 连续三支阴线;
2、 每日收盘价均向下跌;
3、 收盘价接近每日的最低价位;
4、 每日的开盘价都下跌。
五彩K 线的编辑:
REF(CLOSE,2)REF(CLOSE,1)CLOSEREF(CLOSE,1)每日收盘价都向下跌。
REF(OPEN,1)每日开盘价都向下跌。
REF(C,3)/REF(O,3)>=1.02     第一根阴线跌幅超过2%。
COLORRED             五彩K线颜色为红色。
那么,整体的公式为:
BACKSET(我们假定的条件,3),COLORED
即:BACKSET(REF(CLOSE,2)REF(OPEN,1)=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;
[Copy to clipboard] [ - ]CODE:
公式编写实例
编写实例
3.1 指标公式:均线通道
新建公式“均线通道”(JXTD)
1.使用快捷键Ctrl+F打开“公式**器”。
2.点击“新建”按钮,打开“公式编辑器”
3.填写公式项
“公式名称”---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%的幅度变成“下轨”}
----------------------------------------------------
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;
------------------------------
示图
颜色参数不是函数,它描述待画图形的颜色,将其插入到每个指标公式后面,用逗号分隔开。
常用颜色参数有:
COLORBLACK 黑色
COLORBLUE 蓝色
COLORGREEN 绿色
COLORCYAN 青色
COLORRED 红色
COLORMAGENTA 洋红色
COLORBROWN 棕色
COLORLIGHTGRAY 淡灰色
COLORGRAY 深灰色
COLORLIGHTBLUE 淡蓝色
COLORLIGHTGREEN 淡绿色
COLORLIGHTCYAN 淡青色
COLORLIGHTRED 淡红色
COLORLIGHTMAGENTA 淡洋红色
COLORYELLOW 黄色
COLORWHITE 白色
颜色描述符还可以自定义颜色,格式为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是不输出线型只输出数值命令,用于多指标不兼容坐标;
常用的语句
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(a115)N日均线向下
aa:=ma(c,n);
bb:=ref(aa,2);
aa16)向前N日至M日出现过均线死叉(P1aa:=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)A5 AND B4;
19)换手率 VOL/CAPITAL*100;
20)N日盈亏
V1:=VOL/SUM(VOL,N);
V2:=DMA(CLOSE,V1);
V3: (CLOSE-V2)/V2*100;
[Copy to clipboard] [ - ]CODE:
公式入门
我们大多数的用户并不是完全了解“公式编辑器”的意义,简单地,我们可以从以下几个角度进行理解:
一、指标分析:
“公式编辑器”好比是一个工作母床,通过这个工作母床可以制造出所需要的各式各样的零件,同样,在指标分析的工作中,利用编辑器可以编写出相应的分析
条件,这种方法是在技术分析当中最为常用的方法之一。例如,指标KD、指标MA等等,通过对这些指标的观察、分析,找出一些合适的条件作为买入卖出点。当
然,我们也许需要的是一些自己的指标,一些自己的准确的指标,更多的MB、MC、MD等等,这一切我们通过“公式编辑器”可以实现。
二、条件选股:
编写公式都要用到什么东西?
我们留下了许多问题--都是公式编写的基础问题,所以我们这节课来解决这些基础的问题。
什么是技术指标?
MA均线就是一种技术指标,我们在炒股的时候,经常会将一些行情数据进行数学计算得出一些曲线等等,方便我们掌握股市的变动情况。
什么是条件选股?
简单讲,就是按照您的设定的条件用电脑帮助您完成一些太多太复杂的挑选--比如您有一些好的心得和方法,可使有1000多只股票,您就是有100双眼睛有时也不
一定可以看得过来,这时电脑就派上用场了!
什么是参数?
比如讲:10日均线,您可以把10日当作参数,好处在于,您觉得需要修改成5日的时候,就可以使用一些简单的方法,例如参数精灵来很方便的修改和调整。参数
需要名字,例如M就不错。还要规定参数的范围,例如1日至260日。这样我们就可以在1到260之间任意调节M的值了,M最常用的数填在“缺省”一栏,例如你最喜
欢用10日均线,那就填10吧。
什么是周期?
这么解释吧!我们有的投资者喜欢使用日线图作技术分析;有的喜欢用5分钟的K线;有的喜欢使用长一点时间的,例如周线。所以在公式设计中,允许不同喜好
的使用者选择不同的分析时间--就是可以选择不同的周期。
什么是函数?
函数在公式编写非常重要,如果作个比喻,我们用一种语言去告诉电脑我的想法,并且让它去帮我做,那么函数就是这种语言的单词。
我们在公式编辑器中选择插入函数,就可以看到里面有许多的函数,我们在附录中有一个简表,大家可以到那里去检索!
例一:
一根K线有四个价格组成:
最高价:HIGH
收盘价:CLOSE
最低价:LOW
开盘价:OPEN
成交量:VOL
成交额:AMO
例二:
两条均线不断地交叉,就专门设定了一条函数来描述两条线交叉:CROSS(X,Y)
假如下图中的两条均线一条名叫X,另外一条叫Y
CROSS(X,Y)表示X向上穿过了Y
CROSS(Y,X)表示Y向上穿过了X
例三:
前面的CLOSE,还是VOL,都表示当天,或者您使用的不是日线,那就表示本周期的数据,那么前几天的怎么表示呢?
REF(X,M)
例如:
REF(Close,5)表示5天前的收盘;
REF(Vol,10)表示10天前的成交量;
这里的M就是参数,您现在明白了什么是参数了吗?
例四:
如果我想把两个条件并列在一起怎么办?
AND
X AND Y就表示条件X和条件Y
好了!本课结束吧--有点稍慢,下面会好一些!
编写一条最简单的指标线
通过前几课的学习,我们今天开始使用软件的公式编辑功能编写我们自己的第一条指标线。
其实不难,你应该对自己有信心!
按照主菜单-工具-公式**-选择-“技术指标”-点击“新建”,然后在公式编辑器中留下你的第一行脚印吧!
点击:“确认”,现在看一下我们第一条指标线。
这条指标线与你的想法相符吗?
总结与补充:
1、如果选择:“主图叠加”,我们的指标线会与K线图显示在同一个图形框中,现在我们的指标线显示在其下方,即“副图”中;
2、参数可以有,也可以没有,但是鼓励大家设置参数,这是非常好的习惯;
3、一个句子完了,别忘了以分号结尾;
你的公式写得对不对,可以通过“测试公式”来检查,如果错了,它会告诉你错在哪里。
编写最常用的均量和均价线
均价线,不就是那个“移动平均线MA”什么的吗?不过,话说回来,听说10个人里面有11个人都在使用,我可得学习学习!
原理是??
5日平均线=(今天收盘价+昨天收盘价+.....--5天前的收盘价)/5;
10日平均线=(今天收盘价+昨天收盘价+......+10天前的收盘价)/10;
150日平均线=(今天收盘价+昨天收盘价+......+150天前的收盘价)/150;
200日平均线......不是这么麻烦吧?难道我每天都要写这么多得数才得到一条平均线????
你有什么办法?
MA1=MA(CLOSE,5);
MA2=MA(CLOSE,10);
MA3=MA(CLOSE,50);
......
当然是有简单的方法了!你把我在上面说过的话写下来,按照前面几课讲的,写在公式的编辑栏当中就可以了!
注意:
“MA”表示的就是计算平均值。
在括号内写上计算的对象和计算的时间长度。
MA1,MA2,MA3......是好几条指标线,别忘记了用分号把它们分开。
最后呢?电脑自己会把它们一起画出来。
均量线???
均价线都有了,照着葫芦画瓢,把收盘价CLOSE换成成交量VOL就行了!
MA1:MA(VOL,5);
MA2:MA(VOL,10);
MA3:MA(VOL,150);
MA4:MA(VOL,200);
今天有几只发生MA金叉?
我们学习了编写MA移动平均线,关于这几条指标线如何使用?我想大家可能都比我清楚。例如短期均线和长期均线发生了金叉或者死叉,......等等,葛兰维尔
的八项法则......如果说如何用分析家软件编写一个条件,让电脑把今天两个市场的股票中所有发生了黄金交叉的股票选出来呢?
想知道吗?这就是“条件选股”,按照“条件”电脑自动“选择股票”出来,可以供您分析,要不然的话,技术分析的投资者都会累死了!
跟我学!
第一步:“工具”栏中选中“公式**器”
第二步:我们现在选择“新建”一个“条件选股”公式,结果出现了下面的编辑栏!然后在里面写上您的条件!
第三步:按照说明书上的步骤选股就行了!
注意:
1、在条件选股中点击“新建”;
2、原来MA5:MA(CLOSE,5);
表示的是一条指标线,可是现在我们在条件选股当中只要引用它,不需要把它画出来。所以我们在冒号的后面加一个符号,表示等会要引用它:MA5:=MA(CLOSE
,5);
这个在分析家的公式编辑中,叫做“中间表达式”。
X=1;
Y=X+1;
Y=?
我们学过上面的数学,都知道把X=1代入到Y的计算中去,“X=1;”就是一个中间表达式,您明白了吗?
条件选股总结:
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”就可以执行了?
当然可以!考虑到了这种偷懒的做法,所以我们一共提供了两种供偷懒的人士使用,其中一种与上面的要求只是在写法上稍有不同!
第一个方法:
第一步:在条件选股的编辑器中点击“引入指标公式”。
引入“其他公式”。然后,我们从中选择一个,例如“KD”,让我们来看一下结果如何?
第二步:上一步的操作结果请看右边的图形,系统自动的把KD指标的整个编写内容搬来了!
现在需要我们做的就是:续上一行条件“D<20”,OK!完成!
有没有简单的方法?
第二个方法:就一句话:“KDJ,D”<20;
“KDJ,D”
表示现在我要是用KDJ指标当中的D指标,不过大家要看清楚是怎么写的哦!写错了计算机可是不会改错的!
总结:
用上面的方法可以引用所有指标,所以不必写那么多!
注意格式上,两边用引号括起来,指标名称KDJ和指标线名称D之间用“,”隔开!
额外加餐
现在我们可以很方便的做另外一件事了,我们可以将通常说的KDJ买入条件完整的表达出来了:
“KD指标发生了黄金交叉,并且D<20”
T1:=“KDJ,K”;--引用K线;
T2:=“KDJ,D”;--引用D线;
条件: AND在分析家中就表示“并且”,将两个条件并列起来
CROSS(T1,T2)ANDT2<20;
第九课 放量、缩量、上涨、下跌、收阳、收阴
在前面的学习当中,我们见到了一些基本的表达方法、方式,今天我们的任务是学习一些常见的概念如何编写,例如上面所列出来的放量、上涨等等,因为这些
都是在公式编写过程当中要用到的基本的小的形态特征,许多的技术指标的选股条件都是由它们组成的。
放量:
1、今日比昨日的成交量放大了1倍:
VOL/REF(VOL,1)>2;
2、今日的五日均量比前五天的五日均量放大了3倍:
AA:=MA(VOL,5);
BB:=REF(AA,5);
AA/BB>4;
3、今天的成交量达到了整个流通盘的10%以上:
VOL/CAPITAL>10/100;
(注意,10%的表达式是10/100,或者0.1)
缩量:
1、今日比昨日的成交量缩小了1倍:
VOL/REF(VOL,1)<0.5;
2、今日的五日均量比前五天的五日均量缩小了一半:
AA:=MA(VOL,1)<0.5;
BB:=REF(AA,5);
AA/BB<0.5;
3、今天的成交量不足整个流通盘的0.5%:
VOL/CAPITAL<0.5/100;
上涨:
1、今日涨幅达到了7%以上:
CLOSE/REF(CLOSE,1)>1.07;
2、十日均价继续上涨:
AA:=MA(CLOSE,10);
BB:=REE(AA,1);
AA>BB;
下跌:
同上面的表达方式一样,将方向改变了而已:
收阳、收阴:
1、当天收阳:CLOSE>OPEN;
2、当天收阴:CLOSE<OPEN;
高开、低开:
1、当天股价高开,言下之意开盘高于昨日收盘:OPEN>REF(CLOSE,1);
2、当天股价低开:OPEN<REF(CLOSE,1);
[Copy to clipboard] [ - ]CODE:
跳空:
跳空亦有向上和向下两种:
当日开盘在昨日最高之上,即为向上跳空:OPEN>REF(HIGH,1);
反之,开盘小于昨日的最高价,为向下跳空:POEN<REF(LOW,1);
事实上,我们在编公式的过程,就是将这些条件有机地结合起来作为我们判断的条件。举一个很简单的例子,如果是K线形态呈现出放量上攻的态势,那么如何编
写这个公式呢?高开高走又应该如何编写呢?
我们把放量和上涨的两个条件组合在一起,让某一天的形态特征同时满足两个条件就达到目的;同样地将高开的高走两个条件结合在一起,也就找到了我们所需
的条件。
结果就是:
放量上攻之一,以上面所举例组合:
AA:=VOL/REF(VOL,1)>2;
BB:=CLOSE/REF(CLOSE,1)>1.07;
AA AND BB;
高开高走:
AA:=OPEN>REF(CLOSE,1);
BB:=CLOSE>OPEN;
AA AND BB;
OK!本课到此结束,留下一个问题,看看您有没有真正的理解,向上跳空之后两天内并未回补如何编写呢?
提示:实际上就是昨天发生了跳空缺口,这两天的最低价一直在两天前的最高价之上。
AA:=REF(OPEN,1)>REF(HIGH,2);
BB:=REF(LOW,1)>REF(HIGH,2);
CC:=LOW>REF(HIGH,2);
AA AND BB AND CC;
仔细一想,若BB成立,AA一定成立,AA实际上没有存在的必要,你想通了吗?
更简单的方法,下面的一句话可以的上面的四句:
COUNT(LOW>REF(HIGH,2),2)=2;
第十课 涨停板攻击?
学了这么多了,应该教点实战的内容了!我们来学习一下别人的经验,“涨停板追击”,同时这里面还润孕育着一个简单但是又颇有意义的道理!
一、量化的概念
我们都知道,按规定涨幅不得超过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%,(非常抱歉,因为其中的设置和选择方法十分灵活而且需要较好的理解能力,所以我们
在这里就不介绍具体的内容了)
点击开始测试!一切OK!来看结果吧!
1、从成功率上看,实际达到5%的获利要求的交易次数67.89%,我们已经比较满意这个结果了,可是要用于实战,可不可以再提高呢?
2、所谓的提高就是优化的一个内容,简单说,优化就是让它更好!优化我们的条件,让它的表现更好!
3、加上一个缩量的条件,比如当日成交量小于5日的均量;Y:=VOL<MA(VOL,5);大家可以做一下测试,看看结果如何!以下是同样测试条件下的结果。 X
AND Y;
您满意吗?我们的成功率已达到了80%,剩下的任务就是您如何操作的问题了!
注:请大家考虑一下在实战当中,如果您按此买入可不可行?
总结:编写公式并不是为了编公式而编写复杂的公式,您个人对某一个特征或者形态的理解最重要。所以光有经验不够,您还得把它转化成您自己的应对策略!
您需要不断总结、测试、优化您的公式。
第十一课 多头排列--良好的上升趋势
均线的多头排列一直以来都被大家视为一种良好的上升趋势的表现,因为这种形态的形成需要较长的时间,和较大的能量,而被主力或者庄家利用作为骗线的可
能性就比较小,股市当中也遵循惯性的原理,当一个趋势形成之后,要改变它,是不容易的,因为股价有着沿着原来的运动方向上的惯性!
首先,让我们来看看几种多头排列:
5、10、30日均线:5、10、30日均线:30、60、90日均线:
在图一中和图二中我们采用的是同一周期的均线,即都是5、10、30日均线,我们可以观察到在同一周期下的均线排列有相同之处,也有很大不同之处:图一中的
5日均线=10日均线、30日均线平滑优美,而在图二中的5日和10日均线不断的碰及30日均线然后上升;
在图三中我们选用的是30、60、90日均线,相对来说均线的多头排列也显得很平滑。
为什么会有这样的差别呢?如果您要是认真一点的话,就可以发现原来前两图的K线走得不一样,一个一波拉到头,一个分成几波拉到头,而在图三当中我们采用
了较长周期的均线系统,从而在一定程度上过滤了这种现象,具体在使用的过程中,您可要多注意它们的区别!
好了,我们来看一下如何编写,拿第一个为例,观察它们的特征:
5/10/30日均线依次从上而下的排列,这种情况维持一段时间,假设我们这里定为4天以上:
5/10/30日均线依次从上而下的排列:
AA:=MA(CLOSE,5);
BB:=MA(CLOSE,10);
CC:=MA(CLOSE,30);
T1:=AA>BB AND BB>CC;
以上情况维持一段时间,假设我们这里定为4天以上:
COUNT(T1,4)=4;
COUNT(X,N)表示统计在N天内满足条件X的有几天。
最终的结果就是如下所示:
AA:=MA(CLOSE,5);
BB:=MA(CLOSE,10);
CC:=MA(CLOSE,30);
T1:=AA>BB AND BB>CC;
COUNT(T1,4 )=4
编写完毕,我们在上面的例子当中,举的是最简单的一个,其实您在编写的过程当中,还可以加上一些比较准确地描述,以取得更好的效果,例如同时三条均线
向上发散等,当然还有您自己的心得。
第十二课 逃顶K线形态之--黄昏之星
一、概念学习
当市场出现一条大阳线后,通常会产生跳空高开的情况,有时便会出现十字星或类似十字星的小阴线(小阳线)。另一种相反的情况是出现在一条大阴线后,在
这两种情况下形成的类似十字星的K线都被称为“星型线”。
当该形态出现在一段上升行情的当中,就很容易形成所谓的经典K线形态--黄昏之星。
二、编制过程
通过我们前面的学习,其实已经可以比较轻松的编制这个条件了--前人已经清晰地把这个形态的具体特征描述出来,剩下的工作就是把这些特征用数字表示--这
就是前面提到的量化的过程!
该图组合一共由三根K线合成,我们按照以下的步骤一步一步地一边寻找每日K线的特征,一边进行编写:
为了结构简单起见,首先将二天的高开低收用中间表达式表达出来,因为我们在后面的编写过程中会分别使用到这些数据。
1、今日K线的:开-a1, a1:=open;
收-a2, a2:=close;
高-a3, a3:=high;
2、昨天K线的:开-b1, b1:=ref(open,1);
收-b2, b2:=ref(close,1);
高-b3, b3:=ref(high,1);
低-b4, b4:=ref(low,1);
3、前天K线的:开-c1, c1:=ref(open,2);
收-c2, c2:=ref(close,2);
高-c3, c3:=ref(high,2);
低-c4, c4:=ref(low,2);
4、我们将会分别描述出三天的K线形态,然后汇总,首先我们观察今日K线的特征,今天是一根低开低走的大阴线,我们给它一些数字上的定义:
a、今日开盘价小于昨日收盘价; aa:=a1<b2 and
b、今日的阴线实体较长,我们用开盘价和收盘价相比,长度大于4%:a1/a2>1.04;
5、昨日K线的特征,是一根十字形态的K线,并且在左右两根K线之上,分别表达为:
a、昨日跳开,高于前天的收盘: bb:=b1>c3
b、昨日收盘同样在缺口之上: and b2>c3
c、线形实体长度很小,也就是昨日开盘和收盘之差比昨日开盘的值小于0.01:and abs(b1-b2)/b1<0.01
d、K线有上下影线,可以表示为最高价和最低价不等于收盘价也不等于开盘价:and b3>b1 and b3>b2 and b4<b1 and b4<b2
e、当日的最高价为20天以来的最高价: and b3=hhv(high,20);
6、前日K线的特征:股价大幅上扬,幅度较前一日收盘高出4%并且收盘大于开盘:cc:=c2/ref(close,3)>1.04 and c2>c1;
综合选股条件:最后我们将三天的K线特征会合起来,合成一个最后的条件就是由图所示内容: aa and bb and cc
三、选股的结果
我们把上面的条件按照前面章节所讲的方法带入到分析家的公式选股条件当中去检验。
按下图作为标准
四、总结
其实到底是难还是不难呢?其实不难,只是你要细心一点把一个一个的条件组合起来,有机地结合起来!我们的许多形态就是这样由一个一个的K线组合起来的结
果!
1、我们测试了将近4年的时间,一共找到了几个这样的信号,您满意吗?--应该说,不满意!可是原因在哪里呢?--我们的条件过于苛刻,因为要同时满足的条
件太多,您可以尝试更改一些条件以获得更多的信号!
2、大家还会发现有的信号出现的位置不好,例如西飞国际,因为我们其中有一个条件不是很好,不过您可以做到将它去掉--告诉我您可以做到,算是课后作业吧
,我看相对高位dd:=b3=hhv(high,20),怎么看都不舒服,您有什么办法?
突破底部横盘整理创新高!
“横的越长,竖的越高”,业内业外一直流传这样一句话。真实的讲,它描绘了股票的价格在一定的范围上下波动,如果有庄家主力在其中悄悄吸纳......直到
某一天股价一鹤冲天!沉寂时间越长,爆发力越惊人!
正所谓“三年不鸣,一鸣惊人”......
公式编写:
我们寻找各种特征,并用数字表示出来:“长期”设定为150天;“横盘”设定股价在150日均线上下15%波动;放量;并且股价创下150天以来的历史新高!
1、首先用公式描述放量
a、将会使用5日均量来进行比较,成交量比昨日成交量放大两倍;
b、V1是五日均量,REF(V1,1)就是昨日的均量;
V1:=MA(VOL,5); V2:=VOL/REF(V1,1)>2;
2、长期横盘
a、PZ1是当天150日均价: PZ1:=MA(CLOSE,M);
b、PZ2是150日的最高价; PZ2:=HHV(HIGH,M);
c、PZ3是150日的最低价; PZ3:=LLV(LOW,M);
d、PZ4是150日的最高价和150日均价的距离的百分比,PZ5刚好相反是最低价和均价的差的百分比; PZ4:=(PZ2-PZ1)/PZ1; PZ5:=(PZ1-PZ3)/PZ1;
e、设为股价在150日均线上下15%波动,也就是PZ4、PZ5都小于0.15;
PZ:=REF(PZ4,1)<0.5 AND REF(PZ5,1)<0.15;
3、今天创下历史新高,也就是今天的最高价是150天内的最高价! TP1:HHV(HIGH,M); TP:=HIGH=TP1;
综合三个条件的最后的逻辑判断式就是我们的最后结论! V2 AND PZ AND TP(参数M=150天)
这样,您将上面多写的内容,简单的编入到公式编辑器中去,我们的工作就已经做完了,剩下的测设,大家请按照我们前面所讲的内容去做,只有不断地完善你
的公式,把它和实战结合起来,形成您自己的特点的操作体系,您才算是有了自己的武器!
函数介绍:
HHV(X,M)
表示X在M天内的最高值!
例如:
HHV(HIGH,150)每日最高价在150天内的最大值
HHV(VOL,150)每日成交量在150天内的最大值
LLV(X,M)
表示X在M天内的最小值
例如:
LLV(LOW,10)每日最低价在10天内的最小值
HHV(VOL,20)每日成交量在20天内的最小值
好了!十二课我们全讲完了,我们来回顾一下我们的课程,做一个最后的总结!
事实上,编写公式并不是一件很难的事情!他并不是为编写复杂的公式而在编写公式,恰如孔乙己会写四种回字又有何意义?重要的是您要深刻地理解某一点、
某一处--没有人可以全部了解这个市场,可是也很少有人能够潜下心来去想清楚一个问题。
在编写公式的时候,大家一定体会到了,由于计算机的使用给我们带来了巨大的方便,可使计算机并不是完全智能化的,所以它只是一个工具,还有着许多的重
要的工作需要人去完成,您千万不能放弃了自己而去迷信一个工具,可能它是您的帮手,但目前来说,无法替代您!您的投资还得由您去做!
[Copy to clipboard] [ - ]CODE:
小指标公式编码集中(三)
1.
成交量连续5天超过30天均量点
count(vol>ma(vol,30),5)=5
2.
请老师编一选股公式;要求1;日均线多头排列的情况下(5,10,30,60。。。)2:5日。10日均线高度粘合--相等或相差1-2分钱,30均线与5,10均线相差1角
以下。3:日量比大于2。先谢谢!!!
1.ma(c,5)>ma(c,10) and ma(c,10)>ma(c,30) and ma(c,30)>ma(c,60) and 。。。
2.abs(ma(c,5)-ma(c,10))<0.03 and abs(ma(c,30)-max(ma(c,5),ma(c,10)))<0.1
3.DYNAINFO(17)>2
3.
威力雷达rad7日内连续上扬怎样编写?谢谢
V1:=(c/ref(c,1)-indexc/ref(indexc,1))*200;
RAD:=sum(v1,0);
count(rad>ref(rad,1),7)=7
威力雷达Mrad在7日内连续上扬怎样编写?谢谢
V1:=(c/ref(c,1)-indexc/ref(indexc,1))*200;
RAD:=sum(v1,0);
MRAD:=MA(RAD,30);
count(mrad>ref(mrad,1),7)=7
4.
请问。10日内涨幅大于10%的选股公式怎样编?
c/ref(c,10)>1.1
5.
如何编写股价在一个上涨或下跌的行情中第3次触及30日均线时发出提醒的指标?
M3:=MA(C,30);
N1:=BARSLAST(M3>REF(M3,1));
AA:=CROSS(C,M3);
COUNT(AA,N1)=3
6.
请问:cys指标中数值要小于-5,怎样编写到其他指标中.,谢谢!
(C-CYC(13))/CYC(13)*100<-5
7.
当涨幅大于5%,要主图K线的实体的一半变为另一色。如何表达?
STICKLINE(c/ref(c,1)>1.05,(c+o)/2,c,10,1),coloryellow;
8.
成交量连续3天涨的公式
COUNT(VOL>REF(VOL,1),3)=3
9.
请问怎样用公式表示年线摆脱下降趋势出现向上拐头?
COUNT(MA(C,250)>REF(MA(C,250),1),3)=3
10.
股价创出新高后,又调整到30日均线附近的选股公式如何编写?
COUNT(C>=HHV(C,N),5)=1 AND C/MA(C,30)>=1 AND C/MA(C,30)<1.02
11.
怎么定义一阳线紧跟两阴线的函数?
ref(c,2)>ref(o,2) and ref(c,1)12.
60日线在过去的10天内涨跌幅度在 1%
COUNT(BETWEEN(ma(c,60),ref(ma(c,60),10)*1.01,ref(ma(c,60),10)*0.99),10)=10;
13.
RSI(周线)在70天内第二次上穿80,如何编制?
COUNT(CROSS("RSI.RSI1#WEEK",80),70)=2
14.
今天涨幅3%昨天涨幅2%前天涨幅1%的个股
(c-ref(c,1))/ref(c,1)>0.3 and (ref(c,1)-ref(c,2))/ref(c,2)>0.2 and (ref(c,2)-ref(c,3))/ref(c,3)>0.1
15.
破5天线,3天后又重新站上5天线的个股
cross(ref(ma(c,5),3),ref(c,3)) and cross(c,ma(c,5))
16.
今天一阳上穿5,10,30天线个股
cross(c,ma(c,5) and cross(c,ma(c,10)) and cross(c,ma(c,30))
17.
3天内5天线上穿10天线,10天线上穿20天线的个股
count(cross(ma(c,5),ma(c,10)),3)>=1   and   count(cross(ma(c,10),ma(c,20)),3)>=1
18.
日macd翻绿3内又翻红的个股。
count(cross(0,"MACD.MACD" ),3)=1 and count(cross("MACD.MACD",0 ),3)=1
19.
5天线拐头向下3天内又拐头向上的个股。
count(cross(ref(ma(c,5),1),ma(c,5)),3)=1 and count(cross(ma(c,5),ref(ma(c,5),1)),3)=1
20.
收盘价比开盘价高出6%,当日涨幅超过6%,实体占整天振幅的80%以上
C/O>1.06 AND C/REF(C,1)>1.06 AND C-O>0.8*(H-L)
小指标公式编码集中(四)
1.
怎样编制全市场平均价格公式
现在的指数不能说明市场真实平均价格,怎样写才准确呢?
沪股均价:"1A0002$AMOUNT"/"1A0002$VOL"/100;
深股均价:"399107$AMOUNT"/"399107$VOL"/100;
均价:("1A0002$AMOUNT"+"399107$AMOUNT")/("1A0002$VOL"+"399107$VOL")/100;
2.
用股价选股
input:年(2004),月(8),日(31),最小价格(1),最大价格(2);
n:=DATEDIFF(((年-1900)*10000+月*100+日),DATE);//计算输入日期和现在日期周期
tj:REF(CLOSE,n)>最小价格 and REF(CLOSE,n)<最大价格;
3.
1,股价突破60日均线的选股公式,
2,和怎么选出一段时间以来的涨停板个股公式
1
cross(c,ma(c,60));
2
f:=ref(c,1)*1.1-c<0.01;
count(f,n)>0;//N天内出现过涨停
4.
股价横盘,MACD金叉,然后股价创新底,MACD没死叉。
REF(((HHV(H,N)-LLV(L,N))/LLV(L,N)),1)<=0.04
AND c"macd.dea";
5.
过滤一个条件成立的信号
过滤:=(EMA(C,60)>EMA(C,30))>(EMA(C,60)>EMA(C,30)*1.05);
我需要这个信号以外成立的信号
过滤:=(EMA(C,60)>EMA(C,30))>(EMA(C,60)>EMA(C,30)*1.05);
not(过滤)
***
IF(过滤,0,1);
6.
收盘价在20日均线之上,收盘价连升二天。
f:=c/ref(c,1);
count(c>ma(c,20) and f>1,2)=2;
7.
求最大值?
在飞狐中如何求以下四个代数式中的最大值
a-b,b-c,a-c,d-c
MAX(A,B)只能返回A和B中的较大值?
MAX(MAX(A,B),MAX(C,D));
通用的“二次金叉”通式。
Jm:=CROSS("指标名称.指标线1","指标名称.指标线2");
JmCOUNT:=COUNT(Jm,BARSLAST("指标名称.指标线1(或指标线2)"大于或小于某数));
Jmtj:40*("指标名称.指标线1(或指标线2)"小于或大于某数));
Drawtext (Jmtj,40,'…………二次金叉');
条件选股:60*(Jmtj and …………),colorgreen;
例如(这里给出三个例子)
1、Macd在0轴线以下二次金叉
Jm:=CROSS("Macd.DIFF","Macd.DEA");
JmCOUNT:=COUNT(Jm,BARSLAST("Macd.DEA">=0));
Jmtj:40*("Macd.DEA"<0 and Count(JmCount=2,21)=1);
Drawtext (Jmtj,40,'Macd在0轴线以下二次金叉');
条件选股:60*(Jmtj and Slope(Ma(C,5),2)>0),colorgreen;
Drawtext (条件选股,50,'5日3%成功率:44.71%');
2、KD在60轴线以下二次金叉
Jm:=CROSS("KD.K","KD.D");
JmCOUNT:=COUNT(Jm,BARSLAST("KD.D">=60));
Jmtj:40*("KD.D"<60 and Count(JmCount=2,21)=1);
Drawtext (Jmtj,"KD.D",'KD在60轴线以下二次金叉');
条件选股:60*(Jmtj and Slope(Ma(C,20),3)>0),colorgreen;
Drawtext (条件选股,50,'5日3%成功率:50.3%');
3、SlowKD在30轴线以下二次金叉
Jm:=CROSS("SlowKD.K","SlowKD.D");
JmCOUNT:=COUNT(Jm,BARSLAST("SlowKD.D">=30));
Jmtj:28*("SlowKD.D"<30 and Count(JmCount=2,21)=1);
Drawtext (Jmtj,28,'SlowKD在30轴线以下二次金叉');
条件选股:50*(Jmtj and Slope(Ma(C,20),2)>0),colorgreen;
10.
求各位高手写一个选股公式!
N天,N日均线,以N角度向上或向下运行的均线。(分析家)
atan((ma(c,n)-ref(ma(c,n),N))/N); //值为正向上,值为负向下
11.
K线中“低点不断抬高”和“低点不断降低”的指标如何编 ?
l>ref(l,1) and REF(L,1)>ref(l,2) and REF(L,2)>ref(L,N);;{N,5,1,999}
“低点不断抬高”
反之<是“低点不断降低”
12.
符号编公式用
【】〓☆★○●◎◇◆□■△▲ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ→←↑↓^§∧∨∪∩∈∞∝⊥∽√┣┫┻╋┼αβδωΩφΦΨΠ┳
13.
当收盘价收在7天平均线上,K线都为阳线(红色),收盘价收在7天平均线下,K线都为阴线(录色),在主图怎样写?
stickline(c>=ma(c,7),c,o,7,0),colorred;
stickline(c>=ma(c,7),h,l,1,0),colorred;
stickline(cstickline(c14.
20日内次高点
AA:=HHVBARS(C,20);
C=MAX(HHV(C,AA),REF(HHV(C,19-AA),AA+1));
15.
要选出收市价离125天均线不远,
ABS(C-MA6)/MA6<=0.01
20.
写均线MA1二次上穿MA4公式!
COUNT(CROSS(ma1,ma4),20)=2;
小指标公式编码集中(五)
这是在网上摘录的,仅供参考
编写公式时常用的通式
应用 FXJ-4 的一些函数编写公式时,常用的通式:
{设A,B,R为三条曲线;N,M等为参数。如:A:ma(c,N) ; B:=ma(c,M); R:=c/ref(c,1)-1;等。。。}
{一.曲线在N天内的平均变化率}
Fa:=(A/ref(A,N)-1)/N; Fb:=(B/ref(B,N)-1)/N; Fr:=(R/ref(R,N)-1)/N;
{二.变动角}
∮a:=atan(Fa);    ∮b:=atan(Fb);  ∮r:=atan(Fr);
{三.曲线上相距N天的两点的连线的斜率}
Ka:=(A-ref(A,N))/N;   Kb:=(B-ref(B,N))/N; Kr:=(R-ref(R,N))/N;
{四.倾角}
∠a:=atan(Ka);   ∠b:=atan(Kb);   ∠r:=atan(Kr);
{五.交*点}
Cab:=cross(A,B);{交*} Jab:=longcross(A,B,N);{维持 -交*}
JYa:=between(A,N,M);{介于} FWa:=range(A,N,M);{范围}
{六.下拐点(由下向上转)}
xD1:=llvbars(A,N)=M;{以N日最低点}
xD2:=ref(count(A-ref(A,1)<=0,N)=N,M) and count(A-ref(A,1)>0,M)=M;{以M日变化量的正负}
xD3:=ref(count(∠a-ref(∠a,1)<=0,N)=N,M) and ∠a>0;{以当日变化角的正负}
{七.上拐点(由上向下转)}
sD1:=hhvbars(A,N)=M;{以N日最低点}
sD2:=ref(count(A-ref(A,1)>=0,N)=N,M) and count(A-ref(A,1)<0,M)=M;{以当日变化量的正负}
sD3:=ref(count(∠a-ref(∠a,1)>=0,N)=N,M) and ∠a<0;{以当日变化角的正负}
{八.位置(求得交*点/拐点到当前的周期)}
Wz1:=barslast(Cab);{第一(交*)点的位置}
Wz2:=ref(Wz1,Wz1+1)+Wz1+2;{第二(交*)点的位置}
Wz3:=ref(Wz1,Wz2+1)+Wz2+2;{第三(交*)点的位置}
Wz4:=ref(Wz1,Wz3+1)+Wz3+2;{第四(交*)点的位置}
Wz5:=ref(Wz1,Wz4+1)+Wz4+2;{第五(交*)点的位置}
{Wzn:=ref(Wz1,Wz(n-1)+1)+Wz(n-1)+2;}
{九.曲线A叠加曲线B}
F:=A/ref(A,1)-1;{A的变化率}
Js:=ref(B,barscount(c));{叠加位置(初始)}
DJ:=sum(F,0)+1)*Js;{叠加曲线(初始位置)}
Jd:=ref(B,barslast(条件));{叠加位置(定点)}
Dh:=(sum(F,0)+1)*Jd;{叠加曲线(预定位置)}
都学会了,那恭喜你加入汇编公式高手行列.
重装大智慧不用重装指标的好方法
打开DZH文件夹里的IND文件,将GWIND.SEL(GwInd.sel)文件复制保存下来。重新安装DZH后再将这个文件覆盖到IND里面,打开DZH,你会发现以前的指标都回来了,这
样就不用一个一个的导出了,是不是很方便呀。
QUOTE:
系统重装----如何快速重装飞狐,并保留原有的数据、公式等用户资源?
1、 假设飞安装在D:\FoxTrader-v3,将D:\Foxtrader-v3之下的User、DATA、FmlDLL、StkBlock、Memo五个文件夹、regcode.bin注册文件备份,例如新建一个
D:\FoxOld文件夹,把这五个文件夹转移到FoxOld文件夹下。
2、卸载飞狐。
3、重新安装飞狐在D:\Foxtrader-v3。
4、重装后,将以上备份的D:\FoxOld之下的User、DATA、FmlDLL、StkBlock、Memo五个文件夹、regcode.bin,覆盖新装的Foxtrader-v3下的同名文件即可,这样
既能重装又能保留原来的东西,无须重装数据和公式。
重装大智慧后不再重装指标、重设自选板块的方法
1.不用重装指标的方法:
打开DZH文件夹里的IND文件,将GWIND.SEL(GwInd.sel)文件复制保存下来。重新安装DZH后再将这个文件覆盖到IND里面。
最后打开DZH,你会发现以前的指标都有了,这样就不用一个一个的导出了,是不是很方便呀。
2.不用重新设定自选板块的方法:
打开DZH文件夹里的CFG文件,找到了一个文件:dzh\cfg\netwrkic.bk2;
"netwrkic.bk2"这个文件就包含了全部自选板块。平时复制一个,重装软件时拷贝一下即可。
QUOTE:
指标修改技巧
观察鉴别法
观察鉴别法是一种比较直观的通过指标编辑器的提示来检查指标语句中是否有差错的方法,当你在编辑指标或修改指标时必须要进行测试,只有没有病句
的指标才能通过测试,否则,指标中肯定会有这样或那样的病句。遇到有病句的指标时,指标编辑器会提示病句的所在位置,缺少什么或有什么函数或代码不能
识别等,我们通过观察就能一目了然,准确地找到修改点。这是一种最常用也是最简单的方法,对一些不做大的改动的指标很有效。下面我们把这个飞狐格式的
指标改成大智慧格式的:
{牛熊先知}
VAR1:=EMA(EMA(EMA(CLOSE,5),2),1);
牛熊先知: (VAR1-REF(VAR1,1))/REF(VAR1,1)*1,COLORRED COLORSTICK;{在COLORRED COLORSTICK之间缺逗号}
牛熊神经: EMA(牛熊先知,13),COLORYELLOW;
牛熊界线: 0, COLORMAGENTA;{飞狐颜色代码,粉色,改为大智慧可用的COLORFF00FF即可}
VAR2:=AMOUNT/VOL/100;
VAR3:=MAX(ABS(HIGH-VAR2),ABS(VAR2-LOW));
VAR4:=ABS((OPEN+CLOSE)/2-VAR2);
VAR5:=5;
VAR6:=(VAR3+VAR4)/VAR2*50;
牛熊变换: IF(CROSS(VAR6,VAR5),0.008,0),COLORCYAN;{飞狐颜色代码,青色,改为大智慧可用的COLORFFCC66即可}
方法:打开指标编辑器,把指标源码复制粘贴到指标编辑器里,给指标随便取个名,点击测试,不能通过,(大智慧5.19以前版本的是这样,升级到5.20后对一些
病句也能通过,给修改带来不便,所以要先观察鉴别)该指标点击测试能通过,但仔细查看在指标编辑器里你看到了什么?有两句颜色代码呈黑色!为了看得清楚
,有问题的地方画了黑线,只要分别改成大智慧能识别的颜色代码即可。第二句在COLORRED与 COLORSTICK之间没有","分隔,为了看清楚也标注了一条黑线,好
,在英文状态下输入一个","逗号,鼠标点测试,测试通过,再点确认。到此指标就改好了。把改好的指标设为常用,回到K线图调出指标,看一看指标的效果.
下面是改好的指标:
{牛熊先知}
VAR1:=EMA(EMA(EMA(CLOSE,5),2),1);
牛熊先知: (VAR1-REF(VAR1,1))/REF(VAR1,1)*1,COLORRED,COLORSTICK;
牛熊神经: EMA(牛熊先知,13),COLORYELLOW;
牛熊界线: 0, COLORFF00FF;
VAR2:=AMOUNT/VOL/100;
VAR3:=MAX(ABS(HIGH-VAR2),ABS(VAR2-LOW));
VAR4:=ABS((OPEN+CLOSE)/2-VAR2);
VAR5:=5;
VAR6:=(VAR3+VAR4)/VAR2*50;
牛熊变换: IF(CROSS(VAR6,VAR5),0.008,0),COLORFFCC66;
注意:所有的标点符号和字母都必须是在英文状态下输入,否则不能通过,这样的情况也是常有的,遇有此类问题按上述方法进行纠正。
顺藤摸瓜法
飞狐股软支持在一个指标中允许有同名的指标语句,而大智慧是不允许的,把这样的指标直接引用的大智慧中是不能通过的(大智慧5.20版本的也能通过
,可见新版本对判断指标中的错误这项功能没有了),即使测试通过了也不能用,这就需要逐句地进行顺藤摸瓜来修改。下面是一个飞狐的组合指标:
Var2:=(H+L+O+2*C)/5;{与下面赋值VAR2重名}
CHH低吸线:EMA(SLOPE(Var2,21)*20+Var2,55),circledot;
DrawIcon(Ref(C,1)CHH低吸线,0.98*L,1);
DrawIcon(Ref(C,1)>CHH低吸线 and Cbb:=llV(H,1);
神顶抄底逃顶线:FORCAST(FORCAST(bb,15),15), COLORyellow,LINETHICK2;
神顶逃顶抄底线:FORCAST(FORCAST(bb,25),25), COLORred,LINETHICK2;
If(Slope(神顶抄底逃顶线,2)>0,CHH低吸线,C),circledot,ColorMagenta;
C,circledot,ColorBlack;
{K线}
Var2:=(C*2+H+L)/4;{与上面赋值VAR2重名}
Var3:=EMA(Var2,3);
Var4:=EMA(Var3,6);
L1:=EMA(Var2,3);
L2:=EMA(Var3,4);
L3:=EMA(Var4,5);
Var5:=REF(L1,1)>L1 AND L1>L2;
STICKLINE(L1>=L2,H,L,1,0),COLORRED;
STICKLINE(L1STICKLINE(L1>=L2,C,O,6,0),COLORRED;
STICKLINE(L1STICKLINE(Var5,H,L,1,0) COLORYellow;{缺少逗号}
STICKLINE(Var5,C,O,6,0) COLORYellow;{缺少逗号}
第一步:打开指标编辑器,把指标源码复制粘贴到指标编辑器里,给指标随便取个名或输入原指标的名字,点击测试,能通过,但是也要仔细排查。
第二步:在编辑器里画黑线处ColorMagenta这个颜色代码大智慧不能识别(在飞狐指标中该颜色代码是粉色),把它改成能识别的粉色代码ColorFF00FF
,用鼠标点测试,此时又提示没有定义的标示符,用鼠标点确定,在编辑器里显示兰色条处有C,circledot,ColorBlack;
第三步:在编辑器里画黑线处ColorBlack颜色代码大智慧不能识别(在飞狐指标中该颜色代码是兰色),用鼠标点确定,把它改成能识别的蓝色代码
ColorBLUE。
第四步:VAR2这个变量与上面的VAR2变量重名,在编辑器里画黑线处VAR2,也就是说指标中存在2个用VAR2定义的语句,大智慧是不允许的,只有把这个
VAR2变量改成不与第一个VAR2重名变量重名的变量即可,如改成V2,因为VAR3和L1变量引用了VAR2,所以再把VAR3、L1中的VAR2都改成V2。见图:
第五步:我们看到最后2条语句与颜色代码之间没有逗号,在编辑器里画黑线处见图:
好,再把这两句再加上逗号,点测试通过,到此指标修改结束。下面是修改后的指标(可做主副图):
Var2:=(H+L+O+2*C)/5;
CHH低吸线:EMA(SLOPE(Var2,21)*20+Var2,55),circledot;
DrawIcon(Ref(C,1)CHH低吸线,0.98*L,1);
DrawIcon(Ref(C,1)>CHH低吸线 and Cbb:=llV(H,1);
神顶抄底逃顶线:FORCAST(FORCAST(bb,15),15), COLORyellow,LINETHICK2;
神顶逃顶抄底线:FORCAST(FORCAST(bb,25),25), COLORred,LINETHICK2;
If(Slope(神顶抄底逃顶线,2)>0,CHH低吸线,C),circledot,Colorff00ff;
C,circledot,ColorBlue;
{K线}
V2:=(C*2+H+L)/4;
Var3:=EMA(V2,3);
Var4:=EMA(Var3,6);
L1:=EMA(V2,3);
L2:=EMA(Var3,4);
L3:=EMA(Var4,5);
Var5:=REF(L1,1)>L1 AND L1>L2;
STICKLINE(L1>=L2,H,L,1,0),COLORRED;
STICKLINE(L1STICKLINE(L1>=L2,C,O,4,0),COLORRED;
STICKLINE(L1STICKLINE(Var5,H,L,1,0),COLORYellow;
STICKLINE(Var5,C,O,4,0),COLORYellow;
通过画面看到K线比较粗,效果不好,把画柱线如STICKLINE(L1>=L2,C,O,6,0),COLORRED中的宽度为6的改成4即可,这里有3条语句宽度为6的,都改成4,
效果与主图上的K线宽窄是一样的了。
这个指标的修改过程是经过一步一步不断的修改才通过测试的,所以我们修改指标时,只要不能通过测试就要坚持修改下去,这样才能成功。
指标减肥法
指标公式是由若干条语句组成的,在网上我们常常看到有的指标少则几十条,多则近百条,指标大的让人望而生畏。因为指标语句之间关联密切,互相调
用,层层嵌套,有时编者也搞不清楚哪些语句被调用哪些没被调用,或者来不及校对,遗留下许多废语句也在所难免。要知道,我们在使用指标时计算机对每条
语句都要进行计算后才得出结果,太多的废语句会使计算速度降低(当然我们凭肉眼是看不出来的),而且占用空间。说不定你现在使用的指标就肥指标,特别
是很长的指标,有时间还是给指标减肥吧!下面结合实例介绍减肥的方法:
{VAR2:=1;
VAR3:=MA(CLOSE,13);
VAR4:=100-ABS(((CLOSE-VAR3)/(VAR3))*(100));
VAR5:=LLV(LOW,75);
VAR6:=HHV(HIGH,75);
VAR7:=(VAR6-VAR5)/(100);
VAR8:=SMA((CLOSE-VAR5)/(VAR7),20,1);
VAR9:=SMA((OPEN-VAR5)/(VAR7),20,1);
VARA:=(3)*(VAR8)-(2)*(SMA(VAR8,15,1));
VARB:=(3)*(VAR9)-(2)*(SMA(VAR9,15,1));
VARC:=100-VARB;
VARE:=(REF(LOW,1))*(0.89999997);
VARF:=(LOW)*(0.89999997);
VAR10:=((VARF)*(VOL)+(VARE)*(CAPITAL-VOL))/(CAPITAL);
VAR11:=EMA(VAR10,30);
VAR12:=CLOSE-REF(CLOSE,1);
VAR13:=MAX(VAR12,0);
VAR14:=ABS(VAR12);
VAR15:=((SMA(VAR13,7,1))/(SMA(VAR14,7,1)))*(100);
VAR16:=((SMA(VAR13,13,1))/(SMA(VAR14,13,1)))*(100);
VAR17:=BARSCOUNT(CLOSE);
VAR18:=((SMA(MAX(VAR12,0),6,1))/(SMA(ABS(VAR12),6,1)))*(100);
VAR19:=(((-200))*(HHV(HIGH,60)-CLOSE))/(HHV(HIGH,60)-LLV(LOW,60))+100;
VAR1A:=((CLOSE-LLV(LOW,15))/(HHV(HIGH,15)-LLV(LOW,15)))*(100);
VAR1B:=SMA((SMA(VAR1A,4,1)-50)*(2),3,1);
VAR1C:=((INDEXC-LLV(INDEXL,14))/(HHV(INDEXH,14)-LLV(INDEXL,14)))*(100);
VAR1D:=SMA(VAR1C,4,1);
VAR1E:=SMA(VAR1D,3,1);
VAR1F:=((HHV(HIGH,30)-CLOSE)/(CLOSE))*(100);
VAR20:=(VAR18<=25) AND (VAR19<(-95)) AND (VAR1F>20) AND (VAR1B<(-30)) AND (VAR1E<30) AND (VAR11-
CLOSE>=(-0.25)) AND (VAR15<22) AND (VAR16<28) AND (VAR17>50);
VAR21:=(HIGH+LOW+CLOSE)/(3);
VAR22:=(VAR21-MA(VAR21,14))/((0.015)*(AVEDEV(VAR21,14)));
VAR23:=(VAR21-MA(VAR21,70))/((0.015)*(AVEDEV(VAR21,70)));
VAR24:=IF((VAR22>=150) AND (VAR22<200) AND (VAR23>=150) AND (VAR23<200),10,0);
VAR25:=IF((VAR22<=(-150)) AND (VAR22>(-200)) AND (VAR23<=(-150)) AND (VAR23>(-200)),(-10),VAR24);
VAR20,Color0000FF,Linethick2;
CROSS(VAR20,0.5) AND (COUNT((VAR20=1),10)=1),Color00FFFF,Linethick2;}
VAR26:=((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27)))*(100);
{VAR27:=REVERSE(VAR26);}
VAR28:=SMA(VAR26,3,1);
快线:SMA(VAR28,3,1),Color0000FF;
慢线:SMA(快线,3,1),Color00FFFF;
金叉买:IF(CROSS(快线,慢线) AND (快线<40),35,0),Color0000FF,Linethick2;
这是一个经测试能通过的指标,那么公式还有问题吗?我们来分析一下就知道了。
第一步:打开指标编辑器,把指标源码复制粘贴到指标编辑器里,给指标随便取个名,点击测试通过,说明这个指标可用,没有不可识别的标示符,点击
确认,回到K线图上调出该指标,看图形的效果。
第二步:在图形上看到了两条线和一个脉冲信号,那么这两条线和脉冲信号都调用了哪些指标语句呢?从指标的最后一条语句逐条往上看,金叉买这条语
句调用了慢线和快线语句,慢线调用了快线语句,快线调用了VAR28语句,VAR28调用了VAR26语句,而VAR26往上没有调用任何语句,那么就可以认定这个指标是
由VAR26、VAR28、快线、慢线、金叉买这5条语句构成的一个指标,其它的全是无用的废语句。
第三步:为了验证自己的判断是否正确,用大括号{}将VAR26上面的语句至VAR2全部括起来,再把VAR27括起来,点测试通过,再点确认,验证一下图形,
效果如初,OK!
第四步:打开指标编辑器,把用大括弧括起的那部分(在指标编辑器里显示的是绿色[见下图])删除,点测试通过,确认,OK!
这是减肥后的指标:
VAR26:=((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27)))*(100);
VAR28:=SMA(VAR26,3,1);
快线:SMA(VAR28,3,1),Color0000FF;
慢线:SMA(快线,3,1),Color00FFFF;
金叉买:IF(CROSS(快线,慢线) AND (快线<40),35,0),Color0000FF,Linethick2;
再看这个指标:
{var2:=1/WINNER(CLOSE);}
var3:=MA(CLOSE,13);
var4:=100-ABS((CLOSE-var3)/var3*100);
{var5:=LLV(LOW,75);
var6:=HHV(HIGH,75);
var7:=(var6-var5)/100;
var8:=SMA((CLOSE-var5)/var7,20,1);
var9:=SMA((OPEN-var5)/var7,20,1);
varA:=3*var8-2*SMA(var8,15,1);
varB:=3*var9-2*SMA(var9,15,1);
varC:=100-varB;}
动力线: MA(WINNER(CLOSE*0.95)*100,3),LINETHICK2 ;
{varD:=动力线>var4;
varE:=REF(LOW,1)*0.9;
varF:=LOW*0.9;
var10:=(varF*VOL+varE*(CAPITAL-VOL))/CAPITAL;
var11:=EMA(var10,30);
var12:=CLOSE-REF(CLOSE,1);
var13:=MAX(var12,0);
var14:=ABS(var12);
var15:=SMA(var13,7,1)/SMA(var14,7,1)*100;
var16:=SMA(var13,13,1)/SMA(var14,13,1)*100;
var17:=BARSCOUNT(CLOSE);
var18:=SMA(MAX(var12,0),6,1)/SMA(ABS(var12),6,1)*100;
var19:=(-200)*(HHV(HIGH,60)-CLOSE)/(HHV(HIGH,60)-LLV(LOW,60))+100;
var1A:=(CLOSE-LLV(LOW,15))/(HHV(HIGH,15)-LLV(LOW,15))*100;
var1B:=SMA((SMA(var1A,4,1)-50)*2,3,1);
var1C:=(INDEXC-LLV(INDEXL,14))/(HHV(INDEXH,14)-LLV(INDEXL,14))*100;
var1D:=SMA(var1C,4,1);
var1E:=SMA(var1D,3,1);
var1F:=(HHV(HIGH,30)-CLOSE)/CLOSE*100;
var20:=var18<=25 AND var19<-95 AND var1F>20 AND var1B<-30 AND var1E<30 AND var11-CLOSE>=-0.25 AND var15<22 AND var16<28 AND var17>50;
var21:=(HIGH+LOW+CLOSE)/3;
var22:=(var21-MA(var21,14))/(0.015*AVEDEV(var21,14));
var23:=(var21-MA(var21,70))/(0.015*AVEDEV(var21,70));
var24:=IF(var22>=150 AND var22<200 AND var23>=150 AND var23<200,10,0);
var25:=IF(var22<=-150 AND var22>-200 AND var23<=-150 AND var23>-200,-10,var24);}
var26:=(CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100;
{var27:=REVERSE(var26);}
var28:=SMA(var26,3,1);
短线: SMA(var28,3,1),linethick2,COLORFF00FF;
鱼身: SMA(短线,3,1),linethick2,COLORWHITE;
买入信号: IF(CROSS(短线,鱼身) AND 短线<40 AND C>O,35,0),linethick2,COLORRED;
卖出信号: IF(CROSS(鱼身,短线) AND 鱼身>75,70,100),linethick2,COLOR00DD00;
这也是一个经测试能通过的指标,看看它有没有废语句。
第一步:打开指标编辑器,把指标源码复制粘贴到指标编辑器里,给指标随便取个名,点击测试通过,说明这个指标可用,没有不可识别的标示符,点击
确认,回到K线图上调出该指标,看图形的效果。
第二步:在图形上看到了三条线和两个脉冲信号,那么这三条线和两个脉冲信号都调用了那些指标语句呢?先从动力线这条语句逐条往上看,动力线这条
语句调用了VAR3和VAR4语句,VARC--VAR5和VAR2没有调用,用大括弧{}括起来,点击测试能通过,说明动力线以下那部分的语句也没有调用。接下来再看短线、
鱼身、买入信号、卖出信号调用了哪些语句,卖出信号和买入信号调用了短线、鱼身语句,鱼身调用了短线语句,短线语句调用了VAR28,VAR28调用了VAR26,而
VAR26往上没有调用任何语句,那么就可以认定这个指标是由VAR3、VAR4、动力线、VAR26、VAR28、短线、快线、慢线、鱼身、买入信号和卖出信号金叉买这9条
语句构成的一个指标,其它的全是无用的废语句。
第三步:为了验证自己的判断是否正确,用大括号{}将VAR27和VAR25--VARD全部括起来,点测试通过,再点确认,验证一下图形,效果如初,OK!
第四步:打开指标编辑器,把用大括弧括起的那部分(在指标编辑器里显示的是绿色)删除,点测试通过,确认,OK!
这是减肥后的指标:
var3:=MA(CLOSE,13);
var4:=100-ABS((CLOSE-var3)/var3*100);
动力线: MA(WINNER(CLOSE*0.95)*100,3),LINETHICK2 ;
var26:=(CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100;
var28:=SMA(var26,3,1);
短线: SMA(var28,3,1),linethick2,COLORFF00FF;
鱼身: SMA(短线,3,1),linethick2,COLORWHITE;
买入信号: IF(CROSS(短线,鱼身) AND 短线<40 AND C>O,35,0),linethick2,COLORRED;
卖出信号: IF(CROSS(鱼身,短线) AND 鱼身>75,70,100),linethick2,COLOR00DD00;
要点:给指标减肥要掌握这样一个要点,首先要找在图上能显示线条、柱形线,脉冲信号、图形等语句引用了哪些其它语句,没引用的就是废语句。把这
两个指标的图形比较一下,你发现了什么?是不是在某些地方有相同之处。
解除时间限制法
时间限制是一种加密的方法,其原理是在指标中加入时间函数,把时间设定在一定的使用范围内,当超过设定的时间之后,指标图形中的线条和有关信号
消失或失真,造成指标不能继续使用。用时间限制加密的形式有多种,仅举以下三种例子加以说明解除的方法:请看这个主图指标:
{ M(1,30,5) WARN(1,40,10)}
Var1:=1040301;
Var2:=1040901;
Var3:=IF(DATE>Var1,IF(CLOSE<80,1,0),0);
Var4:=IF(DATE>Var2,1,Var3);
Var5:=(EMA(LOW,M)+EMA(CLOSE,M*2)+EMA(CLOSE,M*6)+EMA(HIGH,M*3))/4*(1+WARN/200);
Var6:=(EMA(HIGH,M)+EMA(OPEN,M*2)+EMA(OPEN,M*6)+EMA(LOW,M*3))/4*(1-WARN/200);
多空线: IF(var4=1,OPEN,EMA((Var5+Var6)/2,M)), ;
高: IF(var4=1,CLOSE,Var5-(Var5-多空线)/10), ;
低: IF(var4=1,(OPEN+CLOSE)/2,Var6+(多空线-Var6)/10),;
顶: IF(var4=1,HIGH,Var5*(1+WARN/200)),;
底: IF(var4=1,LOW,Var6*(1-WARN/200)), ;
股价重心: (EMA(CLOSE,M)+EMA(OPEN,M))/2, ;
IF(OPEN<低,高,多空线), ;
这是一个时间加密的主图指标,VAR3和VAR4引用了VAR1和VAR2的具体时间,限制在2004年3月1日前可正常使用,超过这个时间就不能正常使用了,而且把
时间限制嵌套在其它语句中,给解除时间限制带来一定的难度。
对于这类加密指标,可以不必大改,只要把VAR1的1040301(2004年3月1日)改为1540301(2054年3月1日),把VAR2的1040901(2004年9月1日)改为
10540901(2054年9月1日)即可,也就是延长50年的使用期限。就是你常用这个指标,50年也就足够用的了。
解除时间限制后的指标:
{ M(1,30,5) WARN(1,40,10)}
Var1:=1050301;
Var2:=1050901;
Var3:=IF(DATE>Var1,IF(CLOSE<80,1,0),0);
Var4:=IF(DATE>Var2,1,Var3);
Var5:=(EMA(LOW,M)+EMA(CLOSE,M*2)+EMA(CLOSE,M*6)+EMA(HIGH,M*3))/4*(1+WARN/200);
Var6:=(EMA(HIGH,M)+EMA(OPEN,M*2)+EMA(OPEN,M*6)+EMA(LOW,M*3))/4*(1-WARN/200);
多空线: IF(var4=1,OPEN,EMA((Var5+Var6)/2,M)), ;
高: IF(var4=1,CLOSE,Var5-(Var5-多空线)/10), ;
低: IF(var4=1,(OPEN+CLOSE)/2,Var6+(多空线-Var6)/10),;
顶: IF(var4=1,HIGH,Var5*(1+WARN/200));
底: IF(var4=1,LOW,Var6*(1-WARN/200));
股价重心: (EMA(CLOSE,M)+EMA(OPEN,M))/2;
IF(OPEN<低,高,多空线);
再看这个副图指标:
Var1:=IF(DATE<=1040701,1,0);
Var2:=DMA(CLOSE,HIGH/MA(LOW,4)/4);
Var3:=DMA(CLOSE,CLOSE/MA(LOW,30)/30);
Var4:=(LOW-Var2)/Var2*100<-5.889;
Var5:=(Var2-Var3)/Var3*100<-15.889;
Var6:=Var4 AND Var5 AND (HIGH-MA(LOW,3))/REF(LOW,2)>-0.059;
Var7:=Var6>0;
Var8:=AMOUNT/VOL/100;
Var9:=(3*HIGH+LOW+OPEN+2*CLOSE)/7;
VarA:=SUM(AMOUNT,13)/Var8/100;
VarB:=DMA(Var9,VOL/VarA);
VarC:=MA(HHV(HIGH,488),18);
VarD:=MA(HHV(HIGH,220),18);
VarE:=MA(HHV(HIGH,98),18);
VarF:=MA(LLV(LOW,488),18);
Var10:=MA(LLV(LOW,220),18);
Var11:=MA(LLV(LOW,98),18);
Var12:=MA((VarF*0.96+Var10*0.96+Var11*0.96+VarC*0.558+VarD*0.558+VarE*0.558)/6,18);
Var13:=MA((VarF*1.25+Var10*1.23+Var11*1.2+VarC*0.55+VarD*0.55+VarE*0.65)/6,18);
Var14:=MA((VarF*1.3+Var10*1.3+Var11*1.3+VarC*0.68+VarD*0.68+VarE*0.68)/6,18);
Var15:=MA((Var12*3+Var13*2+Var14)/6*1.738,18);
Var16:=IF(DATE<=1021231,Var15,Var15*DAY);
Var17:=LOW;
Var18:=REF(LOW,1);
Var19:=SMA(ABS(Var17-Var18),3,1)/SMA(MAX(Var17-Var18,0),3,1)*100;
Var1A:=MA(IF(CLOSE*1.35{<=Var16},Var19*10,Var19/10),3);
Var1B:=LLV(LOW,30);
Var1C:=HHV(Var1A,30);
Var1D:=IF(LOW<=Var1B,(Var1A+Var1C*2)/2,0);
Var1E:=MA(Var1D AND CLOSEVar1F:=MA(CLOSE,5);
Var20:=MA(CLOSE,10);
Var21:=MA(CLOSE,20);
Var22:=MA(CLOSE,30);
Var23:=(Var1F+Var20+Var21+Var22)/4;
Var24:=(Var23-REF(Var23,15))/REF(Var23,15)*100;
Var25:=IF(Var24<-10 AND Var24买入: Var7*Var1 AND Var1E*Var1 AND Var25*Var1 AND (CLOSE-OPEN)*Var1>0,linethick2 , colorred;
这个指标中的VAR1、VAR16和买入这3条语句引用了时间限制函数,限制在2004年7月1日前可正常使用,超过这个时间就不能正常使用了。解除时间限制的
方法比较简单,只要把VAR1和VAR16这2条语句删除,再把Var1A语句中的<=Var16和买入语句中的*VA1删除就完全解除了时间限制。
最后在看一个指标:
Var1:=IF(DATE<1030830 AND DATE>900101,1,0);
Var2:=LLV(LOW,10);
Var3:=HHV(HIGH,25);
警戒线:=2.8*Var1;
减仓线:=3.2*Var1;
动力线:=EMA((CLOSE-Var2)/(Var3-Var2)*4,4)*Var1;
VAR4:CROSS(动力线,警戒线);
STICKLINE(VAR4,0,50,4,0);
DRAWICON(CROSS(动力线,警戒线),53,2);
这个指标中的VAR1引用了时间限制函数,限制在2003年8月30日前可正常使用,超过这个时间就不能正常使用了。解除时间限制的方法比较简单,只要把
VAR1这条语句删除,再把语句中的*VAR1删除就完全解除了时间限制。
以上例举了3个解除时间限制的方法,不论采取哪一种都能解除时间限制,哪个方便就采取哪个。试着改一改吧!
填补法
顶底背离:0,COLORYELLOW;
A1:=BARSLAST(ref(cross("macd.diff","macd.dea"),1));
B1:=ref(c,A1+1)>c and ref("macd.diff",A1+1)<"macd.diff" and cross("macd.diff","macd.dea");
MACD底背离:STICKLINE(FILTER(B1>0,5),0,0.75,3,0),COLORGREEN;
DRAWTEXT(FILTER(B1>0,5),0.57,'MACD底背离'),COLORGREEN;
A2:=BARSLAST(ref(cross("kdj.k","kdj.d"),1));
B2:=ref(c,A2+1)>c and ref("kdj.k",A2+1)<"kdj.k" and cross("kdj.k","kdj.d");
KDJ底背离:STICKLINE(FILTER(B2>0,5),0,1,3,0),COLORYELLOW;
DRAWTEXT(FILTER(B2>0,5),0.80,'KDJ底背离'),COLORYELLOW;
A3:=BARSLAST(ref(cross("RSI.RSI1","RSI.RSI2"),1));
B3:=ref(c,A3+1)>c and ref("RSI.RSI1",A3+1)<"RSI.RSI1" and cross("RSI.RSI1","RSI.RSI2");
RSI底背离:STICKLINE(FILTER(B3>0,5),0,0.5,3,0),COLORCYAN;
DRAWTEXT(FILTER(B3>0,5),0.25,'RSI底背离'),COLORCYAN;
2,COLORRED;
C1:=BARSLAST(ref(cross("macd.dea","macd.diff"),1));
D1:=ref(c,C1+1)"macd.diff" and cross("macd.dea","macd.diff");
MACD顶背离:STICKLINE(FILTER(D1>0,5),2,1.25,3,0),COLOR0066FF;
DRAWTEXT(FILTER(D1>0,5),1.47,'MACD顶背离'),COLOR0066FF;
C2:=BARSLAST(ref(cross("kdj.d","kdj.k"),1));
D2:=ref(c,C2+1)"kdj.k" and cross("kdj.d","kdj.k");
KDJ顶背离:STICKLINE(FILTER(D2>0,5),2,1,3,0),COLORRED;
DRAWTEXT(FILTER(D2>0,5),1.2,'KDJ顶背离'),COLORRED;
C3:=BARSLAST(ref(cross("RSI.RSI2","RSI.RSI1"),1));
D3:=ref(c,C3+1)"RSI.RSI1" and cross("RSI.RSI2","RSI.RSI1");
RSI顶背离:STICKLINE(FILTER(D3>0,5),2,1.5,3,0),COLORMAGENTA;
DRAWTEXT(FILTER(D3>0,5),1.75,'RSI顶背离'),COLORMAGENTA;
这是一个飞狐格式的指标,如果要改成大智慧格式的指标,需要做如下修改:
第一步:打开指标编辑器,把指标源码复制粘贴到指标编辑器里,给指标随便取个名或输入原指标的名字,点击测试,提示没有定义的标示符,如图。
第二步:用鼠标点确定,在编辑器里显示兰色条处有colorcyan这个颜色代码大智慧不能识别(在飞狐指标中该颜色代码是青色),把它改成能识别的粉
色代码colorffcc66,用鼠标点测试,此时又提示没有定义的标示符,用鼠标点确定,在编辑器里显示兰色条处还有colorcyan这个颜色代码大智慧不能识别(在
飞狐指标中该颜色代码是青色),把它改成能识别的青色代码colorffcc66,用鼠标点测试,同样还是有colorcyan这个颜色代码大智慧不能识别,改成青色代码
colorffcc66,用鼠标点测试,用同样方法找到两处COLORMAGENTA这个颜色代码大智慧不能识别(在飞狐指标中该颜色代码是粉色),把它改成能识别的粉色代码
colorff00ff,用鼠标点测试,提示引用指标或函数参数错误,点确定,显示兰色条的语句有错误,通过对源码的分析,公式中引入的传统指标如MACD、KDJ、RSI
都没有参数,所以提示引用指标或函数参数错误。把所有的带有类似("macd.diff","macd.dea")格式的都加上参数即可,如:
("macd.diff"(12,26,9),"macd.dea"(12,26,9)),其它的依次类推。最后测试通过.
修改后的指标:
顶底背离: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),COLORGREEN;
DRAWTEXT(FILTER(B1>0,5),0.57,'MACD底背离'),COLORGREEN;
A2:=BARSLAST(ref(cross("kdj.k"(9,9,3),"kdj.d"(9,9,3)),1));
B2:=ref(c,A2+1)>c and ref("kdj.k"(9,9,3),A2+1)<"kdj.k"(9,9,3) and cross("kdj.k"(9,9,3),"kdj.d"(9,9,3));
KDJ底背离:STICKLINE(FILTER(B2>0,5),0,1,3,0),COLORYELLOW;
DRAWTEXT(FILTER(B2>0,5),0.80,'KDJ底背离'),COLORYELLOW;
A3:=BARSLAST(ref(cross("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24)),1));
B3:=ref(c,A3+1)>c and ref("RSI.RSI1"(6,12,24),A3+1)<"RSI.RSI1"(6,12,24) and cross("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24));
RSI底背离:STICKLINE(FILTER(B3>0,5),0,0.5,3,0),COLORffcc66;
DRAWTEXT(FILTER(B3>0,5),0.25,'RSI底背离'),COLORffcc66;
2,COLORRED;
C1:=BARSLAST(ref(cross("macd.dea"(12,26,9),"macd.diff"(12,26,9)),1));
D1:=ref(c,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;
DRAWTEXT(FILTER(D1>0,5),1.47,'MACD顶背离'),COLOR0066FF;
C2:=BARSLAST(ref(cross("kdj.d"(9,9,3),"kdj.k"(9,9,3)),1));
D2:=ref(c,C2+1)"kdj.k"(9,9,3) and cross("kdj.d"(9,9,3),"kdj.k"(9,9,3));
KDJ顶背离:STICKLINE(FILTER(D2>0,5),2,1,3,0),COLORRED;
DRAWTEXT(FILTER(D2>0,5),1.2,'KDJ顶背离'),COLORRED;
C3:=BARSLAST(ref(cross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24)),1));
D3:=ref(c,C3+1)"RSI.RSI1"(6,12,24) and cross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24));
RSI顶背离:STICKLINE(FILTER(D3>0,5),2,1.5,3,0),COLORff00ff;
DRAWTEXT(FILTER(D3>0,5),1.75,'RSI顶背离'),COLORff00ff;
排查验证法
有时候我们在改指标时一时很难找到错误点,这时就需要有耐心,还要寻找一些小窍门,用其它办法达到自己的目的,这个小窍门就是用好大括号{  }。
请看下面的指标,
Var1:=RANGE(CLOSE,999999,1000000000);
Var2:=FILTER(CLOSE>OPEN,5);
Var3:=COUNT(CLOSE>OPEN,20);
Var4:=COUNT(CLOSEVar5:=IF(Var3>Var4,CLOSE,HIGH);
Var6:=EMA(Var5,13);
Var7:=EMA(Var5,60);
Var8:=(Var6-Var7)*10;
飞龙:MA(Var8,5);
火龙:MA(Var8,13);
龙行天下:MA(Var8,34);
神龙:IF( CROSS( 飞龙,火龙) AND 龙行天下<0,飞龙,0);
STICKLINE(Var8>=0,Var8,Var8+1,6,0),colorred;
STICKLINE(Var8<=0,Var8,Var8-1,6,0),colorgreen;
STICKLINE(Var8>=0 AND Var8STICKLINE(Var8<=0 AND Var8>REF(Var8,1),Var8,Var8-1,6,0),colorgreen;
Var9:=LONGCROSS(Var1,Var4,10);
海面:0, POINTDOT;
天空:5, POINTDOT;
海底:-5, POINTDOT;
VarA:COUNT(Var9,10)=1;
第一步:打开指标编辑器,把指标源码复制粘贴到指标编辑器里,给指标随便取个名,点击测试通过,说明这个指标可用,没有不可识别的标示符,点击
确认,回到K线图上调出该指标,看图形的效果。
第二步:在图形中提示《中间代码有错误(6)》,见图,说明该公式中的某条语句的代码有错误。
第三步:打开指标编辑器,用鼠标双击该指标进行修改.
仔细分析问题究竟出在什么地方。通过对源码的分析,首先应该是只有输出符的语句有错误,也就是有冒号的语句。在这个指标里面飞龙、火龙、龙行天
下、神龙、VARA这5条有输出符的语句,其中最值得怀疑的是VARA这个语句,为什么呢?因为VARA用到了COUNT统计函数,并且引用了VAR9语句,而VAR9又用到了
LONGCROSS维持交叉函数,在飞狐可以通过,在大智慧就可能认为有错误,所以不能正常显示。好了,把VarA:COUNT(Var9,10)=1;用大括号{}括起来。鼠标点测试
公式,再点确认。
显示正常,验证了问题出在VARA上,然后把VARA和VAR9这两条语句删除即可,到此修改结束。
小窍门:遇到此类问题,可一一用大括号{}把带有冒号的有输出符的语句括起来逐一排查,直到查出问题所在的语句为止。下面是修改好的指标:
Var1:=RANGE(CLOSE,999999,1000000000);
Var2:=FILTER(CLOSE>OPEN,5);
Var3:=COUNT(CLOSE>OPEN,20);
Var4:=COUNT(CLOSEVar5:=IF(Var3>Var4,CLOSE,HIGH);
Var6:=EMA(Var5,13);
Var7:=EMA(Var5,60);
Var8:=(Var6-Var7)*10;
飞龙:MA(Var8,5);
火龙:MA(Var8,13);
龙行天下:MA(Var8,34);
神龙:IF( CROSS( 飞龙,火龙) AND 龙行天下<0,飞龙,0);
STICKLINE(Var8>=0,Var8,Var8+1,6,0),colorred;
STICKLINE(Var8<=0,Var8,Var8-1,6,0),colorgreen;
STICKLINE(Var8>=0 AND Var8STICKLINE(Var8<=0 AND Var8>REF(Var8,1),Var8,Var8-1,6,0),colorgreen;
海面:0, POINTDOT;
天空:5, POINTDOT;
海底:-5, POINTDOT;