之前,简单介绍了通达信的公式用法。
这里继续介绍通达信的逻辑指标体系。
首先,我们来看一个简单的例子:
我们想画一条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
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!