逻辑函数

逻辑函数
这组函数全部用于逻辑判断,所得结果非0即1

函数: IF(X,A,B)
参数: X、A、B为数组或常数
返回: 返回数组
说明: 若X不为0则返回A,否则返回B
示例: IF(CLOSE>OPEN,HIGH,LOW)
表示该周期收阳则返回最高值,否则返回最低值
IF,如果。
这个函数妙用无穷,例子举不胜举。这里只提要注意的几点。
1、用以下公式来测试,发现N取10,在最后一根K线还能输出1,N取11就输出0了。说明“X不为0”的极限值是0.1。
IF(ISLASTPERIOD/N,1,0);{参数N:10,1,999}
2、A和B两者,要求是有效值。如果A是有效值,B是无效值,在X满足条件的情况下,也未必能返回A。
IF(C>O,MA(C,5),MA(C,100000000));

函数: CROSS(A,B)
参数: A、B为数组或常数
返回: 返回数组
说明: 表示当A从下方向上穿过B时返回1,否则返回0
示例: CROSS(MA(CLOSE,5),MA(CLOSE,10))
表示5日均线与10日均线交金叉
CROSS,交叉。
这个“说明: 表示当A从下方向上穿过B时返回1,否则返回0 ”要咬文嚼字的话,要说成这样:
当上一个周期A<B,而当前周期A>B时,CROSS(A,B)返回1,否则返回0。
为什么要这样说呢?因为“从下方向上穿过”是个模糊说法,当两条线同时向下时,也会发生“金叉”,不信?看看以下公式的运行情况就知道了。
REF(A,1)<REF(B,1) AND A>B;
这个公式与CROSS(A,B)输出的结果应该是一样的。也可用以下公式验证。
LC:=REF(C,1);
D:=IF(C>LC,C-LC,0);  E:=IF(C<LC,LC-C,0);
A:=SUM(D,N)/N;       B:=SUM(E,N)/N;
原始RSI:100*A/(A+B); {N:6,2,100}
倚天RSI:SMA(MAX(C-LC,0),N,1)/SMA(ABS(C-LC),N,1)*100;
DRAWICON(CROSS(倚天RSI,原始RSI),0,10);
DRAWICON(REF(倚天RSI,1)<REF(原始RSI,1) AND 倚天RSI>原始RSI,10,11);
{坐标线位置:0; 20; 50; 80; 100; 参数N:6.2.100 }

函数: NOT(X)
参数: X为数组或常数
返回: 数组或常数
说明: 返回非X,即当X=0时返回1,否则返回0
示例: NOT(ISUP)
表示平盘或收阴
0.1是常数么?是。0.1不等于0吧?是。那么NOT(0.1)应该返回0了?
按说明应该返回0,但实际上是返回1的。
NOT(C/N);
NOT(0.1);{参数N:10,1,999}

函数: ISUP
参数: 无
返回: 返回数组
说明: 当收盘>开盘时,返回值为1,否则为0
函数: ISEQUAL
参数: 无
返回: 返回数组
说明: 当收盘=开盘时,返回值为1,否则为0
函数: ISDOWN
参数: 无
返回: 返回数组
说明: 当收盘<开盘时,返回值为1,否则为0
SUP相当于O<C, ISEQUAL相当于O=C, ISDOWN相当于O>C,感觉没有什么用,只是有时可以使公式简洁一点。

函数: BETWEEN(A,B,C)
参数: 无
返回: 返回数组
说明: 表示A处于B和C之间时返回1,否则返回0
示例: BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盘价介于5日均线和10日均线之间
函数: RANGE(A,B,C)
参数: 无
返回: 返回数组
说明: 表示A大于B同时小于C时返回1,否则返回0
示例: RANGE(CLOSE,MA(CLOSE,5),MA(CLOSE,10))表示收盘价大于5日均线并且小于10日均线
BETWEEN,在...之间。RANGE,范围、排列。
BETWEEN返回1,相当于满足条件:(A>B AND A<C) OR (A<B AND A>C)。
R

来源/skyfinance 时间/2007年8月29日14时16分 关闭窗口