老师你好,程序中因为有跨期引用,出现了未来函数现象,经过客服老师指导,把引用时间提前了一个周期,即最后一个参数写为-1;例如WR1:=STKINDI('','W&R. ww1',0,KQ,-1);但程序实际运行中仍然还会出现交易信号实盘没有但事后倒补出或者实盘本有但稍后消失的情况,请问问题出在哪里,应该如何处理?谢谢。
偏移一个周期是一方面,另一方面是如果你是小周期引用大周期也是可能存在信号闪烁的。你当前运行周期是多少?KQ的值是多少?
在3分钟图表上引用两小时,KQ=24.可能就是你说的问题,还有什么解决方案吗?
一样的,引用2小时周期的前一根K,K线走完了不会造成闪烁
纠正:6楼的方式错误。(ref是当前使用的周期向前偏移一根,不是对被引用周期的操作)
STKINDI引用其周期参数大于19后,则无法使用偏移方式处理。而你的这句代码存在逻辑错误。
按你的需求,是2小时周期,那么下面红色部分应该是2,代表多小时的补充参数。
STKINDI('','W&R. ww1',0,24,-1); //===》STKINDI('','W&R. ww1',0,24,2;
对于这种情况下,小周期引用大周期的方式,需要在'W&R公式中特殊处理下。示例如下
ww1:xxxxxxxxxxx;
ref_ww1:ref(ww1,1);//上一个ww1的值
然后使用stkindi引用。
STKINDI('','W&R. ref_ww1',0,24,2;);
"STKINDI引用其周期参数大于19后,则无法使用偏移方式处理。"
那下面的代码也是错误的吗?
3MS:=STKINDI('','X.Y',0,21,3);
IF REF(3MS,1) THEN
是的,存在逻辑错误。STKINDI('','X.Y',0,21,3);代表引用3分钟周期的的x指标中当前对应的Y的值。
REF(3MS,1) ;指的是当前周期下,上一k上对应的3MS.(如果你在1分钟周期上,引用的3ms.那么上一根对应的结果也是当前对应的结果。因为3分钟线还没走完。或者说,按时间对其的原则,3每三根一分钟线,对用一根1分钟线,)
[此贴子已经被作者于2018/4/8 8:37:29编辑过]