我需要使用plotbool确认开仓的条件判断,当写入 raiseback = close < ref(close, n);raiseback=raiseback[1];时,用if(raiseback)
{
plotbool("raiseback",true,low-20);
}
输出到图表没有结果,删掉raiseback=raiseback[1]后有正常显示,如何表达raiseback = close < ref(close, n)的向前引用,我尝试用raiseback = (close < ref(close, n))[1]显示报错说缺少分号,应该如何解决
什么意思,看不懂
如果你是
if(raiseback)
{
plotbool("raiseback",true,low-20);
}
这样写没有结果,说明的raiseback一直是false。
至于为什么是false,要看你raiseback之前的运算结果
raiseback = close < ref(close, n); //这句意思当前bar收盘价小于n根bar前的收盘价,判断结果存放在raiseback中。
raiseback=raiseback[1];//把上一根raiseback的值放到当前bar的raiseback中
根据你这两句代码的运算结果,实际上第一根bar的 raiseback的值会一直传递下去,因为无论你当前bar收盘价是否小于n根bar的收盘价,你最终还是会取上一根bar的raiseback作为计算结果,raiseback = close < ref(close, n);这句代码完全是无意义的。
所以这个问题主要还是你写了很奇怪的业务逻辑导致的。
具体要怎么改,还是要问你自己,你到底想实现什么样的算法逻辑?
我想表达昨天的收盘价低于N日前的收盘价,在今天判断这个条件是否成立,应该怎么写
raiseback=raiseback[1];//把上一根raiseback的值放到当前bar的raiseback中 也就是说只要第一根线的结果是false,他之后就一直会显示false?第一根线的结果是true,他会一直显示true,因为函数[1]这样的表达只是显示上一次的结果,而不对每一根线的raiseback = close < ref(close, n)这句进行重新运算,是这个意思吗
是的
你如果表达 昨天的收盘价低于N日前的收盘价
直接写
raiseback = close < ref(close, n);
raiseback就是你要的结果
tbq3语言里的close就是指收盘价吗,那如果今天的K线走完了,close还是表示的昨天的收盘价吗
close在历史k线表示当前bar的收盘价
在实时bar上表示当前bar的最新价。
那我想在历史K线中表达昨天的收盘价,直接用close是不是不太对
上一根k线的收盘价是close[1]