现在有名为FUNC_DMA的公式如下:INPUT : CH01(3,1,5),DM01(3,2,4);
DMA01 : REF(MA(CLOSE,CH01),DM01),COLORYELLOW;
作用是提取3周期前的3日均线作为当前均线;
然后在主策略有以下跨周期引用:
DMA01 := STKINDIEX('','FUNC_DMA.DMA01(DMA_CH01,DMA_DM01)',0,11,3,100);
k线周期为30秒周期,多分钟周期为8分钟,这里的stkindiex参数中,引用了3周期后偏移的数据,因此造成了未来函数的问题,由于在func_dma公式里面,dma01参数是提取3周期之前的数据,这里按道理两个是应该会互相抵消的,但实际应用中,却出现了一大段的未来函数段,如下图,请问为什么?如果我想要不出现未来函数,但是又能实现上面的功能,请问可以怎么写?

此主题相关图片如下:001.png

理论上是这样的,但是系统运行的时候,你在引用未来的数据,那么系统先会判断这个未来的数据时间有没有产生,如果没有产生那么就返回最后的值
上面的结果就是最新的几根k线上,引用未来的数据,而未来的数据时间还没有产生,被系统判断为该未来时间还没有出现,所以返回最后的值
那有没有办法解决呢?通过变动公式的内容以达到画出上述线段,但又不会有未来函数的问题?
你需要引用的数据是ma(c,3) ,为何要绕那么一大个圈子?
因为我直接试过引用ma(c,3)画出来的图跟用这种方法画出来的不同,如下图,白线是有未来数据的,黄线是直接引用ma(c,3)的,两个数据不重叠,但是我需要白线的数据,就是要解决未来数据的问题。

此主题相关图片如下:002.png

这个是我本地测试时写的,用ma(c,3)的数据除了未来的那一部分,之前都是一致的
你没必要绕个大圈子

此主题相关图片如下:1.png