STKINDIEX('','ATR',0,4,-1,500)和REF(STKINDIEX('','ATR',0,4,0,500),1)是一回事吗?
不一样,比如:当前周期是日线,被引用的是五分钟。我用下面的代码直接测试的,这样比较直观:
a:STKINDIEX('','T1.cc',0,2,-1,1000);
a2:ref(STKINDIEX('','T1.cc',0,2,0,1000),1);
被引用指标T1:
cc:c;
如果我在小周期中引用大周期避免信号闪烁和反复加载,用REF和偏移-1哪个更好呢?
你小周期引用大周期存在闪烁问题,常用的解决方法是向前引用1根k线,指的是被引用的大周期。(stkindi函数向前引用都是指的被引用的公式)
而ref,指的是当前使用的周期,也就是当前周期的上N根数据。所以、两个函数的作用类似,当时用途有区别。
例如:5分钟引用60分钟周期数据:
ref(c,1);//指的是上一根5分钟周期的收盘价
stkindi(....,-1);//指的是60分钟周期下,上一根60分钟周期的收盘价
ref(stkindi(...),1);//指的是上一根5分钟周期上对应的60分钟周期上的收盘价。所以,行情按时间对齐的原则,60分钟中包含14根5分钟周期,也就是说会有14根5分钟周期引用的结果都是同一根60分钟周期的值。(你可以自己写个测试代码看下指标线的走势就能很好理解)
关于你说的ref和stkindi中的偏移问题,是需要看你要处理的是当前周期还是引用的其他周期,并不能明确指明谁更好用