1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 通达信指标公式编写常用函数(七)——SUMBARS以及MACD底背离

通达信指标公式编写常用函数(七)——SUMBARS以及MACD底背离

时间:2022-10-24 22:31:57

相关推荐

通达信指标公式编写常用函数(七)——SUMBARS以及MACD底背离

今天技术Pie给大家介绍通达信指标公式常用函数SUMBARS以及函数的应用,并且综合运用函数来编写MACD底背离。

一、SUMBARS函数简介

SUMBARS这个函数名由SUM和BARS两部分组成,SUM在前一篇文章《通达信指标公式编写常用函数(六)》中已经讲过,是统计总和的意思,BARS是我们的老朋友了,之前讲的HHVBARS、BARSLAST都是用来统计周期数,SUMBARS也不例外。

SUMBARS函数

含义:向前累加到指定值到现在的周期数

使用方法:SUMBARS(X,A),将X向前累加直到大于等于A,获得这个区间的周期数

二、SUMBARS函数应用举例

SUMBARS(X,A),当A=1的时候可以实现BARSLAST的功能,但是SUMBARS比BARSLAST的应用更广泛。

以MA5、MA10金叉为例,获得上一次金叉到现在的周期数

JC:=CROSS(MA(C,5),MA(C,10));{金叉}

A1:SUMBARS(JC,1)-1;{用SUMBARS获取周期数}

A2:BARSLAST(JC);{用BARSLAST获取周期数};

加载到副图,可以发现A1、A2重叠,也就是说上面两种方法获得的结果是一样的。

BARSLAST只能获取上一次条件成立到当前的周期数,但是如果要获取上上次条件成立到现在的周期数,BARSLAST就无能为力了。这时候SUMBARS就派上用场了。SUMBARS(X,A),A=2就能解决这个问题。

还是以5日、10日均线金叉为例,获取累计到两次金叉这个区间的周期数

JC:=CROSS(MA(C,5),MA(C,10));

A1:SUMBARS(JC,2);

文字理解有困难,直接看下图,1和12是金叉的位置,SUMBARS把这两根K线也算进去了,这样得到的这个区间的周期数是12。下图箭头处对应的白线A1的值就是12。

三、函数综合运用

MACD底背离

价格创新低,MACD指标的DIF不再创新低。

在出现MACD底背离之后,在DIF、DEA金叉的时候选出来。(效果如上图黄色箭头处)

说实话比较难,即使不是自己写,理解公式代码都有难度。

先上代码:

DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);

DEA:=EMA(DIF,9);

JC:=CROSS(DIF,DEA) AND DIF<0;

JT:=SUMBARS(JC,2);

SC:=CROSS(DEA,DIF);

ST:=BARSLAST(SC);

D1:=LLV(DIF,ST+1);

D2:=REF(D1,JT-1);

L1:=LLV(L,ST+1);

L2:=REF(L1,JT-1);

XG:JC AND L1<L2 AND D1>D2;

代码解释:

a、

DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);

DEA:=EMA(DIF,9);

这两句就不用多做解释,分别获得DIF(快线)、DEA(慢线)

b、

JC:=CROSS(DIF,DEA) AND DIF<0;

JT:=SUMBARS(JC,2);

JC表示零轴之下DIF、DEA金叉,JT表示获得零轴之下金叉两次这个区间的周期数

c、

SC:=CROSS(DEA,DIF);

ST:=BARSLAST(SC);

SC表示DIF、DEA死叉,ST表示上一次死叉到当前的周期数

d、

D1:=LLV(DIF,ST+1);

D2:=REF(D1,JT-1);

这两句有难度,先看下图吧。当前(最右边)这根K线对应的DIF、DEA是金叉。

区间1:从上次DIF、DEA死叉到当前金叉这个区间;

区间2:从上上次DIF、DEA死叉到上次金叉这个区间。

D1是图中区间1的DIF最低值;

D2是图中区间2的DIF最低值。

接下来解释一下语句的具体逻辑,比较难理解,技术Pie也觉得有点难为大家了,估计直接把大家劝退了,下面这段能看懂就看吧,看不懂就算了。

D1表示获取上次死叉以来DIF的最低值(下图D1);

D2表示返回到上次金叉那里(下图从左往右第二根黄色竖线处),获取对应的D1值,实际上就是区间2的最低值(下图D2)。因为语句有了嵌套,理解起来就难了。

e、

L1:=LLV(L,ST+1);

L2:=REF(L1,JT-1);

这两句和上面两句类似,只不过变成了获取区间内K线最低价的最低值。

L1是图上区间1的K线最低价的最低值;

L2是图上区间2的K线最低价的最低值。

代码逻辑就不详细解释了,和上面的解释类似。

f、

XG:JC AND L1<L2 AND D1>D2;

当前金叉,并且区间价格低点创新低,并且区间DIF低点抬高,符合条件的选出来。

四、答疑

问:

20日内有涨幅大于5%的,并且该日收盘价小于当前日收盘价,还并且该日收盘价大于该日前10日内收盘价的最高值。

说明:可能20日内还有涨幅大于5%的,只要有1日符合上述要求就行。

代码:

T:=BARSLAST(C/REF(C,1)>1.05);

A1:=REF(C,T);

A2:=REF(HHV(C,10),T);

XG:A1<C AND A1=A2;

感觉结果不是太理想,选出来的结果太多了。

关注技术Pie,学习更多通达信指标公式编写知识。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。