[转载]如何编写通达信指标公式 (二)
[转载]如何编写通达信指标公式 (二)原文地址:如何编写通达信指标公式 (二) 作者:谁染林醉
QUOTE:如何编写公式,如何看懂公式 大智慧、飞狐、分析家、通达信、钱龙、麒麟公式编辑教程大全《公式编辑入门》什么是技术指标?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,另外一条叫YCROSS(X,Y)表示X向上穿过了YCROSS(Y,X)表示Y向上穿过了X例三:前面的CLOSE,还是VOL,都表示当天,或者您使用的不是日线,那就表示本周期的数据,那么前几天的怎么表示呢?REF(X,M)例如:REF(Close,5)表示5天前的收盘;REF(Vol,10)表示10天前的成交量;这里的M就是参数,您现在明白了什么是参数了吗?例四:如果我想把两个条件并列在一起怎么办?ANDX 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.0999X:=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 andb、今日的阴线实体较长,我们用开盘价和收盘价相比,长度大于4%:a1/a2>1.04;5、昨日K线的特征,是一根十字形态的K线,并且在左右两根K线之上,分别表达为:a、昨日跳开,高于前天的收盘: bb:=b1>c3b、昨日收盘同样在缺口之上: and b2>c3c、线形实体长度很小,也就是昨日开盘和收盘之差比昨日开盘的值小于0.01:and abs(b1-b2)/b1<0.01d、K线有上下影线,可以表示为最高价和最低价不等于收盘价也不等于开盘价:and b3>b1 and b3>b2 and b4<b1 and b4<b2e、当日的最高价为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天内的最小值? ?好了!入门课程讲完了,我们来回顾一下我们的课程,做一个最后的总结!事实上,编写公式并不是一件很难的事情!他并不是为编写复杂的公式而在编写公式,恰如孔乙己会写四种回字又有何意义?重要的是您要深刻地理解某一点、某一处--没有人可以全部了解这个市场,可是也很少有人能够潜下心来去想清楚一个问题。在编写公式的时候,大家一定体会到了,由于计算机的使用给我们带来了巨大的方便,可使计算机并不是完全智能化的,所以它只是一个工具,还有着许多的重要的工作需要人去完成,您千万不能放弃了自己而去迷信一个工具,可能它是您的帮手,但目前来说,无法替代您!您的投资还得由您去做! 公式读书??量能决定趋势 由于目前市场上的优质上市公司有限,供求关系决定着投资者的盈亏。这样大盘与个股的历史量能、即时量能、潜在量能与市场机会的多寡有着直接关系。一般情况下,大盘的成交量能大机会就多,大盘的成交量能小机会就少,上述情况均与大盘的涨跌无关。 个股的量能决定趋势运行的可靠性,主要公式有: (1)、量能大 涨得多=继续大涨(适合强势中买进使用) 使用该公式时,注意强势中量比、量能、涨幅榜与开收盘用。 (2)、量能大 涨得少=注意反转(适合强势中卖出使用) 使用该公式时,注意K线的高低位与应用公式。 (3)、量能小 涨得多=注意反转(适合弱势中卖出使用) 使用该公式时,注意与庄股斗法。 (4)、量能小 涨得少=继续小涨(适合盘整势中买进使用) 使用该公式时,注意K线的低位庄股。 (5)、量能大 跌得多=继续大跌(适合弱势中卖出使用) 每年年底这种股票比较多。 (6)、量能大 跌得少=注意反转(适合弱势中买进使用) 使用该公式时,注意K线的高低位与逻辑公式。 (7)、量能小 跌得少=继续小跌(适合弱势中换股使用) 使用该公式时,注意目标股是否减仓。 (8)、量能小 跌得多=注意反转(适合弱势中买进使用) 这种情况是弱势中的天赐良机。 第一步 慨念公式化 上述讲座中提到的名词有: 量能:成交量 函数:vol; 趋势:股价走势 [公式短语]趋势:=100*(close-ref(close,n))/ref(close,n); 强势:趋势向上 [公式短语]趋势>0; 量能大:区间换手率大 [公式短语]sum(hsl,n)>2*n; 量比:今日量与前五日均量之比 [公式短语]100*vol/ma(vol,5); 涨得多:涨幅高 [公式短语] 100*(close-ref(close,n))/ref(close,n)>=1.5*n; "量能大 涨得多=继续大涨" :[公式短语] 继续大涨:=sum(hsl,n)>=3*n and 100*(close-ref(close,n))/ref(close,n)>=3*n; "量能大 涨得少=注意反转":[公式短语] 注意反转:=sum(hsl,n)>=3*n and 100*(close-ref(close,n))/ref(close,n)
<=n; "量能小 涨得多=注意反转":[公式短语] 注意反转:=sum(hsl,n)=3*n; "量能小 涨得少=继续小涨":[公式短语] 继续小涨:=sum(hsl,n)
<=0.5*n and 100*(close-ref(close,n))/ref(close,n)<=n; "量能大 跌得多=继续大跌":[公式短语] 继续大跌:=sum(hsl,n)>=3*n and 100*(close-ref(close,n))/ref(close,n)>=-3*n; "量能大 跌得少=注意反转":[公式短语] 注意反转:=sum(hsl,n)>=3*n and -n
<100*(close-ref(close,n)) /ref(close,n)<0; "量能小 跌得少=继续小跌":[公式短语] 继续小跌:=m(hsl,n)
<=0.5*n and -n<100*(close-ref(close,n))/ref(close,n)<0; "量能小 跌得多=注意反转":[公式短语] 注意反转:=sum(hsl,n)
<=0.5*n and 100*(close-ref(close,n))/ref(close,n)<=-3*n;第二步 公式图形化 量能动力 公式 量能:SUM(HSL,N),NODRAW; 涨幅: 100*(CLOSE-REF(CLOSE,N))/REF(CLOSE,N),NODRAW; STICKLINE(HSL
<=1,HSL,0,1,1),COLORBROWN; STICKLINE(HSL>1 AND HSL
<3,HSL,0,1,0),COLORLIBLUE; STICKLINE(HSL>=3,HSL,0,1,0),COLORMAGENTA; 继续大涨: DRAWTEXT(量能>3*N AND 涨幅>3*N,HSL,'继续大涨'),COLORRED; 继续小涨: DRAWTEXT(量能
<0.5*N AND 涨幅
<-3*N,HSL,'继续大跌'),COLORCYAN; 注意反转: DRAWTEXT(((量能>3*N AND 涨幅
<0) OR (量能<0.5*N AND 涨幅<-3*N)),HSL,'注意反转'),COLORBLUE;财务指标的写法!【市净率】:CLOSE/FINANCE(35),NODRAW;【市盈率】:CLOSE/(FINANCE(30)/FINANCE(1)/10000),NODRAW;【换手率】:HSX,VOLSTICK; 【净收益率】:FINANCE(30)/FINANCE(1)/100/FINANCE(34),NODRAW; 【流通盘】:FINANCE(7),NODRAW,NODRAW; 【净资产】:FINANCE(34),NODRAW; 【每股收益】:FINANCE(30)/FINANCE(1)/10000,NODRAW;均线函数说明 简单移动平均:MA(X,N)=(X1 X2 X3 ... Xn)/N异同移动平均:EMA(X,N),EXPMA(X,N):EMA=(2*X (N-1)*EMA)/(N 1)平滑移动平均:MEMA(X,N):EMA=MA(X,N),MEMA=(X (N-1)*MEMA)/N;加权平滑平均:EXPMEMA(X,N):EXPMEMA=MA(X,N),EXPMEMA=(2*X (N-1)*EXPMEMA)/(N 1)累积平均:SMA(X,N,P):SMA=(P*X (N-P)*SMA)/N 帮您捕捉即将狂奔的黑马创新高 创新高指当日最高价是最近一段时间的最高价: 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
昨收,返回成交量(手),否则返回(如果收盘价
<昨收,返回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
open;阴线close
ref(high,1);跳空低开(low为最低价)open
=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:=close
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
=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)=ref(hhv(h,n),1) and barscount(c)>n;注:前n日在上下n1%的幅度内整理:ref(((hhv(h,n)-llv(l,n))/llv(l,n))/llv(l,n)),1)
<=(n1 /100);今日突破:c>=ref(hhv(h,n),1)。(25)阶段强势股 a:=sum(if(date-n=0,indexc,0),0);? ? b:=sum(if(date-n1=0,indexc,0)0);? ? e:=sum(if(date-n=0,c,0),0);? ? f:=sum(if(date-n1=0,c,0),0);? ? ((f-e)/e)>((b-a)/a);注:该公式求的是n日-n1日之间涨幅高于大盘的股票。n、n1参数的表达格式为yymmdd,注意在2000年前的表达为年份的后两位,例如1999年为99,从2000年开始以100依次向后累加,例如2001年9月14日为1010914,indexc函数表示同期大盘的收盘价,该函数对分笔成交分析周期无效。(26)阶段弱势股 a:=sum(if(date=n,indexc,0),0);? ? b:=sum(if(date=n1,indexc,0)0);? ? e:=sum(if(date=n,c,0),0);? ? f:=sum(if(date=n1,c,0),0);? ? ((f-e)/e)
<((b-a) /a);注:该公式求的是n日-n1日之间涨幅低于大盘的股票。n、n1参数的表达格式为yymmdd,注意在2000年前的表达为年份的后两位,例如1999年为99,从2000年开始以100依次向后累加,例如2001年9月14日为1010914,indexc函数表示同期大盘的收盘价,该函数对分笔成交分析周期无效。(27)大盘同步 count((c>o and indexc>indexo) or (c
<0.95? ? 第二天呈裂口下跌,K线实体较短,构成星的主体部分,阴线或阳线均可,有无上下影线均不重要。 ref(open,1)
1.05 and close>ref(close,2)(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
<0.02 and close/open<0.97 and close1.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 closeref(ma2,1);注:前三句是三根均线,p1是第一根均线减第二根均线差的绝对值与第二根均线减第三根均线差的绝对值之和,最后一句是p1与收盘价的比值小于一定比率m%(一般该比率为2%以下,同时前二均线今日比昨日上翘。 ================================QUOTE:将公式改为选股公式的简易方法(老手不用看)大家好,有鉴于大家时常要将公式改为选股公式,故特将大家常碰到的问题写成此帖,希望对大家有所帮助.【将公式改为选股公式的简易方法 】飞狐.分析家.大智慧1.大智慧L2.通达信{同花顺因个人电脑关系,无法顺利启动,麻烦有研究的高手补充,谢谢!}步骤一.将所有的显示式":",改为不显示式":="选股条件的基本要求,为只能输出1个条件式,故需先将公式中所有的显示式":"改为不显示式":=",如果原来显示式后面接有线型描述(颜色.对齐..等),亦请一并删除(有些软件不支援 如:分析家)例如:ma1:ma(c,5),colorred;ma2:ma(c,10),colorgreen,POINTDOT;.....先改为ma1:=ma(c,5);ma2:=ma(c,10);.....步骤二.找出选股条件,并写成选股式引用:条件的寻找方法,依不同目的,大致可分以下几种:1.'字'选股? ???如:'买'选股方法:先找出公式中出现有'字'的地方,该式开头会以DRAW..TEXT开头,DRAWTEXT??DRAWTEXTEX??DRAWYITEXT DRAWFLAGTEXT DRAWMOVETEXT找到后,该函数(条件, ,'字')后面括号内的第1个即为条件,将该条件复制出来并加上分号即可例如:{求'5日均>10日均'选股}ma1:=ma(c,5);ma2:=ma(c,10);DRAWTEXT(ma1>ma2,ma1,'5日均>10日均');[解]ma1:=ma(c,5);ma2:=ma(c,10);ma1>ma2;2.图标选股? ???如:笑脸选股方法:先依不同软件,找出该图标的代号,再找出公式中出现DRAWICON函数(条件,? ?,图标代号)的式子,对照图标的代号(括号内的第3个),如果该图标代号为所求代号,该函数后面括号内的第1个即为条件,将该条件复制出来并加上分号即可例如:{求图标1选股}ma1:=ma(c,5);ma2:=ma(c,10);DRAWicon(ma1>ma2,ma1,1);[解]ma1:=ma(c,5);ma2:=ma(c,10);ma1>ma2;3.A线上穿(下穿)B线选股??{上穿--金叉,下穿--死叉}方法:A线上穿B线:??cross(A,B);? ???A线下穿B线:??cross(B,A);例如:{求ma1上穿ma2选股}ma1:ma(c,5);ma2:ma(c,10);[解] ma1:=ma(c,5);ma2:=ma(c,10);cross(ma1,ma2);{求ma1下穿ma2选股}ma1:ma(c,5);ma2:ma(c,10);[解] ma1:=ma(c,5);ma2:=ma(c,10);cross(ma2,ma1);4.线A上拐(下拐) 选股??方法:线A上拐:??cross(A,ma(A,2));? ? 或??cross(A,ref(A,1));{aduo提供}? ???线A下拐:??cross(ma(A,2),A);? ? 或??cross(ref(A,1),A);{aduo提供}例如:{求改成ma1上拐}ma1:ma(c,5);[解]ma1:=ma(c,5);cross(ma1,ma(ma1,2));或ma1:=ma(c,5);cross(ma1,ref(ma1,1));{求改成ma1下拐}ma1:ma(c,5);[解]ma1:=ma(c,5);cross(ma(ma1,2),ma1);或??ma1:=ma(c,5);cross(ref(ma1,1),ma1);5.第1次出现条件A 选股方法:先找出条件A,? ???再利用cross(A,0.5);例如:{求改成第1次出现图标1选股}ma1:=ma(c,5);ma2:=ma(c,10);DRAWicon(ma1>ma2,ma1,1);[解1]ma1:=ma(c,5);ma2:=ma(c,10);A:=ma1>ma2;cross(A,0.5); [解2--直接将条件A写入]ma1:=ma(c,5);ma2:=ma(c,10);cross(ma1>ma2,0.5); 6.线变色选股? ?如:黄线变红色选股 (指标线为黄线,再利用函数变红色线)方法:先依不同软件,找出条件A,? ???再用cross(A,0.5);(1)飞狐条件在PARTLINE(条件A, ),colorred;括号内的第1个即为条件,将该条件复制出来并加上分号即可例如:{求黄线变红色选股??飞狐}ma1:ma(c,5),coloryellow;PARTLINE(ma1>REF(ma1,1),ma1),colorred;[解]ma1:=ma(c,5);A:=ma1>REF(ma1,1);cross(A,0.5);(2)大智慧L2.分析家条件在PARTLINE(??,条件A,rgb(255,0,0),??, ...);括号内为rgb(255,0,0)的前1个即为条件,将该条件复制出来并加上分号即可例如:{求黄线变红色选股??大智慧L2.分析家}ma1:=ma(c,5);PARTLINE(ma1,ma1>REF(ma1,1),rgb(255,0,0),1,rgb(255,255,0));[解]ma1:=ma(c,5);A:=ma1>REF(ma1,1);cross(A,0.5);(3)通达信条件在IF(条件A,? ?,DRAWNULL),colorred;括号内的第1个即为条件,将该条件复制出来并加上分号即可例如:{求黄线变红色选股??通达信}MA1:MA(C,5),COLORYELLOW;IF(MA1>REF(MA1,1),MA1,DRAWNULL),COLORRED;[解]<
页:
[1]