分享

通达信指标公式编写教程汇总

 百智堂53 2023-12-21 发布于山东

一、新手起步

为什么要学编写通达信指标公式

新手起步:通达信怎么编写指标公式以及通达信公式的使用方法

通达信指标公式编写基础(一)

通达信指标公式编写基础(二)

通达信指标公式编写常用函数(一)——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,公众号:技术Pie新手起步:通达信怎么编写指标公式以及通达信公式的使用方法

关注技术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函数简介


1、HHV函数
含义:求最高值
使用方法: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为例,公式代码如下:


CXG:H=HHV(H,60);

创新高,按照正常理解,应该是新的高点大于60日内的高点,但是这里为什么是等于呢?

遇到这种问题时,如果不能理解,有个简单的笨方法,就是把公式写出来,加载到主图上,看看到底是什么样子的。


HH:HHV(H,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。


A4:=H=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)。以红色箭头处的最高点为例,红色圆圈那里的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;

图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多