循环语句,逐K,好像有问题,请教如何改写
s:=count(某条件1,barslast(某条件2));
for i=1 to s do begin
b1:=barslast(count(某条件1),barslast(某条件2))=i;
li0:=ref(l,b1);
li:=ifelse(li0<2500,0,li0);
lz:=max(li,0);
end
谢谢
你想实现什么样的逻辑处理
逻辑或者可以这样描述:
在最近的条件2成立的K线到现在,一共发生了条件1,S次
然后,找出这S次每一次的Low,如果low比2500小,直接赋值为0,再对这S个L进行比较,最后,取出最大的L
实际问题比这个要复杂一些,所以逻辑实际不是重点,重点是这种问题,count barslast ifelse 怎么把他们放到循环外面去,包括ref,虽然ref可以用数组,但是因为本例ref必须在循环里得出b1的情况才可求出来,故,不知怎么解决。
如果不把他们放到循环外面,结果是能够编译,但实际出错
谢谢
找出这S次每一次的Low,如果low比2500小,直接赋值为0,再对这S个L进行比较。
上述内容,你要排除小于2500的、是不想低于这个2500的参与计算最大值?
不可以
你的需求等价于下面的处理方式
CC:VALUEWHEN(条件1,low);