逻辑判断函数
 
 
BETWEEN(A,B,C) 介于
ISDELIVERYDAY 判断该周期是不是交割日
CROSS(X,Y) 交叉函数 ISLASTBAR 判断该周期是否为最后一根K线
CROSSUP(A,B) 向上穿越 ISLASTKLINE 判断该周期是否收盘前最后一根K线
CROSSDOWN(A,B) 向下穿越 ISUP 阳线
CROSS2(A,B) 二次交叉函数 KLINEEND 判断K线当前状态是否是K线结束
DIVERGENCE(X1,X2,S,L,HL)
变量X1与X2在指定周期内是否发生背离
KLINESTART 判断K线当前状态是否是K线开始
EVERY(COND,N) 判断函数 LAST(COND,N1,N2) 判断函数
EXIST(COND,N) 判断函数 LOOP2(COND,A,B) 循环函数
FILTER(COND,N) 过滤 LONGCROSS 维持交叉函数
IFELSE(COND,A,B) 条件函数 TREND 获取K线趋势
ISDOWN 阴线 VALUEWHEN(COND,DATA) 取值
ISEQUAL 平盘  
 
 

 
 
BETWEEN(A,B,C)
介于
表示A是否处于B和C之间,成立返回1(Yes),否则返回0(No)。
注:
1、其中若A=B、A=C、或A=B且B=C时函数返回值为1(Yse)。
例1:
BETWEEN(CLOSE,MA5,MA10); //表示收盘价介于5日均线与10日均线之间。
CROSS(X,Y)
交叉函数
表示A从下方向上穿过B,成立返回1(Yes),否则返回0(No)
注:
1、满足穿越的条件必须上根k线满足A<=B,当根k线满足A>B才被认定为穿越。
例1:
CROSS(CLOSE,MA(CLOSE,5));//表示收盘线从下方向上穿过5周期均线
CROSSUP(A,B)
向上穿越
表当A从下方向上穿过B,成立返回1(Yes),否则返回0(No)
注:
1、CROSSUP(A,B)等同于CROSS(A,B),CROSSUP(A,B)编写更利于理解。
例1:
MA5:=MA(C,5);
MA10:=MA(C,10);
CROSSUP(MA5,MA10),BK;//MA5上穿MA10,买开仓。
//CROSSUP(MA5,MA10),BK; 与 CROSSUP(MA5,MA10)=1,BK;表达同等意义
CROSSDOWN(A,B)
向下穿越
表示当A从上方向下穿B,成立返回1(Yes),否则返回0(No)
注:
1、CROSSDOWN(A,B)等同于CROSS(B,A),CROSSDOWN(A,B)编写更利于理解
例1:
MA5:=MA(C,5);
MA10:=MA(C,10);
CROSSDOWN(MA5,MA10),SK;//MA5下穿MA10卖开仓
//CROSSDOWN(MA5,MA10),SK; 与 CROSSDOWN(MA5,MA10)=1,SK;表达同等意义
CROSS2(A,B)
二次交叉函数
表示N个周期内当A从下方向上穿B偶数次。 赢顺不支持
注:
1、若N为0,则从第一个有效的值开始算。
2、当N为有效值,但当前的k线数不足N根,或者N空值的情况下,代表不成立,该函数返回0
例1:
MA5:=MA(C,5);
CROSS2(C,MA5,10) 返回值为1(Yes),表示当前周期是10个周期内(包含当前周期)收盘价从下方向上穿过5周期均线的第偶数次;返回值为0(No),表示当前周期不是10个周期内(包含当前周期)收盘价从下方向上穿过5周期均线的第偶数次
DIVERGENCE(X1,X2,S,L,HL)
变量X1与X2在指定周期内是否发生背离
变量X1与X2在指定周期内是否发生背离
用法:
S: 设置转折点两边需要的周期数,取值应小于L的四分之一;S不可以为变量;
L: 计算的总的范围的周期数;L不可以为变量。
HL: 可以取值为1和-1
1表示根据X1的峰值判断背离情况;
X1在L周期内波峰取值创了新高,但X2在X1峰值对应的取值没有创新高,熊背离,或称顶背离
-1表示计算波谷点,
X1在L周期内波谷取值创了新低,但X2在X1波谷对应的取值没有创新低,牛背离,或称底背离;
例1:
MA10:MA(C,10);
DIVERGENCE(C,MA10,2,20,1);//在20个周期内,收盘价与5周期均线存在顶背离
说明:收盘价峰值的判断标准--收盘价大于前2个周期的收盘价,并且大于后2个周期的收盘价,认为为收盘价的峰值;
即在当根K线前面的20个周期(不包含当根K线)内,收盘价存在两个这样的峰值,且峰值创了新高,但是在两个峰值对应K线取到的10周期均线照的值未创新高
EVERY(COND,N)
判断函数
判断N周期内,是否一直满足COND条件。若满足函数返回值为1,不满足函数返回值为0;
注:
1、N包含当前k线。
2、若N是有效数值,但前面没有那么多K线,或者N为空值,代表条件不满足,函数返回值为0。
3、N可以是变量
例1:
EVERY(CLOSE>OPEN,5);//表示5个周期内一直是阳线
例2:
MA5:=MA(C,5);//定义5周期均线
MA10:=MA(C,10);//定义10周期均线
EVERY(MA5>MA10,4),BK;//4个周期内MA5都大于MA10,则买开仓。
//EVERY(MA5>MA10,4),BK;与EVERY(MA5>MA10,4)=1,BK;表达同等意义
EXIST(COND,N)
判断函数
判断N个周期内是否有满足COND的条件(包含当前周期)
注:
1、N可以是变量。
2、若N是有效数值,但前面没有那么多K线,或者N为空值,代表条件不满足,该函数返回值为0
例1:
EXIST(CLOSE>REF(HIGH,1),10);表示10个周期中是否存在收盘价大于前一个周期的最高价,存在返回1,不存在则返回0.
例2:
N:=BARSLAST(DATE<>REF(DATE,1))+1;
EXIST(C>MA(C,5),N);// 表示当天是否有满足收盘价大于5周期均线的k线,存在返回1,不存在返回0
FILTER(COND,N)
过滤
当COND条件成立,将其后N周期内的数据设置为0.
注:
1、N为空值,返回空值。
2、N不能为变量
3、不能与BKPRICE,BARSBK,SKPRICE,BARSSK一起使用
例1:
FILTER(CLOSE>OPEN,3);// 查找阳线,3天内再次出现的阳线不被记录在内
IFELSE(COND,A,B)
条件函数
若COND条件成立,则返回A,否则返回B
注:
1、COND是判断条件;A、B可以是条件,也可以是数值。
例1:
IFELSE(ISUP,H,L);//如果k线为阳线,取最高价,否则取最低价
例2:
A:=IFELSE(MA5>MA10,CROSS(DIFF,DEA),IFELSE(CROSS(D,K),2,0));//当MA5>MA10时,取是否满足DIFF上穿DEA,否则(MA5不大于MA10),当K,D死叉时,令A赋值为2,若上述条件都不满足,A赋值为0
A=1,BPK;//当MA5>MA10,以DIFF上穿DEA作为开多仓条件
A=2,SPK;//当MA5不大于MA10,以K、D死叉作为开空仓条件
ISDOWN
阴线
判断该周期是否收阴
注:
1、ISDOWN等同于C<O
例:
ISDOWN=1&&C<REF(C,1),SK;//如果当根k线收阴并且收盘价小于前一周期收盘价,则开空
//ISDOWN=1&&C<REF(C,1),SK; 与 ISDOWN&&C<REF(C,1),SK; 表达同等意义
ISEQUAL
平盘
判断该周期是否平盘
注:
1、ISEQUAL等同于C=O
例1:
EVERY(ISEQUAL=1,2),CLOSEOUT;//如果持续2根k线都是平盘,则全平。
ISDELIVERYDAY
判断该周期是不是交割日
判断该周期是否是交割日。如果当前k线是交割日则返回1(Yes),否则返回0(No)
注:
1、只能使用在日线及小于日线的周期,在周线月线等大于日线的周期使用时返回值始终为0
例1:
ISDELIVERYDAY=1&&TIME>=1000,CLOSEOUT;//如果当根k线是交割日并且时间是10:00,则全平。
ISLASTBAR
判断该周期是否为最后一根K线
判断该周期是否为最后一根k线
注:
1、该函数属于未来函数。
例1:
VALUEWHEN(ISLASTBAR=1,REF(H,1));//如果当前k线是最后一根k线,则取前一周期的最高价。
ISLASTKLINE
判断该周期是否收盘前最后一根K线
判断该周期是否为每日收盘前最后一根k线,返回是1(Yes),否则返回0(No)。
例1:
ISLASTKLINE=1,CLOSEOUT;//如果该周期是当日收盘前最后一根k线,则全平
ISUP
阳线
判断该周期是否收阳
注:
1、ISUP等同于C>O
例:
ISUP=1&&C>REF(C,1),BK;//如果当根k线收阳并且收盘价大于前一周期收盘价,则开多
//ISUP=1&&C>REF(C,1),BK; 与 ISUP&&C>REF(C,1),BK;//表达同等意义
KLINEEND
判断K线当前状态是否是K线结束
判断K线当前状态是否是K线结束。
用法:
1、KLINEEND 如果当前K线状态为K线的结束,则返回1,否则返回0。
2、模组运行时下根K线接收到第一笔数据时,判断上根K线结束;历史回测中该函数返回值为1
KLINESTART
判断K线当前状态是否是K线开始
判断K线当前状态是否是K线开始。
用法:
1、KLINESTART 如果当前K线状态为K线的开始,则返回1,否则返回0。
2、模组运行及效果测试选择信号执行方式为“不进行信号复核”时,可以采用该函数来控制信号出现的时间
LAST(COND,N1,N2)
判断函数
判断过去N1到N2周期内,是否一直满足COND条件。
注:
1、若N1与N2只相差一个周期(如N1=3,N2=2),则函数判断距离当前K线最近的那个周期上是否满足条件(即判断过去N2个周期的那根K线上是否满足条件)
2、当N为有效值,但当前的k线数不足N根,或者N空值的情况下,代表不成立,该函数返回0
3、N可以是变量。
例1:
LAST(CLOSE>OPEN,10,5);//表示从过去第10个周期到第5个周期内一直是阳线
例2:
MA5:=MA(C,5);
LAST(C>MA5,4,3);//判断距离当前k线3个周期的那根k线上是否满足C大于MA5.
LOOP2(COND,A,B)
循环函数
LOOP2(COND,A,B);循环条件函数
若COND条件成立,则返回A,否则返回B
注:
1、COND是判断条件;A、B可以是条件,也可以是数值。
2、该函数支持变量循环引用前一周期自身变量,即支持下面这样的写法Y: LOOP2(CON,X,REF(Y,1));
例1:
X: LOOP2(ISUP,H,(X,1));//如果k线为阳线,取当根K线的最高价最高价,否则取上一次是阳线的K线的最高价
例2:
BB:LOOP2(BARSBK=1,LOOP2(L>LV(L,4),L,LV(L,4)),LOOP2(L>REF(BB,1),L,REF(BB,1)));//持有多单时,开多单那根的前面4个周期内的最低价为起始止损点BB,如果后续K线最低价比前一个最低价高,取当前最低价为止损点,否则取前一个低点为止损点,
SS:LOOP2(BARSSK=1,LOOP2(H<HV(H,4),H,HV(H,4)),LOOP2(H<REF(SS,1),H,REF(SS,1)));//持有空单时,开空单那根的前面4个周期内的最高价为起始止损点SS,如果最高价比前一个最高价低,取当前最高价为止损点,否则取前一个高点为止损点
H>HV(H,20),BK;
L<LV(L,20),SK;
C<BB,SP;
C>SS,BP;
AUTOFILTER;
LONGCROSS
维持交叉函数
维持交叉函数
LONGCROSS(A,B,N) 表示A在N个周期内都小于B,本周期A从下向上穿越B

注:
1、当N为有效值,但当前的k线数不足N根,
2、N为空值的情况下,代表不成立,函数返回0

例1:
LONGCROSS(CLOSE,MA(CLOSE,10),20);//表示收盘线在10日均线之下持续20周期后从下向上穿过10日均线

TREND
获取K线趋势
获取K线趋势。
用法:
1:TREND 如果K线的形成过程中最高价先出现,则返回值为3;如果最低价先出现,则返回值为2;若最高和最低一起出现,则返回值为1;默认为0。
2:该函数只支持效果测试和模组运行。
VALUEWHEN(COND,DATA)
取值
当COND条件成立时,取X的当前值。如COND条件不成立,则取上一次COND条件成立时X的值。
注:
X可以是数值也可以是条件。
例1
VALUEWHEN(HIGH>REF(HHV(HIGH,5),1),HIGH);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价
例2:
VALUEWHEN(DATE<>REF(DATE,1),O);表示取当天第一根k线的开盘价(即当天开盘价)
例3:
VALUEWHEN(DATE<>REF(DATE,1),L>REF(H,1));表示在当天第一根k线上判断当前最低价是否大于昨天最高价。如果返回1,说明当天跳空高开。返回0,说明当天不满足跳空高开条件。