第八篇——通达信指标公式编写常用函数(四)——EVERY、COUNT(从零起步编写通达信指标公式系列)
内容提要:本文主要介绍了编写通达信指标公式会用到的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零轴之上首次金叉。
本文来自技术Pie
关注博主,学习更多通达信指标公式编写知识。