if中包含序列函数如何解决?

老师好,if(条件满足){ zuidi= Lowest(low,20);}伪代码如上。现在的状态下,一是会提示有潜在逻辑错误,二来输出的最低值也不是20周期内的lowest。如果一定要满足某个条件后再回溯最低值,请问老师有好的解决方案吗?谢谢

Lowest在IF内就会提示,你if条件没法时刻满足导致序列变量赋值错误正确做法a= Lowest(low,20);if(条件满足){zuidi= a;}

回复:王老师好,代码进阶一步,如果lowest的周期是,if条件满足后才能确定的,比如a= Lowest(low,zhouqi);if(条件满足){zhouqi== b(b为这个if条件之外的某个计数方式)zuidi= a;}这样似乎每个bar都要执行一遍lowest。但是如果在lowest前面加一个开关控制,又陷入了if中包含序列函数的问题。请教王老师有什么好的解决办法么?

回复:如果b是可以穷尽的,那就笨一点,所有可能的b都在条件语句外运算好。只要能穷尽,这点运算量对现在的计算机来说,不会有太大的差别

回复:lowest 实际执行跟你想得不同必须按上面的来,除非你能保证每次if内的lowest都能计算正确

回复:在 If 大括号内用 for 循环 b 次把之前的 Low 比较一遍,得出最小值。