大智慧、飞狐、分析家、通达信、钱龙、麒麟公式编辑教程大全

我们大多数的用户并不是完全了解“公式编辑器”的意义,简单地,我们可以从以下几个角度进行理解:
一、指标分析:
“公式编辑器”好比是一个工作母床,通过这个工作母床可以制造出所需要的各式各样的零件,同样,在指标分析的工作中,利用编辑器可以编写出相应的分析条件,这种方法是在技术分析当中最为常用的方法之一。例如,指标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);
跳空:
跳空亦有向上和向下两种:
当日开盘在昨日最高之上,即为向上跳空: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天内的最小值
好了!第十课我们也讲完了,我们来回顾一下我们的课程,做一个最后的总结!
事实上,编写公式并不是一件很难的事情!他并不是为编写复杂的公式而在编写公式,恰如孔乙己会写四种回字又有何意义?重要的是您要深刻地理解某一点、某一处--没有人可以全部了解这个市场,可是也很少有人能够潜下心来去想清楚一个问题。
在编写公式的时候,大家一定体会到了,由于计算机的使用给我们带来了巨大的方便,可使计算机并不是完全智能化的,所以它只是一个工具,还有着许多的重要的工作需要人去完成,您千万不能放弃了自己而去迷信一个工具,可能它是您的帮手,但目前来说,无法替代您!您的投资还得由您去做!

编写公式的基础知识

公式教程

  目前大多数证券分析软件都具有指标分析和条件选股的功能,但只有用户可以自己编制算法公式的系统才是真正实用的,因为:

  许多软件的指标和选股功能是黑箱操作,也就是说,其内部算法是不公开的。这样用户并不知道其指标和选股到底是如何运作的、可*性有多高、前提条件是什么,因而也难以决定是否采用指标或选股的结果。这样的指标和选股只有宣传上的意义而没有任何实际意义。

  许多软件的选股功能都不够强大和灵活。例如有些软件的条件选股功能只能让用户按照特定的模式进行设定,适用面很窄。

  公式系统类似于一种编程语言,用户可以数学公式的形式实现任何自己期望的技术指标和选股条件等。可编制的公式可以完全公开算法,用户可以自行分析、评价和修改,做到心中有数。

公式系统的作用是什么呢?公式系统其实就是对一系列随时间变化的原始数据组序列进行代数和逻辑计算。为什么是数据组序列呢?因为每一个时间周期(即相邻两组数据间的时间间隔)都包含了一组原始数据,如开高低收量额,公式系统能对其中的任何原始数据进行操作。使用者定义出如何对原始数据进行处理得到一个新的数据,公式系统读出原始数据并按要求计算出使用者定制的数据,并以曲线、图形、指示等形式显示出来。

  公式系统可以编辑四种类型的公式,分别是技术指标、交易系统、条件选股和五彩K线公式。技术指标公式是最基本的公式,它用于指标图形的绘制。技术指标公式结合选股条件逻辑判断表达式,即得到条件选股公式,用于条件选股。技术指标公式结合买卖逻辑判断表达式,得到交易系统公式,用于交易系统指示。技术指标公式结合色彩逻辑判断表达式,即得到K线模式公式,用于描述特定的K线模式。公式的编辑在公式编辑器中完成。

  公式系统处理的原始数据的分析周期(即相邻两组数据间的时间间隔)可以从1分钟到1000天间的任意值,也可以是分笔成交数据,我们用鼠标把一个公式拖到某只证券的某个周期的图形分析窗口,则该公式处理这个周期的原始数据,如开高低收量额,改变分析窗口显示的分析周期,则公式处理新的分析周期的数据。

   公式系统对数据的运算是基于一系列函数,函数中除ZIG之字转向函数类和BACKSET函数外,其余函数均满足时间不变性,即时间*后的数据不对时间*前的结果产生影响。

公式设定步骤

  1.设定公式名称:每个公式都有自己的名称,它由字母或数字组成,最多可以有9个字符。请注意,公式名称在同类公式中不能重复。

  2.描述公式:用于简单描述该公式的含义,若输入,则在公式列表中会显示这段文字。

  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为流通股本。

创新高
  创新高指当日最高价是最近一段时间的最高价:
    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日均线}
ccaa-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{显示} 希望各位指标爱好者自己动手进行配色修改,这样才会记得
牢,学得透,不断探索,不断前进。一花开放不是春,万紫千红春满园。


大智慧指标函数及走势形态特征指标
大智慧指标系统分为四部分:
技术指标
是通过大智慧的函数及条件所编制的在K线图的主、副图显示图形的源码。
2、条件选股指标
  是通过大智慧的函数及条件所编制的、可供选股功能进行选股的源码
3、交易系统指标
是通过大智慧的函数及条件所编制的在主图K线图上显示买卖红绿箭头的源码。
4、五彩K线指标
是通过大智慧的函数及条件所编制的、在主图K线上用红色显示的反转、下跌、上涨等K线模式的源码。
大智慧的函数共分十大类:
行情函数
名  称 用 法 举 例 解  释
ADVANCE 上涨家数 ADVANCE 本函数仅对大盘有效。
AMOUNT 成交额 AMOUNT 取得该周期成交额。
ASKPRICE 委卖价 ASKPRICE(N),N取1――3(本函数仅个股在分笔成交分析周期有效。 取得委卖1――委卖3价格。
ASKVOL 委卖量 ASKVOL(N),N取1――3(本函数仅个股在分笔成交分析周期有效。 取得委卖1――委卖3量。
BIDPRICE 委买价 BIDPRICE(N),N取1――3(本函数仅个股在分笔成交分析周期有效。 取得委买1――委买3量。
BIDVOL 委买量 BIDVOL(N),N取1――3(本函数仅个股在分笔成交分析周期有效。 取得委买1――委买3量。
CLOSE 收盘价 CLOSE 取得该周期收盘价。
DECLINE 下跌家数 DECLINE(本函数仅对大盘有效)。 取得该周期下跌家数。
HIGH 最高价 HIGH 取得该最高价。
LOW 最低价 LOW 取得该周期最低价。
OPEN 开盘价 OPEN 取得该周期开盘价。
VOL 成交量 VOL 取得该周期成交量。

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

常用函数
名  称 用  法 注  意
(1)、CAPITAL 流通盘大小 CAPITAL,返回流通盘大小,单位为手。对于A股得到流通A股,B股得到B股总股本,指数为0。 该函数返回常数。
(2)、VOLUNIT 每手股数 VOLUNIT,返回每手股数。对于股票值为100,债券为10。 该函返回常数。
财务数据函数
FINANCE(N) ,N=1-37返回财务数据。
N 含 义 单位 N 含 义 单位 N 含 义 单位
1 总股本 万股 14 长期投资 千元 27 上年损益调整 千元
2 国家股 万股 15 流动负债 千元 28 利润总额 千元
3 发起法人股 万股 16 长期负债 千元 29 税后利润 千元
4 法人股 万股 17 资本公积金 千元 30 净利润 千元
5 B股 万股 18 每股公积金 千元 31 未分配利润 千元
6 H股 万股 19 股东权益 千元 32 每股未分配 元
7 流通A股 万股 20 主营收入 千元 33 每股收益 元
8 职工股 万股 21 主营利润 千元 34 每股净资产 元
9 A2转配股 万股 22 其他利润 千元 35 调每股净资 元
10 总资产 千元 23 营业利润 千元 36 股东权益比
11 流动资产 千元 24 投资收益 千元 37 净资收益率
12 固定资产 千元 25 补贴收入 千元
13 无形资产 千元 26 营业外收支 千元

时间函数
名 称 解  释
DATE 年月日 函数返回有效值范围为(700101-1341231),表示19700101-20341231,取得该周期从1900以来的年月日。
DAY 日期 函数返回有效值范围为(1-31),取得该周期的日期。
HOUR 小时 函数返回有效值范围为(0-23),对于日线及更长的分析周期值为0,取得该周期的小时数。
MINUTE 分钟 函数返回有效值范围为(0-59),对于日线及更长的分析周期值为0,取得该周期的分钟数。
MONTH 月份 函数返回有效值范围为(1-12),取得该周期的月份。
TEME 时分秒 函数返回有效值范围为(000000-235959),取得该周期的时分秒。
WEEK 星期 函数返回有效值范围为(0-6),0表示星期天,取得该周期的星期数。
YEAR 年份 函数返回有效值范围为(1970-2038),取得该周期的年份。


引用函数
名  称 解  释
BACKSET 向前赋值 将当前位置到若干周期前的数据设为1。 用法:BACKSET(X,N),X非0,则将当前位置到N周期前的数值设为1。 例如:BACKSET(CLOSE>OPEN,2),若收阳则将该周期及前一周期数值设为1,否则为0。
BARSCOUNT 有效值周期数 求总的周期数。 用法:BARSCOUNT(X),第一个有效数据到当前的天数。 例如:BARSCOUNT(CLOSE),对于日线数据取得上市以来总交易日数,对于分笔成交取得当日成交笔数,对于1分钟线取得当日交易分钟数。
BARSLAST 上一次条件成立位置 上一次条件成立到当前的周期数。 用法:BARXLAST(X),上一次X不为0到现在的天数。 例如:BARSLAST(CLOSE/REF(CLOSE,1)>=1,1),表示上一个涨停到当前的周期数。
BARSSINCE 第一个条件成立位置 第一个条件成立到当前的周期数。 用法:BARSSINCE(X),第一次X不为0到现在的天数。 例如:BARSSINCE(HIGH>10),表示股价超过10元时到当前的周期数。
COUNT 统计总数 统计满足条件的周期数。 用法:COUNT(X,N),统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。 例如:COUNT(CLOSE>OPEN,20),表示统计20周期内收阳的周期数。
DMA 动态移动平均 求动态移动平均。 用法:DMA(X,A),求X的动态移动平均。 算法:若Y=DMA(X,A)则Y=A*X+(1-A)*Y’,其中Y’表示上一周期Y值,A必须小于1。 例如:DMA(CLOSE,VOL/CAPITAL),表示求以换手率作平滑因子的平均价。
EMA 指数平滑移动平均 求指数平滑移动平均。 用法:EMA(X,N),求X 的N日指数平滑移动平均。 算法:若Y=EMA(X,N)则Y=[2*X+(N-1)*Y’]/(N+1),其中Y’表示上一周期Y值。 例如:EMA(CLOSE,30),表示求30日指数平滑均价。
FILTER 信号过滤 过滤连续出现的信号。 用法:FILTER(X,N),X满足条件后,删除其后N周期内的数据置为0。 例如:FILTER(CLOSE>OPEN,5),查找阳线,5天内再次出现的阳线不被记录在内。
HHV 最高值 求最高值。 用法:HHV(X,N),求N周期内X最高值,N=0则从第一个有效值开始。 例如:HHB(HIGH,30),表示求30日最高价。
LLV 最低值 求最低值。 用法:LLV(X,N),求N周期内X最低值,N=0则从第一个有效值开始。 例如:LLV(LOW,0),表示求历史最低价。
LLVBARS 上一低点位置 求上一低点到当前的周期数。 用法:LLVBARS(X,N),求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计。 例如:LLVBARS(HIGH,20),求得20日最低点到当前的周期数。
MA 简单移动平均 求简单移动平均。 用法:MA(X,N),求X的N日移动平均值。 算法:(X1+X2+X3+…+Xn)/N 例如:MA(CLOSE,10),表示求10日均价。
REF 向前引用 引用若干周期前的数据。 用法:REF(X,A),引用A周期前的X值。 例如:REF(CLOSE,1),表示上一周期的收盘价,在日线上就是昨收。
SMA 移动平均 求移动平均。 用法:SMA(X,N,M),求X的N日移动平均,M为权数。 算法:若Y=SMA(X,N,M)则Y=[M*X+(N-M)*Y’]/N,其中Y’表示上一周期Y值,N必须大于M。 例如:SMA(CLOSE,30,1),表示求30日移动平均价。
SUM 求和 求总和。 用法:SUM(X,N),统计N周期中X的总和,N=0则从第一人有效值开始。 例如:SUM(VOL,0),表示统计从上市第一天以来的成交量总和。
SUMBARS 累加到指定周期数 向前累加到指定值到现在的周期数。 用法:SUMBARS(X,A),将X向前累加直到大于等于A,返回这个区间的周期数。 例如:SUMBARS(VOL,CAPITAL),求完全换手到现在的周期数。

逻辑函数
名  称 解  释
IF 条件函数 根据条件求不同的值。 用法:IF(X,A,B)若X不为0则返回A,否则返回B。 例如:IF(CLOSE>OPEN,HIGH,LOW),表示该周期收阳则返回最高值,否则返回最低值。
ISDOWN 当日下跌 该周期是否收阴。 用法:ISDOWN当收盘<开盘时,返回值为1,否则为0。
ISEQUAL 当日平盘 该周期是否平盘。 用法:ISEQUAL当收盘=开盘时,返回值为1,否则为0。
ISUP 当日上涨 该周期是否收阳。 用法:ISUP当收盘>开盘时,返回值为1,否则为0。
CROSS 交*函数 CROSS(A,B) A:变量或常量,判断交*的第一条线。 B:变量或常量,判断交*的第二条线。 例如:CROSS(MA(CLOSE,5),MA(CLOSE,10)),5日均线与10日均线金*;CROSS(CLOSE,12),价格由下向上突破12元。
NOT 求逻辑非 NOT(X) 求逻辑非,返回非X,即当X=0时返回1,否则返回0。 例如:NOT(ISUP),是否平盘或收阴。

 


数学函数
名  称 解  释
ABS 绝对值 求绝对值。 用法:ABS(X)返回X的绝对值。 例如:ABS(-34)返回34。
BETWEEN 介于 介于两个数之间。 用法:BETWEEN(A,B,C),表示A处于B和C之间时返回1,否则返回0。 例如:BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5)),表示收盘价介于5日均线和10日均线之间。
CROSS 交*函数 两条线交*。 用法:CROSS(A,B)表示当A从下方向上穿过B时返回1,否则返回0。 例如:CROSS(MA(CLOSE,5,MA(CLOSE,10))表示5日均线与10日均线交金*。
LONGCROSS 维持交*函数 两条线维持一定周期后交*。 用法:LONGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0。 例如:LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5),表示5日均 线维持5周期后与10日均线金*。
MAX 最大值 求最大值。 用法:MAX(A,B)返回A和B 中的较大值。 例如:MAX(CLOSE-OPEN,0),表示若收盘价大于开盘价返回它们的差值,否则返回0。
MIN 最小值 求最小值。 用法:MIN(A,B)返回A和B中的较小值。 例如:MIN(CLOSE,OPEN),返回开盘价和收盘价中的较小值。
MOD 求模运算 求模运算。 用法:MOD(A,B)返回A对B求模。 例如:MOD(26,10)返回6。
NOT 求逻辑非 求逻辑非。 用法:MOT(X)返回非X,即当X=0时返回1,否则返回0。 例如:MOT(ISUP)表示平盘或收阴。
RANGE 范围 介于某个范围之间。 用法:RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0。 例如:RANGE(CLOSE,MA(CLOSE,5),MA(CLOSE,10))表示收盘价大于5日均线并且小于10日均线。
REVERSE 求相反数 求相反数。 用法:REVERSE(X)返回-X。 例如:REVERSE(CLOSE)返回-CLOSE。
SGN 符号值 求符号值。 用法:SGN(X),当X>0,X<0分别顺1,0,-1。
ACOS 反余弦值 用法:ACOS(X)返回X的反余弦值。
ASIN 反正弦值 用法:ASIN(X)返回X的反正弦值。
ATAN 反正切值 用法:ATAN(X)返回X的反正切值。
CEILING 向上舍入 向数值增大方向舍入。 用法:CEILING(A)返回沿A数值增大方向最接近的整数。 例如:CEILING(12.3)求得13,CEILING(-3.5)求得-3。
COS 余弦值 用法:COS(X)返回X的余弦值。
EXP 指数 用法:EXP(X)为e的X次幂。 例如:EXP(CLOSE)返回e的CLOSE次幂。
FLOOR 向下舍入 向数值减小方向舍入。 用法:FLOOR(A)返回沿A数值减小方向最接近的整数。 例如:FLOOR(12.3)求得12,FLOOR(-3.5)求得-4。
INTPART 取整 绝对值减小取整,即取得数据的整数部分。 用法:INTPART(A)返回沿A绝对值减小方向最接近的整数。 例如:INTPART(12.3)求得12,INTPART(-3.5)求得-3。
LN 自然对数 求自然对数。 用法:LN(X)以e为底的对数。 例如:LN(CLOSE)求收盘价的对数。
LOG 以10为底的对数 用法:LOG(X)取得X的对数。 例如:LOG(100)等于2。
POW 乘幂 用法:POW(A,B)返回A的B次幂。 例如:POW(CLOSE,3)求得收盘价的3次方。
SIN 正弦值 用法:SIN(X)返回X的正弦值。
SQRT 开平方 用法:SQRT(X)为X的平方根。 例如:SQRT(CLOSE)收盘价的平方根。
TAN 正切值 TAN(X)返回X 的正切值。

统计函数(下列函数算法略):
(1)、平均绝对偏差
   用法:AVEDET(X,N)
含义:平均绝对偏差,求X的N日平均绝对偏差。
(2)、数据偏差平方和
   用法:DEVSQ(X,N)
含义:数据偏差平方和,求X的N日数据偏差平方和。
(3)、线性回归预测值
   用法:FORCAST(X,N)为X的N周期线性回归预测值。
(4)、线性回归斜率
   用法:SLOPE(X,N)为X的N周期线性回归线的斜率。
   例如:SLOPE(CLOSE,10)表示求10周期线性回归线的斜率。
(5)、估算标准差
   用法:ATD(X,N)为X的N日估算标准差。
   例如:STD(CLOSE,10),求10周期收盘价的估算标准差。
(6)、总体标准差
   用法:STDP(X,N)为X的N日总体标准差。
(7)、估算样本方差
   用法:VAR(X,N)为X 的N日估算样本差。
(8)、总体样本方差
   用法:VARP(X,N)为X的N日总体样本方差。


指标函数
(1)、成本分布
   用法:COST(10),表示10%获利盘的价格是多少,即有10%的持仓量在该价格以下,其余90%在该价格以上为套牢盘,该函数仅对日线分析周期有效。
(2)、前M个波峰值――――――前M 个ZIG转向波峰值。
   用法:PEAK(K,N,M)表示之字转向ZIG(K,N)的前M个波峰的数值,M必须大于等于1。
   例如:PEAK(1,5,1)表示%5最高价ZIG转向的上一个波峰的数值。
(3)、前M个波峰位置――――――前M个ZIG转向波峰到当前距离。
   用法:PEAKBARS(K,N,M)表示之字转向ZIG(K,N)的前M个波峰到当前的周期,M必须大于等于1。
   例如:PEAKBARS(0,5,1)表示%5开盘价ZIG转向的上一个波峰到当前的周期数。
(4)、抛物转向
   用法:SAR(N,S,M0,N为计算周期,S为步长,M为极值。
   例如:SAR(10,2,20)表示计算10日抛物转向,步长为2%,极限值为20%。
(5)、抛物转向点
   用法:SARTURN(N,S,M),N为计算周期,S为步长,M为极值,若发生向上转向则返回1,若发生向下转向则返回-1,否则为0,其用法与SAR函数相同。
(6)、前M个波谷值――――――前M个ZIG转向波谷值。
   用法:TROUGH(K,N,M)表示之字转向ZIH(K,N)的前M个波谷的数值,M必须大于等于1。
   例如:TROUGH(2,5,2)表示%5最低价ZIG转向的前2个波谷的数值。
(7)、前M个波谷位置――――――前M个ZIG转向波谷到当前距离。
   用法:TROUGHBARS(K,N,M)表示之字转向ZIG(K,N)的前M个波谷到当前的周期数,M必须大于等于1,
   例如:TROUGHBARS(2,5,2)表示%5最低价ZIG转向的前2个波谷到当前的周期数。
(8)、获利盘比例
   用法:WINNER(CLOSE)表示以当前收市价卖出的获利盘比例。
   例如:返回0.1表示10%获利盘:WINNER(10.5)表示10.5元价格的获利盘。该函数仅对日线分析周期有效。
(9)、之字转向
   用法:ZIG(K,N),当价格变化量超过N%时转向,K表示0:开盘价,1:最高价,2:最低价,3:收盘价。
   例如:ZIG(3,5)表示收盘价的5%的ZIG转向。

绘图函数
(1)、画图标
   DRAWICON:在图形上绘制小图标。
   用法:DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标。
   图标代号:1(笑脸)、2(哭脸)、3
(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天新低之间画直线向右延长。
(3)、显示文字
   DRAWTEXT:在图形上显示文字。
   用法:DRAWTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置书写文字TEXT。
   例如:DRAWTEXT(CLOSE/REF(CLOSE,1)>1.08,LOW,’大阳线’)表示当日涨幅大于8%时在最低价位置显示“大阳线”字样,注意,显示的字要用英语状态下的单引号括起。
(4)、画折线
   POLYLINE:在图形上绘制折线段。
   用法:POLYLINE(COND,PRICE),当COND条件满足时,以PRICE位置为顶点画折线连接。
   例如:POLYLINE(HIGH>=HHV(HIGH,20),HIGH),表示在创20天新高点之间画折线。
(5)、画柱线
   STICKLINE:在图形上绘制柱线。
   用法:STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当COND条件满足时,在PRICE1和PRICE2位置之间画柱状线,宽度为WIDTH(10为标准间距 ),EMPTY不为0则画空心柱。
   例如:STICKLINE(CLOSE>OPEN,CLOSE,OPEN,8,1),表示画K线中阳线的空心柱。

大智慧的绘图参数:
STICK:在指标点和零线之间画柱线。
COLORSTICK:同上,并用不同颜色区分上涨、下跌。
LINESTICK:指标线和柱线都画。
VOLSTICK:收市价高于昨日的,画红色空心实体;否则画绿色实心实体。
CROSSDOT:“x"点状线。
Circledot:“0"点状线。
各种颜色表示:
红色colorred、灰色colorgray、绿色colorgreen、黄色coloryellow、蓝色colorblue、白色colorwhite.
另外颜色还有:
粉红colorf00ff0、草绿color00ff00、淡蓝colorf0f000、紫色colorff0099、金黄色color008364、紫红color000999、综色color0055ff、深黄色color00cccc、紫罗蓝colore66878、天蓝色colorff937f 深草绿color399c7f
实际上只要在color后面加上0-9、A-F中任6个数字字母组成,如要其它颜色,可自己调。

技术指标公式数据引用格式及注意事项。
所有的公式系统都 是遵守统一的运算法则,统一的格式进行函数之间的计算,所以我们掌握了技术指标公式的基本原理,其它公式也会出脱其外。
数据引用
(1)、数据来源
   公式 中的基本数据来源于接收的每日行情数据,这些数据有行情函数从数据库中按照一定的方式提取,例如,高开低收、成交量、成交额等。
(2)、数据类型
   按照公式使用的数据类型,系统可以处理的数据分为两类:变量和常量,所谓变量,就是一个随时间变化而变化的数据,例如,成交量、成交价等;常量就是一个永远不变的数据。
   例如计算收盘价均线MA(CLOSE,5),MA函数要求第一个参数为变量,而CLOSE函数返回的正是一个变量;MA函数要求的第二个参数是常量,5就是一个常量,所以人们就不能这样书写:MA(5,CLOSE)。
特殊数据引用
(1)、指标数据引用
   在编制公式过程中,有时需要使用另外一个指标的值,如果按照通常的做法,重新编制这个指标就显得很麻烦,因此很有必要学习使用如何调用别的指标公式。
   调用其他指标的基本格式:”指标.指标线”(参数)
指标与指标线之间用点“.”分开,一个指标不一定只有一条指标线,所以有必要在指标后标注指标线的名称,但是如果缺失则表示引用最后一条指标线。
参数在表达式的末尾,必须用括号括起来,参数之间用“,”号分开,通过参数设置可选择设定该指标的参数,如果参数缺失则表示使用该指标的默认参数设置(不过我在使用过程中发现,如不写参数,测试就通不过)。
整个表达式用引号引在其中,除参数以外。
例如:”MACD.DEF”(26,12,9)表示计算MACD指标的DEA指标线,计算参数为26、12、9,”MACD”(26,12,9)表示该指标的最后一条指标线,计算参数是26、12、9,”MACD”表示该指标的最后一条指标线,并且使用公式的默认参数。
(2)、其他股票数据引用
   使用以下的格式可以在当前的分析界面下引用大盘的数据或者其他个股的数据实现横向上的对比。
引用大盘数据
引用大盘数据时使用下列函数:INDEXC、INDEXV等等。
引用个股数据
引用个股数据时使用下列格式:”股票代码$数据”,在以上格式当中调用CLOSE、VOL、AMOUNT等等,例如,”Z000002$VOL”表示000002该股本周期的成交量。同时大盘也可视为一只个股来引用,例如,上证”H000001$CLOSE”表示为大盘本周期的收盘价,深市”Z399001$CLOSE”同样表法大盘本周期的收盘价。
(3)、注意事项
   在编公式中所运用的标点符号均是在英语状态下的符号。
   在编制公式中,有要显示的句子和不显示的句子,要显示用“:”不要显示用“:=”,
一个源码中最多只能有16个可显示的句子,并且每句结束后要加分号“;”。
另外,开盘价、收盘价、最高价、最低价,在公式中可用该函数的第一个字母代替。因此在编公式时不要单独用这几个字母,请要注意。

走势形态特征指标:为了满足大家选股的需要,这里主要介绍股票走势特征、形态特征指标的编制。
走势形态特征指标编制的基础。
(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<b;
(3)、K线的描述
阳线
close>open;
阴线
close<open;
高开
open>ref(close,1);
低开
open<ref(close,1);
跳空高开(high为最高价)
open>ref(high,1);
跳空低开(low为最低价)
open<ref(low,1);
走势特征选股公式的编制
(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;
注:公式分为股价小幅上扬和成交量小幅上扬两个部分,请在指标编写时注意其结构。

二、 交易系统
    交易系统是大智慧在条件选股功能上的一个大的延伸,旨在建立一套完整的交易规则体系,系统可以通过此平台对我们的买入、卖出等操作发出明确的买卖信号指示。
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 指标公式:均线通道
新建公式“均线通道”(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是不输出线型只输出数值命令,用于多指标不兼容坐标;


前M个ZIG转向波谷到当前距离。
用法:
TROUGHBARS(K,N,M)表示之字转向ZIG(K,N)的前M个波谷到当前的周期数,M必须大于等于1
例如:TROUGHBARS(3,15,1)表示15%收盘价ZIG转向的前1个波谷到当前的周期数


获利盘比例。
用法:
WINNER(CLOSE),表示以当前收市价卖出的获利盘比例,例如返回0.1表示10%获利盘;WINNER(10.5)表示10.5元价格的获利盘比例
该函数仅对日线分析周期有效


用法:
COST(10),表示10%获利盘的价格是多少,即有10%的持仓量在该价格以下,其余90%在该价格以上,为套牢盘

用法:
WINNER(CLOSE),表示以当前收市价卖出的获利盘比例,例如返回0.1表示10%获利盘;WINNER(10.5)表示10.5元价格的获利盘比例

1.指数平滑移动平均。
用法:
EMA(X,N),求X的N日指数平滑移动平均。
算法:若Y=EMA(X,N)
则Y=[(1/N) * X+(1-1/N) * Y''],其中Y''表示上一周期Y值。
例如:EMA(COST(10),30)表示求30日的10%获利盘的价格平滑均价

彩色背景KDJ:

STICKLINE(CLOSE>0,0,50,1000,0), colorgreen;
STICKLINE(CLOSE>0,50,100,1000,0), colorblue;
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:SMA(RSV,3,1),colorwhite;
D:SMA(K,3,1),coloryellow;
J:3*K-2*D,colorff00ff;

STICKLINE(CLOSE>0,0,50,1000,0), colorgreen;
STICKLINE(CLOSE>0,50,100,1000,0), colorblue;
谢谢你的回答能说一下这两句的意思吗?

 

当收盘价大于0时,从0至50画宽度为1000的绿色实心柱;
当收盘价大于0时,从50至100画宽度为1000的兰色实心柱;


均线强势
(m 1 100 3)
A1:=ma(close,10);
A2:=ma(close,20);
A3:=ma(close,30);
Count(a1>a2 and a2>a3,3)=3 AND (A3-REF(A3,1))/REF(A3,1)*1000>m AND MA(V/CAPITAL,5)>1/100


阳线同时穿越5,10,20日均线
o<ma(c,5) and o<ma(c,10) and o<ma(c,20) and c>ma(c,5) and c>ma(c,10) and c>ma(c,20)


10天内出现历史最高价,并且在出现最高价之后连续两个交易日收盘价高于该历史最高价
ref(h,2)=hhv(ref(h,2),0) and ref(c,1)>ref(h,2) and c>ref(h,2)

 

“高价区”就是在“高位震荡”,“低价区”就是在“低位徘徊”,“大跌”就是“暴跌”!

 

请填空:
“高价区”:从( 100)周期内的最低价上涨( 35)%后,在(5 )%区域内“高位震荡”(15)周期;
“低价区”:从( 100 )周期内的最高价下跌( 30 )%后,在(5 )%区域内“低位徘徊”(15 )周期;
“大跌”:在( 10 )周期下跌( 30 )%
公式:

“高价区”:
hhv(c,100)/llv(c,100)>1.35 and hhv(c,15)=hhv(c,100) and hhv(c,15)/llv(c,15)<1.05

“低价区”:
llv(c,100)/hhv(c,100)<0.7 and llv(c,15)=llv(c,100) and hhv(c,15)/llv(c,15)<1.05

“大跌”:
c/ref(c,10)<0.7

 

请问:
  kk1:=close/ref(close,1)>1.0999;
kk2:=vol<ma(vol,5);
kk1 and kk2,colorred  与

  kk1:=close/ref(close,1)>1.0999;
kk2:=vol<ma(vol,5);
backset(kk1,2) and kk2,colorred

有什麽区别???

 


10天内出现历史最高价,并且在出现最高价之后连续两个交易日收盘价高于该历史最高价,表示


aa:=h=hhv(h,0);
bb:=llv(c,2)>ref(hhv(h,0),2);
count(aa and bb,10)>=1

 

一个前一天是收中阴线的k线
x1:=OPEN>CLOSE AND
(OPEN-CLOSE)>EMA(ABS(CLOSE-OPEN),N) AND
(OPEN-CLOSE)<EMA(ABS(HIGH-LOW),N);

ref(x1,1)

前面已经有OPEN>CLOSE ,后面就不需要ABS了。


黄金分割指标
(n 1 250 120)
Var1:=LLV(LOW,N);
Var2:=HHV(HIGH,N);
Var3:=Var2-Var1;
H191: Var3*0.191+Var1;
H382: Var3*0.382+Var1;
H050: Var3*0.5+Var1;
H618: Var3*0.618+Var1;
H809: Var3*0.809+Var1;

 

《均线持续上行(多周期)》的选股公式的表达方式
(n1 1 100 10, n2 1 100 20, n3 1 100 30, n4 1 100 60, m 1 100 10)
m1:=ma(c,n1);
m2:=ma(c,n2);
m3:=ma(c,n3);
m4:=ma(c,n4);
aa:=m1>ref(m1,1) and m2>ref(m2,1) and m3>ref(m3,1) and m4>ref(m4,1);
count(aa,m)=m

 

怎么才能把aa:=TROUGHBARS(2,10,2);写成没有未来数据的如下:


本帖来源于:波金论坛http://jsxgw.5d6d.com/redirect.php?tid=1509&goto=lastpost

这个没有未来数据:

aa:=llv(l,15);
bb:=llv(ref(l,15),30);
dd:=aa<bb*1.03 and aa>bb*0.97 and v>hhv(ref(v,1),30)*0.75 and v<hhv(ref(v,1),30)*1.25;
DRAWICON(dd and FILTER(dd,5),LOW,1)

写成选股指标

aa:=llv(l,15);
bb:=llv(ref(l,15),30);
dd:=aa<bb*1.03 and aa>bb*0.97 and v>hhv(ref(v,1),30)*0.75 and v<hhv(ref(v,1),30)*1.25;
dd and FILTER(dd,5)


close/ref(close,4)>或<或=?


指标发出信号后,要求第10日再次发出信号,大智慧源码如何表示?谢先。
详细如图:
笑脸发出信号后,10再发出一次如第2图的光标地方。

举例如下
原公式:
aa:=llv(l,15);
bb:=llv(ref(l,15),30);
dd:=aa<bb*1.03 and aa>bb*0.97 and v>hhv(ref(v,1),30)*0.75 and v<hhv(ref(v,1),30)*1.25;

DRAWICON(dd and FILTER(dd,5),LOW,1)

改后:
aa:=llv(l,15);
bb:=llv(ref(l,15),30);
dd:=aa<bb*1.03 and aa>bb*0.97 and v>hhv(ref(v,1),30)*0.75 and v<hhv(ref(v,1),30)*1.25;

A:=dd and FILTER(dd,5);
DRAWICON(A OR REF(A,10),LOW,1)


原公式最后几句是这样:

cc:=ema(aa,21)/100*Var10;
一周后见底:if(h1=h2 and h1=h3 ,1,0);
DRAWICON(一周后见底,一周后见底,1);
DRAWTEXT(一周后见底,一周后见底-0.2,'10日后低吸'),coloryellow;
最好前一个提示“准备钱”,第二个信号提示“逢低买入”,不知这样想法能不能实现
cc:=ema(aa,21)/100*Var10;
jd:=h1=h2 and h1=h3;
一周后见底:if(jd ,1,0);
DRAWICON(jd,1,2);
DRAWTEXT(jd,0.8,'准备钱'),coloryellow;
DRAWICON(ref(jd,10),1,1);
DRAWTEXT(ref(jd,10),0.8,'逢低买入'),colorgreen;

posted on 2009-06-27 07:20  chuncn  阅读(10970)  评论(1编辑  收藏  举报

导航