认识通达信的逻辑指标体系

之前,简单介绍了通达信的公式用法。

通达信公式入门介绍

这里继续介绍通达信的逻辑指标体系。

首先,我们来看一个简单的例子:

我们想画一条EMA均线,要求它上升时画红线,下降时画绿线。怎么办?

这里我先写出结果,要详细理解,请看下面的文章:

EMA20:=EMA(CLOSE,20);EMA20A:EMA20,COLORGREEN;EMA20B:IF(EMA20>REF(EMA20,1), EMA20,DRAWNULL),COLORRED;

要理解和掌握这个例子,就需要应用通达信公式的逻辑体系。

通达信全部与逻辑相关的指标如下,大家可以先收藏保存下来,等熟悉了用法之后,后期就可以进行灵活运用

<:小于

>:大于

<=:小于等于

>=:大于等于

=:等于

!=:不等于

例如: X != Y

<>:不等于

AND:并且

例如: X>Y AND Y>Z

OR:或者

&&:并且

与AND的用法一样

||:或者

与OR的用法一致

IF:条件判断

根据条件求不同的值.

用法:IF(X,A,B)若X不为0则返回A,否则返回B

例如:IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值

IFF:条件判断

用法同IF一样

IFN:条件反判断

根据条件求不同的值,同IF判断相反.

用法:IFN(X,A,B)若X不为0则返回B,否则返回A

例如:IFN(CLOSE>OPEN,HIGH,LOW)表示该周期收阴则返回最高值,否则返回最低值

IFC:条件判断,可中止

根据条件求不同的值,可中止.

用法:IFC(X,A,B)若X不为0则返回A,否则返回B。IFC与IF函数的区别:根据X的值来选择性执行A、B表达式.

例如:IFC(CLOSE>OPEN,HIGH,TESTSKIP(1));L;表示当日收阳则返回最高值,并执行下一句”L;”,否则退出公式计算(TESTSKIP的用法见下文)。

这里重点比较一下IF和IFC公式,二者的官方解释为:

IF(X,A,B)若X不为0则返回A,否则返回B

IFC(X,A,B)若X不为0则返回A,否则返回B.

IFC与IF函数的区别:根据X的值来选择性执行A、B表达式。

字面意思上,看起来,IFC计算量更小一些,只需要根据条件X的成立与否,选择性的执行A或者B那实际上是否真的是这样子呢?

这里我新建一个IFC的测试公式,上面表示当日收阳线,就是10,否则就是-10

图片

这个公式的计算结果如何呢?

看副图,在我的这一版通达信上,无论收阴线还是阳线,它的输出永远是10。

也就是说,根本就没有根据判断条件,它永远输出10。这显然与官方的解释不符。

图片

那我再加上IF的测试呢:

图片

图片

这时候可以看出,IF的输出值是符合官方解释的:收阳线时,判断条件为真,就输出10;否则就输出-10;

那么这就尴尬啦。IFC看起来就不是这么用的。

我们来看一下官方的用法举例:

IFC(CLOSE>OPEN,HIGH,TESTSKIP(1));L;表示当日收阳则返回最高值,并执行下一句”L;”,否则退出公式计算。

这里,官方用法中,是配合TESTSKIP来退出当前计算。

所以,上面IFC的用法以及我的理解,应该是错误的。

具体这个IFC到底能干什么大用途,还值得进一步挖掘,我反正是还没想明白它到底在干什么的。还请各位高手指正

VALUEWHEN:条件跟随

VALUEWHEN(COND,X)

当COND条件成立时,取X的当前值,否则取VALUEWHEN的上个值.

例:VALUEWHEN(C>O,C);表示当前K线为阳线(因为收盘价>开盘价)时,取当前K线收盘价的值,否则取上一根K线的 VALUEWHEN值

TESTSKIP:是否就此返回

TESTSKIP(A):满足A则直接返回.

用法:TESTSKIP(A)

表示如果满足条件A则该公式直接返回,不再计算接下来的表达式注意:A为非序列数据,只取最后一个数据

比如:

IFC(C>O,H,TESTSKIP(1));L; 表示当日收阳线,则返回最高价,并执行下一句L;否则就退出公式计算。

以上就介绍了通达信全部跟逻辑相关的公式。

那么开头的关于EMA均线上升和下降颜色改变的题目,你应该就能明白了原理了。

我们新建一个“主图叠加”的公式:

图片

公式源码为:

EMA20:=EMA(CLOSE,20);EMA20A:EMA20,COLORGREEN,LINETHICK3;EMA20B:IF(EMA20>REF(EMA20,1), EMA20,DRAWNULL),COLORRED,LINETHICK3;

这里为了突出显示,我特意把均线的线型增大为3号。

实战效果是下面这样子的:

图片

现在,配合IF逻辑,你是否能看懂了呢?

要是还看不懂,就自己把公式拷贝到手机或者电脑上,修改、测试吧。

关于“通达信公式编写教材以及学习方法的答复”

后台有很多新入门的小伙伴咨询怎么入门通达信的普通公式编写,

之前我在“通达信公式入门介绍”这一文章中,详细介绍了公式编写的是实战方法,主要思想,就是“抄”,然后是修改、测试。

而抄写和修改的范本,就是通达信“公式编辑器”中的“插入函数”按钮

图片

至于学习教材,目前市面上的确很少有相关的从基础入门的图书。

如果你实在是要我推荐入门教材,那下面这本可能是最接近的、着重讲公式编写的书,但它也不是教你怎么从最基础入门的。

这本书的起步门槛也比较高。作者是从专业版的专业函数的使用开始讲起,你要是用的是普通免费版,一开始可能就会懵的不行。

总而言之,编写指标,多看说明书,多测试,才是王道。

我的文章,也是领大家入个门。

一万小时定律,永远存在。不写个几千、上万小时的指标,是体会不到公式编写的高端局的。

这条定律更是特别适用于通达信、大智慧的DLL的公式编写。

要想一窥通达信、大智慧这类软件的计算原理,你最后可能都要深入到C/C++,甚至于还需要研究一下基本的汇编语法。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/109102
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 6小时前
下一篇 6小时前

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注