Commentary(Text(CloseD(1)));
If(BarsSinceToday==0)
{
Commentary(Text(CloseD(1)));
}
两个输出结果完全不一样,放到外面是对的,但只要放到BarsSinceToday条件里,取的closeD就是错的了,这是什么原因?
放到外面编译通过

放到BarsSinceToday条件里编译有警告错误

你确要放到BarsSinceToday条件里可用下面的,效果是一样的

谢谢,用closeD(1)可能超范围所以有警告吧?我还不能用close[1],因为还要取closeD(2),closeD(3)等,就是搞不懂这个条件BarsSinceToday==0,用了就取出的是错误的
不是超范围警告 而是序列函数的警告
close[1]只是一个数据,在任何地方使用都一样
closeD () 是系统函数 ,是需要进行运算的,运算需要的取值如果是有条件的,那就会出错,凡是用到了序列变量的函数,都最好不要放在分支条件下执行

至于为什么会出错
零基础课有讲
https://video.tbquant.net/video?id=video443
最近直播课又有专门讲
感谢,已学习
👍