以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请问老师IF条件内是不是有条件个数限制  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=86771)

--  作者:永杰
--  发布时间:2015/10/30 8:59:24
--  请问老师IF条件内是不是有条件个数限制
例子1:
zktj17:=if(h>UPPER and h>ref(h,1) and  KDJ_J1<ref(KDJ_J1,1) and roc<ref(roc,1) and zk17fj=1 and KDJ_D1<ref(KDJ_D1,1) ,1,0);//此条件汇总到下面不起作用不知道是不是跟条件总和数有关系
其中UPPER是BOLL线上轨。
zktj:=if(zktj1=1 or zktj2=1 or zktj3=1 or zktj4=1  or zktj5=1 or zktj6=1 or zktj7=1 or zktj8=1 or zktj9=1 or zktj10=1 or zktj11=1 or zktj12=1 or zktj13=1 or zktj14=1 or zktj15=1 or zktj16=1,1,0);
如果把zktj写成:zktj:=if(zktj1=1 or zktj2=1 or zktj3=1 or zktj4=1  or zktj5=1 or zktj6=1 or zktj7=1 or zktj8=1 or zktj9=1 or zktj10=1 or zktj11=1 or zktj12=1 or zktj13=1 or zktj14=1 or zktj15=1 or zktj16=1 or zktj17=1,1,0);无论zktj17结果是多少,对zktj都不产生影响;

例子2:
ktianfj:=if((kTIANFJ1=1 or kTIANFJ2=1 or kTIANFJ3=1) and ktianfj4=1 and ktianfj5=1 and ktianfj6=1 and ktianfj7=1,1,0);
tiantiptj1:=if((tianti=1 or xiaoniu=1) and ktianfj=1  and ((1ma1<ma(1ma1,2) and 1ma2<ma(1ma2,2)) or blptj=1  or cross(LOWER,c) or cross(MID,c)) and 1MA1-ref(1ma1,2)<=ref(1ma1,2)-ref(1ma1,4)  and 1MA2-ref(1ma2,2)<=ref(1ma2,2)-ref(1ma2,4)  and MID-ref(mid,2)<=ref(MID,2)-ref(MID,4),1,0);
其中tiantiptj1最后1个条件 MID-ref(mid,2)<=ref(MID,2)-ref(MID,4),无论单独放在ktianfj里,还是放在tiantiptj1的任何位置,都不起作用。
 我编写的程序已经稳定后台运行,就是有几个这样的地方总出错,还总处理不了,恳请老师答复。

--  作者:jinzhe
--  发布时间:2015/10/30 9:12:02
--  
也就是只能有16个条件,第17个就无效的意思吗?
--  作者:永杰
--  发布时间:2015/10/30 9:22:06
--  
老师是这个意思,奇怪的是,第17个条件放在哪里都不起作用,我怀疑是有条件个数限制,感觉又不对,把第17个条件放到交易里,就起作用。例子2就麻烦了,因为要用MID-ref(mid,2)<=ref(MID,2)-ref(MID,4)控制它条件成立,可是怎么放,它都不能控制。
实在麻烦老师了,不知道是IF里面有条件个数限制,还是对IF里面对REF()函数有限制。

--  作者:jinzhe
--  发布时间:2015/10/30 9:29:40
--  
没有啊,还是起作用的,你是不是or判断没有括号,所以先判断and了?你把要先判断的先括号起来
图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2015/10/30 9:29:56编辑过]

--  作者:永杰
--  发布时间:2015/10/30 9:31:31
--  
好的,谢谢老师,我再慢慢想想。