含义:IF的英文意思是“如果”,在通达信编程语言中,也是这样的意思。
使用方法:IF(X,A,B),如果X条件成立,得到的结果就是A;如果X条件不成立,得到的结果就是B。IF函数和之前讲的函数有一个明显的区别,就是有三个参数X、A、B,之前讲的函数一般是两个。
举例:
MA5:=MA(C,5);{5日均线}
MA10:=MA(C,10);{10日均线}
JC:=CROSS(MA5,MA10);{5日、10日均线金叉}
A1:IF(JC,1,0);{如果金叉,A1的结果就是1,否则就是0}
三、函数综合运用
今天结合交易软件自带的能量潮指标(OBV),来熟悉SUM函数和IF函数的使用。通过对指标代码的解读,可以对指标的使用方法有更深的认识。
OBV指标:
VA:=IF(C>REF(C,1),V,-V);
VA1:=IF(C=REF(C,1),0,VA);
OBV:SUM(VA1,0);
MAOBV:MA(OBV,30);
a、VA:=IF(C>REF(C,1),V,-V);
C>REF(C,1)表示今天的收盘价大于昨天的收盘价,也就是说今天是上涨的。整句的意思:如果今天是上涨的(C>REF(C,1)),VA的结果就是V(正的成交量);如果今天是下跌的(C
b、VA1:=IF(C=REF(C,1),0,VA); C=REF(C,1)表示今天收盘价等于昨天收盘价,也就是今天不涨不跌。整句的意思:如果今天不涨不跌,VA1的结果就是0,否则就是VA。 这是什么意思呢?上面已经讲过有三种情况,今天上涨、今天下跌、今天不涨不跌。在上一句公式中,今天不涨不跌(C=REF(C,1)),得到的结果是-V,而这一句重新赋值了,变成了今天不涨不跌,结果就是0。 这样今天上涨、今天下跌、今天不涨不跌,这三种情况就得到三个结果,分别是今天上涨V、今天下跌-V、今天不涨不跌0。 c、OBV:SUM(VA1,0); 表示统计从上市第一天以来的VA1的总和,简单说一下就是上涨了加上一个V,下跌了减去一个V,不涨不跌加上一个0,这样累加起来。 d、MAOBV:MA(OBV,30); 这句表示30日的OBV值简单移动平均 四、答疑 问:能写出来了吗,两个涨停中间,有几日收盘价大于第一个涨停收盘价的具体数字,比如3日,5日或其他数字公式? 代码: ZT:=C/REF(C,1)>1.095 AND C=H; RZT:=REF(BARSLAST(ZT),1); ZTJ:=REF(C,RZT+1); TJ1:=IF(ZT AND C>ZTJ,COUNT(C>ZTJ,RZT+1)-1,0); TJ2:=IF(ZT AND C<=ZTJ,COUNT(C>ZTJ,RZT+1),0); TJ:TJ1+TJ2; 本文来自技术Pie 关注博主,学习更多通达信指标公式编写知识。