CLOSED日期超过5显示错误

各位老师好,自己测试CLOSED时,发现日期在5以内还是对的,超过5以后就是错的了,不知道什么原因,超过的那天恰好是跨周末,也就是这个日期参数是实际日期,不是交易日是吧,但即使是实际日期,比如设置8或10后,出来的数据都是一样的,不知道什么原因,望各位老师指点,谢啦C2分别测试1-8后的结果//------------------------------------------------------------------------ // 简称: CSCS1234 // 名称: // 类别: 指标应用 // 类型: 用户应用 // 输出: Void //------------------------------------------------------------------------ Params //此处添加参数 Numeric millsecs(1000); Vars //此处添加变量 Numeric avg; Global Integer timerId; Global Numeric C1; Global Numeric C2; Global Numeric b; Events OnBar(ArrayRef<Integer> indexs) { c1=CloseD(0); c2=CloseD(8); if(BarStatus==2) { Print("C1:" + Text(c1)); Print("C2:" + Text(c2)); } }

首先看看图表上面是不是有足够多的数据,数据量不够会导致异常。其次CloseD是序列函数,你提供的代码中if(BarStatus==2)不能保证每根Bar都会执行CloseD,这会导致序列类型的数据处理异常。

回复:图表我用的3分钟,只调用10天的按理应该够才行,我相当于小周期上最后一根K线调用日线数据,目前测试就到5可以,多了就不行了,之前看视频教学,说可以直接赋值给一个变量,然后放到IF里就没事了,想问下老师,这种情况如何处理

回复:CloseD使用前置条件较多,或许可以考虑使用quant的跨周期调用图层机制来取日线数据 https://video.tbquant.net/video?id=video431

回复:好的,非常感谢老师,我学习一下

回复:老师可以帮我看看这个吗,周末也是尝试了好久,一直解决不了,非常感谢! https://bbs.tbquant.net/thread/20260704113733835142