一、新手起步
为什么要学编写通达信指标公式 新手起步:通达信怎么编写指标公式以及通达信公式的使用方法 通达信指标公式编写基础(一) 通达信指标公式编写基础(二)
通达信指标公式编写常用函数(一)——REF、MA、EMA、CROSS 通达信指标公式编写常用函数(二)——HHV、LLV 通达信指标公式编写常用函数(三)——HHVBARS、LLVBARS 通达信指标公式编写常用函数(四)——EVERY、COUNT 通达信指标公式编写常用函数(五)——BARSLAST 通达信指标公式编写常用函数(六)——SUM、IF 通达信指标公式编写常用函数(七)——SUMBARS以及MACD底背离 通达信指标公式编写常用函数(八)——MAX、MIN、BETWEEN、ABS 通达信板块函数INSUM、BLOCKSETNUM简介以及应用 三、通达信画图相关函数 通达信指标公式绘图函数简介——自定义指标颜色、线型等 通达信指标公式常用绘图函数(1)——DRAWNULL、NODRAW、PLOYLINE、DRAWSL
通达信指标公式常用绘图函数(2)——DRAWLINE、DRAWKLINE、STICKLINE 通达信指标公式常用绘图函数(3)——DRAWICON、DRAWTEXT、DRAWNUMBER 通达信指标公式常用绘图函数(4)——颜色、线形粗细、线型等修饰函数 通达信指标公式编写基础(一) 原创 技术Pie 技术Pie 2022-11-16 14:38 发表于江苏 内容提要:本文主要介绍了通达信指标公式的语句构成以及指标如何设置参数。
一、什么是通达信指标公式?公式就是编写的代码集合,至少包含一条语句,复杂一点的公式包含多条语句。一条语句在一般情况下主要包含四个部分,变量名、赋值符、语句内容、结束符。(为了方便理解,这四个部分的名称由我自行定义)
以5日均线为例,MA5:MA(C,5); 语句的四个部分如下图所示。
1、变量名
变量名不能以数字开头,也不能与函数名重复。 2、赋值符
赋值符一般有两种形式,冒号(:)、冒号加等号(:=)。 冒号:赋值,并且输出。输出的意思简单来说就是在看盘界面画出来,并且变量名和变量值会显示在窗口的左上角。此外也支持在指标代码中引用。 冒号加等号:赋值,不输出。也就是不会在看盘界面上显示出来,但可以在指标代码中引用。 以5日均线和10日均线举例,看一下具体的区别。
均线公式1: MA5:MA(C,5);MA10:MA(C,10); 公式1中,5日均线和10日均线的赋值符都是冒号(:),所以把指标加载到K线图上显示5日、10日两条均线,如下图所示。
均线公式2: MA5:MA(C,5);MA10:=MA(C,10); 公式2中,5日均线赋值符是冒号,10日均线的赋值符是冒号加等号(:=),所以指标加载到K线图上只显示只5日这一条均线,如下图所示。
3、语句内容
语句内容就是这个变量的计算公式,计算完成后将得到的结果赋给前面的变量名。 语句内容算是一条语句的核心,有的时候如果只需要写一条语句,前面的变量名和赋值符甚至可以不需要写。但是为了方便使用指标公式,建议还是全写吧,不要偷懒了。 4、结束符
一条语句以分号(;)结尾,如果没有分号,会报错。 注意:分号(;)是英文输入法下的分号,如果是输入法是中文,输入了中文分号,也是会报错的。此外公式中的冒号、逗号、括号,都是需要在英文输入法的状态下输入,如果不慎使用了中文符号,可以根据报错的语句进行排查。报错的情况如下图。根据技术Pie平时编写指标的经验,如果变量名是中文,这种错误还是比较常见的。
二、通达信指标公式设置参数参数:在通达信指标公式编辑器的代码编辑窗口上方,可以设置公式的参数。参数可以设置一个范围,方便后续调整。
如下图所示,MAJX:MA(C,N);就是一条MA均线,只是把原来指定的几日均线的数值换成了字母N,这个N就是参数。参数设置了最小值是1,最大值是100,缺省(也就是默认值)是5。意思很简单,就是N的取值范围是1到1000,默认是5,默认情况下这条均线是5日均线,最小可以改成1日均线,最大可以改成1000日均线。
调整指标参数:在看盘界面上加载指标之后,可以点击左上角的下拉按钮,选择“调整指标参数”。
另外也可以左键点击指标,选中了指标之后,点击鼠标右键,选择调整指标参数。
然后在弹出的窗口,把数字5改成想要的参数数值,改好之后点击关闭。如果想应用到所有周期,就点“应用到所有周期”。如果之后想恢复成在指标公式编辑器中设置的缺省值,可以点“恢复成缺省”。
这样通达信指标公式编写基础(一)就介绍完了,下一篇文章会介绍函数、数据等内容。指标公式编辑器上的其他内容这里不重复介绍,可以去看之前的文章。
通达信指标公式编写基础(二)原创 技术Pie 技术Pie 2022-11-17 18:10 发表于江苏 内容提要:本文主要介绍了通达信函数、函数的分类、函数的使用方法、数据的引用以及指标修饰函数。一、通达信函数简介在《为什么要学编写通达信指标公式》这篇文章中,已经介绍过通达信函数的特性,通达信的函数就像装配式建筑中的模块。 虽然不需要知道这个模块具体怎么造出来的,但是需要知道两点: 1、输入:造模块需要加什么料,是加入砖、水泥还是钢筋,以及加料的先后顺序。 2、输出:需要知道哪个是墙板,哪个是阳台,哪个是楼梯,知道这些模块的功能,会组装模块。 函数由函数名和参数构成,参数用括号括起来,参数的先后顺序不能写错。比如简单移动平均线MA(X,N);,MA就是函数名,X和N是参数。X可以设置为CLOSE、OPEN、HIGH、LOW等。N可以设置为5、10、20等具体的数值(常量),也可以在指标公式编辑器上设置为随时可以修改的参数。通过函数运算得到的结果输出,后续可以根据自己的需求使用。(如下图)
二、函数的分类通达信函数主要分为行情函数、财务函数、计算函数、交易函数、其他函数五大类。
三、如何使用函数打开通达信的“指标公式编辑器”,点击“插入函数”,就可以查看通达信的函数库,了解函数的具体使用方法。如果找不到函数,也可以通过“查找(F3)”功能搜索。
双击函数之后,就会插入到指标编辑窗口。
鼠标移动到函数上,就会显示函数的用法及用法举例。
四、数据的引用1、基础数据引用 获得该周期最低价:LOW(或者简写成L) 获得该周期最高价:HIGH(或者简写成H) 获得该周期开盘价:OPEN(或者简写成O) 获得该周期收盘价:CLOSE(或者简写成C) 获得该周期成交量:VOL(或者简写成V) 获得该周期成交额:AMOUNT(或者简写成AMO) 2、历史数据引用 引用N日前的X数据:REF(X,N); 举例: 获得5天前的收盘:REF(CLOSE,5); 获得5天前的成交量:REF(VOL,5); 3、指标数据引用 编写公式的时候可以引用指标的输出值,基本写法:指标名.变量名,比如MACD.DIF。 五、操作符操作符主要有三类:算数操作符、比较操作符、逻辑操作符,编写指标公式的时候经常用到。
另外注释符号花括号{}也常用。编写通达信指标公式时,有时候想在语句后面做备注,方便以后看懂语句的含义,可以使用注释符号。花括号{}之间的内容就注释掉了,不会影响公式。
六、指标修饰可以对指标的线型、粗细、颜色进行修饰。详细的函数可以查看“线型和资源等”。
通过两篇文章的介绍,应该可以掌握通达信编写指标公式基础的内容,为后面编写公式打下基础。 二、通达信指标公式设置参数参数:在通达信指标公式编辑器的代码编辑窗口上方,可以设置公式的参数。参数可以设置一个范围,方便后续调整。
如下图所示,MAJX:MA(C,N);就是一条MA均线,只是把原来指定的几日均线的数值换成了字母N,这个N就是参数。参数设置了最小值是1,最大值是100,缺省(也就是默认值)是5。意思很简单,就是N的取值范围是1到1000,默认是5,默认情况下这条均线是5日均线,最小可以改成1日均线,最大可以改成1000日均线。
调整指标参数:在看盘界面上加载指标之后,可以点击左上角的下拉按钮,选择“调整指标参数”。
另外也可以左键点击指标,选中了指标之后,点击鼠标右键,选择调整指标参数。
然后在弹出的窗口,把数字5改成想要的参数数值,改好之后点击关闭。如果想应用到所有周期,就点“应用到所有周期”。如果之后想恢复成在指标公式编辑器中设置的缺省值,可以点“恢复成缺省”。
这样通达信指标公式编写基础(一)就介绍完了,下一篇文章会介绍函数、数据等内容。指标公式编辑器上的其他内容这里不重复介绍,可以去看之前的文章。 新手起步:通达信怎么编写指标公式以及通达信公式的使用方法 关注技术Pie,学习更多通达信指标公式编写知识。
二、通达信常用函数
二、通达信常用函数 通达信指标公式编写常用函数(一)——REF、MA、EMA、CROSS原创 技术Pie 技术Pie 2022-11-18 12:39 发表于江苏 内容提要:本文主要介绍了编写通达信指标公式常用的函数REF、MA、EMA、CROSS以及这些函数的综合运用举例。 通达信的函数非常多,想全部熟练掌握,几乎是不可能的,而且没有必要,毕竟很多函数很少用到。 编写通达信指标公式常用的函数大概也就三四十个,对于这些函数,建议认真学习研究,多模仿练习,做到烂熟于心。打好基础很重要,如果没有打好基础,编写复杂一点的指标时,头脑可能一片空白。初期要知道函数的用法,并能在函数库中找到相应的函数。随着熟练程度逐渐提高,在编写指标时要做到直接手打函数。 对于不常用的函数,要学会使用函数库的查找功能,并借助搜索引擎,学习函数的使用方法。常用的函数方法掌握了,学习新的函数也不难。 一、通达信指标公式常用函数介绍在前文《通达信指标公式编写基础(二)》中,已经介绍了基础的行情函数LOW、HIGH、OPEN、CLOSE、VOL、AMOUNT,这几个函数比较简单,就不需要再介绍了。引用函数REF有必要再讲讲。 1、REF函数
含义:引用几个周期之前的数据 使用方法:REF(X,N),引用N个周期前的X值。 举例:涨停 ZT:C/REF(C,1)>1.095 AND C=H; REF(C,1),表示引用前一个交易日的收盘价; C/REF(C,1)>1.095,表示今天的收盘价除以前一个交易日的收盘价大于1.095,也就是说今天的涨幅大于9.5%; C=H,代表今天的收盘价和最高价相等,也就是说今天以最高价完成收盘; AND是并且的意思,也就是AND的前后两个条件要同时成立,连起来的意思是今天涨幅大于9.5%并且以最高价收盘。 这时候可能会有疑问,创业板、科创板涨跌幅限制是20%,这个公式就不适用了。确实如此,这里只是为了新手容易理解,把涨跌幅限制为10%。后面掌握了基础的函数,可以用INBLOCK函数做进一步优化。 2、MA函数 含义:简单移动平均 使用方法:MA(X,N),X的N日简单移动平均。 举例:MA5:MA(C,5),就是常见的5日均线,几乎所有的交易软件都会自带的。算法很简单,把最近的5个交易日的收盘价加起来,然后除以5,就得到了结果。至于为什么加载到K线图上会形成线,那是因为每个K线都会算一下,得到了结果,然后连起来,就成了均线。 3、EMA函数 含义:指数移动平均 这里的指数和上证指数中的指数并不是同一个意思,而是以指数式递减加权。 使用方法:EMA(X,N),X的N日指数移动平均。 举例:EMA12:EMA(C,12),为什么举12日EMA均线的例子,其实是因为MACD指标按照默认参数就是使用了EMA12、EMA26这两条EMA均线。EMA指数移动平均具体的算法就不说了,对于新手来说,看到复杂的计算公式,估计会晕倒。EMA的优势是提高了近期行情的权重,对行情反应更快,优化了MA简单移动平均反应慢的问题,能够更好的反映近期的行情走势。 4、CROSS函数 含义:两条线交叉 使用用法:CROSS(A,B),表示当A从下方向上穿过B时返回1,否则返回0 举例:5日均线、10日均线金叉,5日均线、10日均线死叉 MA5:=MA(CLOSE,5);MA10:=MA(CLOSE,10);JC:CROSS(MA5,MA10);SC:CROSS(MA10,MA5); MA5、MA10就不用介绍了,上面刚讲过 JC:CROSS(MA5,MA10);表示5日均线从下方向上穿过10日均线,也就是我们常说的金叉,金叉了返回的结果就是1,否则就是0。 死叉把MA5,MA10的前后位置换一下就行了,SC:CROSS(MA10,MA5);就代表死叉。 二、函数综合运用举例1、放量大涨 思路:放量大涨包含了2个基本条件,一个是放量,一个是大涨。 a、放量我定义为今天的成交量大于前一个交易日的成交量的两倍,如果你觉得两倍不够,可以三倍或者四倍,写指标是为你的交易思路服务的,可以自行定义。代码是V/REF(V,1)>2,代表今天的成交量除以前一个交易日的成交量大于2倍。这里的V是VOL(成交量)的缩写,写成V或者VOL都可以; b、大涨我定义为今天涨幅大于6%,代码是C/REF(C,1)>1.06,表示今天的收盘价除以前一个交易日的收盘价大于1.06,也就是涨幅大于6%; c、ab两个条件用AND(并且)连起来就是放量大涨。 代码如下: FLDZ:V/REF(V,1)>2 AND C/REF(C,1)>1.06; 加载到副图,效果如下图,最下方的三角锥就表示满足了我定义的放量大涨条件。(满足的时候值为1,不满足值为0) 2、MACD零轴之上金叉 思路:MACD零轴之上金叉包含了3个条件,MACD、零轴之上、金叉。 a、MACD金叉,其实并不是MACD的值与什么金叉,而是指的MACD指标中的快线(DIF)与慢线(DEA)金叉,所以要实现MACD金叉,需要把DIF和DEA写出来。这里就用MACD指标的默认参数12、26、9。 DIF:=EMA(C,12)-EMA(C,26);DEA:=EMA(DIF,9); b、零轴之上,就限定DIF>0,DEA>0 c、金叉,就用到上面介绍的CROSS,CROSS(DIF,DEA)就是金叉 代码如下: DIF:=EMA(C,12)-EMA(C,26);DEA:=EMA(DIF,9);LZZSJC:DIF>0 AND DEA>0 AND CROSS(DIF,DEA); 把指标加载到副图,效果如下图,三角锥就表示满足了快线慢线零轴之上金叉。(满足的时候值为1,不满足值为0) 通达信指标公式编写常用函数(二)——HHV、LLV原创 技术Pie 技术Pie 2022-11-21 14:48 发表于江苏 内容提要:本文主要介绍了编写通达信指标公式需要用到的HHV函数、LLV函数以及函数的应用举例,并结合前面讲过的函数进行综合运用。一、HHV、LLV函数简介使用方法:HHV(X,N),表示N个周期内X的最高值举例:HH:HHV(H,60);表示60个周期内最高价的最高值,有点拗口,以日线为例简单来说,就是60日最高价。2、LLV函数 含义:求最低值 使用方法:LLV(X,N),表示N个周期内X的最低值 举例:LL:LLV(L,60);表示60个周期内最低价的最低值,以日线为例,就是60日最低价。 通达信软件自带的KDJ指标就用到了HHV函数、LLV函数。
二、HHV函数应用举例HHV函数有个常用的用法就是创新高(创新低就用LLV函数,写法类似),以N=60为例,公式代码如下:创新高,按照正常理解,应该是新的高点大于60日内的高点,但是这里为什么是等于呢? 遇到这种问题时,如果不能理解,有个简单的笨方法,就是把公式写出来,加载到主图上,看看到底是什么样子的。
以日线为例,以上公式就代表60日的最高价的最高值(60日最高价)。把指标加载到K线图上,输出的HH(60日最高价)就是下图中的白线。
上图红色箭头处,大阳线创了新高。这根大阳线的最高价是H,此时白线HH也发生了变动,仔细看一下,可以发现H是等于HH的。其实也很好理解,这根大阳线创了60日新高,此时这根大阳线的最高价就是60日内最高价的最高值(60日最高价),这就是公式中写等于的原因。 三、通达信指标公式函数综合运用举例横盘放量突破 思路:横盘放量突破包含3个基本条件,横盘、放量、突破
a、横盘:经常看盘可以发现,如何行情横盘震荡,不同周期的均线会缠绕粘合。写横盘公式的时候就利用这个特征。首先我们要限制区间幅度,毕竟震荡区间的顶部和底部不会很宽,不然也没有意义。我这里就把60日内的最高价和最低价的区间幅度设置为30%,代码可以写成A1:=(HHV(H,60)-LLV(L,60))/LLV(L,60)<0.3;,但是这样会遇到一个问题,有些V型反转的行情也会满足这个条件,但是V型反转却不符合横盘震荡。所以我们引入MA60均线,以MA60均线为基准,如果最高价和最低价能分布在MA60均线的两侧一定范围内,就可以尽可能找到横盘震荡这样的形态。以下代码A1表示60日之内的最高价与MA60均线的幅度,A2表示MA60均线与60日之内的最低价的幅度。后面可以对这个幅度进行限制。 MA60:=MA(C,60);HH:=HHV(H,60);LL:=LLV(L,60);A1:=(HH-MA60)/MA60;A2:=(MA60-LL)/MA60; b、放量在前一篇文章《通达信指标公式编写常用函数(一)》中已经提及已经提及,但是这里做一点改变,如果只是大于前一个交易日的交易量,有时候并不是那么精确,因为一天的成交量随机性比较大,有时候成交量可能很小,所以用5日均量MA(V,5)。 MAV5:=MA(V,5);A3:=V/REF(MAV5,1); c、突破,我这里就定义为突破60日的最高价,60日最高价就是前面代码中的HH。 组合起来,代码如下: MA60:=MA(C,60);HH:=HHV(H,60);LL:=LLV(L,60);A1:=(HH-MA60)/MA60;A2:=(MA60-LL)/MA60;MAV5:=MA(V,5);A3:=V/REF(MAV5,1);A4:=H=HH;HPFLTP:REF(A1,1)<0.15 AND REF(A2,1)<0.15 AND A3>2 AND A4;
加载到副图,如下图所示。加载到副图,只是为了方便展示。以上代码其实可以直接保存成选股指标,用来选股。
另外,为什么公式的最后一句A1、A2两个条件用了REF函数。我们想找出今天横盘放量突破的股票,肯定是想今天放量并且突破创了60日新高,所以A3、A4是今天要满足的。比如下图红色箭头处的K线,满足放量突破(A3、A4),但是不一定能满足横盘条件(A1、A2),如果公式中设定今天满足横盘条件(A1、A2),就可能选不出我们想要的形态。因此用REF,前一个交易日满足横盘条件就可以了。
最后说一句,选出的股票虽然不能全部满足自己的要求,但是这样大大减少了工作量,可以从选出的股票中做进一步的筛选,也可以根据上面的代码,加入更严格的限制条件,选出更符合自己要求的股票 通达信指标公式编写常用函数(三)——HHVBARS、LLVBARS原创 技术Pie 技术Pie 2022-11-22 17:57 发表于江苏 内容提要:本文主要介绍了HHVBARS函数、LLVBARS函数、函数的应用举例以及函数的综合运用。 HHVBARS这个函数名由HHV和BARS两部分组成,HHV是最高值,BARS是英文,翻译成中文就是K线的意思。从这个函数名就能看出来,HHVBARS函数和最高值对应的K线有关系。LLVBARS类似,在下面的文章中,主要以HHVBARS为主进行讲解。 在前一篇文章《通达信指标公式编写常用函数(二)》中讲过HHV(X,N),表示N个周期内X的最高值,但是从获得的结果并不能确定最高值对应的那根K线,而通过今天讲的HHVBARS,获得上一最高值到当前的周期数,就可以确定最高值对应的K线。 可能还有点迷糊,举一个更通俗的例子,比如60个人随机排队,HHV函数可以获得这60个人的最高身高是190cm,但是却不知道身高最高的人是谁。是小张、小王还是小李?通过HHVBARS函数可以获得身高最高的那个人的相对位置,就能确定是谁了。 一、HHVBARS、LLVBARS函数简介 1、HHVBARS含义:获得上一最高值到当前的周期数 使用用法:HHVBARS(X,N),获得N个周期内X最高值到当前的周期数 举例:HHVBARS(H,60),以日线为例,就是获得60日内最高点到当前的周期数 (在上一篇文章中,有粉丝提出最高价、最高值的区别,这里就用“最高点”来代替“最高价的最高值”这种比较拗口的说法。) 2、LLVBARS含义:获得上一最低值到当前的周期数 使用用法:LLVBARS(X,N),获得N个周期内X最低值到当前的周期数 举例:LLVBARS(L,60),以日线为例,就是获得60日内最低点到当前的周期数 二、HHVBARS函数应用举例函数可能比较抽象,不容易想明白,这时候就可以用笨方法,把语句代码保存成指标,加载到副图上看一下。
上图中,最下方的白线就是HHVBARS(H,60)。以红色箭头处的最高点为例,红色圆圈那里的HHVBARS(H,60)获得的就是最新一根K线到最高点那根K线的周期数(图上黄色区间)。 三、通达信指标公式函数综合运用举例 低位区域指标总体思路:从60日高点开始,下跌超过30% 先上代码: HH:=HHV(H,60);HB:=HHVBARS(H,60);LL:=LLV(L,HB+1);DWQY:(HH-LL)/HH>0.3; 代码详解: a、HH:=HHV(H,60);,这一句获得60日高点的值; b、HB:=HHVBARS(H,60);,获得60日高点距离当前的周期数(可以参考上面应用举例里的黄色区间); c、LL:=LLV(L,HB+1);,获得60日最高点到当前这个区间的最低点(可以参考上面应用举例里黄色区间的最低点); d、DWQY:(HH-LL)/HH>0.3;,下跌超过30%,返回结果为1,否则为0。
提醒一下,这个指标公式只是为了举例,并不建议大家抄底,逆势操作风险还是比较大的。 通达信指标公式编写常用函数(四)——EVERY、COUNT原创 技术Pie 技术Pie 2022-11-23 15:21 发表于江苏 内容提要:本文主要介绍了编写通达信指标公式会用到的EVERY函数、COUNT函数以及函数的应用举例。
一、函数简介1、EVERY函数含义:EVERY英文翻译成中文是“每个”的意思,在通达信编程语言中,EVERY函数的含义是“一直存在”。 使用用法:EVERY(X,N) ,表示N周期内一直存在X条件,X条件比较常见的情况是关系运算,比如A>B之类的。 举例:EVERY(C>O,3);,以日线为例,表示三连阳 再举一个稍微复杂一点的例子,EVERY(C>REF(C,1),3);,以日线为例,表示连涨3天。新手看到结构比较复杂的语句,可能会看不明白,可以先找到逗号(,),然后按照X、N的前后位置,按序区分。详解如下图。
其实在自己编写通达信指标公式的过程中,可以把一句代码写成两句,这样更清晰明了。 X:=C>REF(C,1);LZ:EVERY(X,3); 另外看指标公式编辑器下方的动态翻译,可以帮助了解公式语句的含义。(下图方框箭头处)
2、COUNT函数含义:COUNT英文翻译成中文就是“计数”的意思,在通达信编程语言中,COUNT函数的含义是“统计满足条件的周期数”。 使用方法:COUNT(X,N),统计N个周期中满足X条件的周期数 举例:COUNT(C>O,10);,以日线为例,表示统计10天中阳线的数量。 COUNT函数比EVERY函数更灵活,比如上面的例子EVERY(C>O,3);三连阳,可以用COUNT函数写出来,COUNT(C>O,3)=3;表示3天中有3天是阳线,也就是三连阳。 二、函数应用举例1、60日均线持续向上代码如下: MA60:=MA(C,60);A1:=MA60>REF(MA60,1);JXCXXS:EVERY(A1,10); 代码详解: a、MA60:=MA(C,60);,表示60日均线; b、A1:=MA60>REF(MA60,1);,表示今天60日均线的值大于昨天的,也就是说60日均线向上; c、JXCXXS:EVERY(A1,10);,表示10天一直满足A1条件,也就是说10天一直满足60日均线向上。
2、强势上涨代码如下: A1:=(HHV(H,10)-LLV(L,10))/LLV(L,10)>0.1;A2:=COUNT(C>O,10)>8;A3:=EVERY(MA(C,60)>REF(MA(C,60),1),10);QS:A1 AND A2 AND A3; 代码详解: a、A1:=(HHV(H,10)-LLV(L,10))/LLV(L,10)>0.1;,表示10日内低点到高点的幅度大于10%; b、A2:=COUNT(C>O,10)>8;,10天中有8天实阳线,这就是强势的特征; c、A3:=EVERY(MA(C,60)>REF(MA(C,60),1),10);,这一句眼熟吗?就是上面的例子“60日均线持续向上”,我把几句代码合成一句了,这一句用来过滤掉K线在60均线下方反弹的情况;d、QS:A1 AND A2 AND A3;,把A1、A2、A3三个条件用AND连起来,三个条件要同时成立。
今天介绍了EVERY函数、COUNT函数这两个函数,下一篇文章会介绍BARSLAST函数,并结合这几个函数编写一个比较实用的指标——MACD零轴之上首次金叉。 通达信指标公式编写常用函数(五)——BARSLAST原创 技术Pie 技术Pie 2022-11-24 14:42 发表于江苏 内容提要:本文主要介绍了编写通达信指标公式常用函数BARSLAST以及综合运用最近讲过的函数编写MACD零轴之上首次金叉选股公式。 一、BARSLAST函数简介含义:上一次条件成立到当前的周期数 使用方法:BARSLAST(X),上一次X条件成立到当前的周期数 举例:BARSLAST(CROSS(MA(C,20),MA(C,60)));,表示上一次20日均线60日均线金叉到当前的周期数
之前讲过的HHVBARS、LLVBARS以及今天讲的BARSLAST函数,都是用来获取周期数。 这种类型的函数有两种常见的应用场景: 1、根据获得的周期数,用REF函数返回去引用数据,比如上面的例子,获得了上一次20、60日金叉到现在的周期数,然后用REF往前引用,获取金叉那根K线对应的收盘价。 T:=BARSLAST(CROSS(MA(C,20),MA(C,60)));A1:REF(C,T); 2、根据获取的周期数确定了一个区间,在这个区间里找满足条件的。在之前的文章《通达信指标公式编写常用函数(三)》已经举过HHVBARS的例子,下面再举一个BARSLAST的例子,增加大家对函数应用场景的理解。 二、函数综合运用在平时看盘的过程中,应该能发现这样的情况,很多上涨行情并不是直挺挺地拉升一波就结束了,而是在上涨过程中也有回调,呈现波浪式上涨。怀着对大涨的美好期望,我们希望能选出调整结束之后再次拉升的股票,并且在再次拉升初期发现这只股票。比如下图。
在这个过程中,MACD指标也会有相应的变化(上图中副图为MACD指标)。随着行情的上涨,MACD指标的DIF(快线)、DEA(慢线)逐渐爬升到零轴上方,然后行情回调,DIF、DEA死叉并且开始向零轴附近回调。当行情再次拉升,DIF、DEA在零轴之上金叉,这时候可能就是好的机会。(当然我这里的设想都是比较理想化的情形,实际行情中会出现各种情况,并不如设想这么美好。) 基于以上设想,我们想找出DIF、DEA爬升到零轴之上以后,出现的第一次金叉。这样就涉及到以下几个条件: a、MACD指标的DIF、DEA DIF:=EMA(C,12)-EMA(C,26);DEA:=EMA(DIF,9); b、DIF、DEA上穿零轴以来(慢线DEA比快线DIF稳定,写公式就用DEA来写)。 CROSS(DEA,0)表示DEA上穿零轴,然后用BARSLAST取得DEA上穿零轴到现在的周期数。 T:=BARSLAST(CROSS(DEA,0)); c、DIF、DEA零轴之上第一次金叉 因为我们想选出今天DIF、DEA金叉的股票,所以今天要满足CROSS(DIF,DEA),另外还要保证是DEA上穿零轴以来的第一次金叉,所以用上一篇文章中讲到的COUNT函数,统计DEA上穿零轴以来的金叉次数等于1次。这个条件就涉及到我上面讲到的获取周期数函数的第二种用法,先获取到周期数,确定一个区间,在这个区间里找满足条件的。另外要加入限制条件DEA>0,才符合零轴之上金叉,不然有的股票不满足,也会被选出来。 A1:=CROSS(DIF,DEA);A2:=COUNT(A1,T)=1;A3:=DEA>0;
最后上公式 MACD零轴之上首次金叉(保存成条件选股公式就可以选股,保存成技术指标公式可以加载到副图) DIF:=EMA(C,12)-EMA(C,26);DEA:=EMA(DIF,9);T:=BARSLAST(CROSS(DEA,0));A1:=CROSS(DIF,DEA);A2:=COUNT(A1,T)=1;A3:=DEA>0;XG:A1 AND A2 AND A3;
|