以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]如何实现以下功能?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=78486)

--  作者:saintlucifer
--  发布时间:2015/5/12 9:10:50
--  [求助]如何实现以下功能?
现在有名为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
图片点击可在新窗口打开查看




--  作者:jinzhe
--  发布时间:2015/5/12 9:21:48
--  
处理中请稍等
--  作者:jinzhe
--  发布时间:2015/5/12 9:47:40
--  

理论上是这样的,但是系统运行的时候,你在引用未来的数据,那么系统先会判断这个未来的数据时间有没有产生,如果没有产生那么就返回最后的值

上面的结果就是最新的几根k线上,引用未来的数据,而未来的数据时间还没有产生,被系统判断为该未来时间还没有出现,所以返回最后的值


--  作者:saintlucifer
--  发布时间:2015/5/12 10:10:20
--  
那有没有办法解决呢?通过变动公式的内容以达到画出上述线段,但又不会有未来函数的问题?
--  作者:jinzhe
--  发布时间:2015/5/12 10:16:10
--  
你需要引用的数据是ma(c,3) ,为何要绕那么一大个圈子?
--  作者:saintlucifer
--  发布时间:2015/5/12 10:27:32
--  
因为我直接试过引用ma(c,3)画出来的图跟用这种方法画出来的不同,如下图,白线是有未来数据的,黄线是直接引用ma(c,3)的,两个数据不重叠,但是我需要白线的数据,就是要解决未来数据的问题。

图片点击可在新窗口打开查看此主题相关图片如下:002.png
图片点击可在新窗口打开查看

--  作者:jinzhe
--  发布时间:2015/5/12 10:31:49
--  

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

你没必要绕个大圈子


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:saintlucifer
--  发布时间:2015/5/12 10:41:44
--  
好的,我再试试