Sunday, September 22, 2019

文华财经程序逻辑判断函数用法

辑判断函数-这是在文华模型及程序中一个重点,通过使用这些判断函数才能对我们公式中条件是否成立做确认-西部汇市

介于两个数之间。
用法:
BETWEEN(A,B,C)表示A处于B和C之间时返回1(Yes),否则返回0(No)
例:BETWEEN(CLOSE,MA5,MA10); 表示收盘价介于5日均线与10日均线之间。

两条线交叉。
用法:
CROSS(A,B)表示当A从下方向上穿过B时返回1(Yes),否则返回0(No)
例:CROSS(CLOSE,MA(CLOSE,5));表示收盘线从下方向上穿过5日均线


判断过去一定周期内,是否有满足条件。
用法:
EXIST(OPEN>CLOSE,N)判断过去N个中期内是否有下跌的。
例:EXIST(CLOSE>REF(HIGH,1),10);表示过去10个周期中是否存在收盘价大于前一个周期的最高价

判断过去一定周期内,是否一直满足条件。
用法:
EVERY(OPEN>CLOSE,N)判断过去N个周期内是否一直下跌。
例:EVERY(CLOSE>OPEN,5);表示5个周期内一直是阳线

过滤连续出现的信号。
用法:
FILTER(COND,N) 当COND条件成立时,将其后N周期内的数据置为0。
例:FILTER(CLOSE>OPEN,3) 查找阳线,3天内再次出现的阳线不被记录在内
注:不能与BKPRICE,BARSBK,SKPRICE,BARSSK一起使用

根据条件取不同的值。
用法:
IFELSE(X,A,B)若X不为0则返回A,否则返回B。
例:IFELSE(CLOSE>REF(CLOSE,1),1,0);表示若今日收盘价高于前一日收盘价,则返回1,否则返回0


该周期是否收阴。
用法:
ISDOWN若该周期收阴则返回1(Yes),否则返回0(No)。

该周期是否平盘
用法:
ISEQUAL若该周期平盘则返回1(Yes),否则返回0(No)。

判断该周期是否为最后一根k线。
用法:
ISLASTBAR 如果是最后一个K线返回1(Yes),否则返回0(No)。

该周期是否收阳。
用法:
ISUP若该周期收阳则返回1(Yes),否则返回0(No)。

判断过去N1到N2周期内,是否一直满足条件。
用法:
LAST(OPEN>CLOSE,N1,N2)判断过去N1到N2周期内,是否一直收阴。
例:LAST(CLOSE>OPEN,10,5);表示从过去第10个周期到第5个周期内一直是阳线

两条线交叉。
用法:
LONGCROSS(A,B,N)表示A在N个周期内都小于B,
本周期从下向上穿越B。
例:LONGCROSS(CLOSE,MA(CLOSE,10),20);表示收盘线在10日均线之下持续20周期后从下向上穿过10日均线

设置不过滤。
用法:
设置模型对产生的交易指令不过滤,则出现的任何交易指令都会执行,如果没有设置“不过滤”,则产生的指令将按照如下规则过滤:
1.连续的同方向指令只有第一个有效,其他的将被过滤;
2.交易指令必须配对出现(例如:前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被滤掉。这也就意味着,第一个指令只能是买开或者卖开指令,其他的都被过滤);
3.但是在进行模型效果测试及优化时,无论设置过滤与否,都按照前面的规则对指令进行了过滤。

取某个值。
用法:
VALUEWHEN(COND,X) 当COND条件成立时,取X的当前值,否则取VALUEWHEN的上一个值。
例:VALUEWHEN(HIGH>REF(HIGH,5),HIGH);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价。
 http://www.fxsola.com/whbc/whluojipanduan.asp