bool temp(Highest(V[1],11)>Highest(V[12],24)*1.618);
Series<Bool> Positive_K;
Positive_K = C>=O;
BV11A = (CountIf(Positive_K[1],11)>=8 && temp);
BV11B= (CountIf(Positive_K[1],11)>=8 && (Highest(V[1],11)>Highest(V[12],24)*1.618));
这两种本应该一样的结果,为什么会得出一个True,一个False???
老生常谈了,序列类型的问题
highest函数是序列类型,放在或有的控制结构中不能保证每根bar都能运行,函数内部的序列数据无法回溯上一根bar上函数内部的正确序列数据,导致计算出错。
这个问题社区里有很多帖子说过,想知道更详细的原理可以看零基础视频教程里
处理方式就是不要在and关键词后,不要在if while for控制结构里计算函数。
需要计算数据的,先用容器在正常控制结构中计算并保存完毕,然后再控制结构中调用该容器来获得数据
补充:
Series<Bool> Positive_K;
Positive_K = C>=O;