以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  新手求教关于编写类似dma,如何定义初始值  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=79778)

--  作者:蚍蜉之力
--  发布时间:2015/6/14 18:38:33
--  新手求教关于编写类似dma,如何定义初始值
想定义一个类似dma的值,y:=若Y=DMA(X,A) 则 Y=A*X+(1-A)*Y\',其中Y\'表示上一周期Y值,A必须小于1。
编译时是未定义变量,初始值不知道该怎么搞,求帮助

--  作者:jinzhe
--  发布时间:2015/6/15 9:27:01
--  
把你写的都贴一下,你发的内容我不知道如何找到“未定义变量”在哪里
--  作者:蚍蜉之力
--  发布时间:2015/6/20 10:35:55
--  
前两天有事,不好意思

思路是这样的,定义一个变量a,
a1:=rec(c,5);
a2:=a1*(1+(rec(c,4)-rec(c,5))/rec(c,5));
a3:=a2*(1+(rec(c,3)-rec(c,4))/rec(c,4));
a4:=a3*(1+(rec(c,2)-rec(c,3))/rec(c,3));
a5:=a4*(1+(rec(c,1)-rec(c,2))/rec(c,2));
a:a5*(1+(c-rec(c,1))/rec(c,1));
如果a1:=rec(c,m);若m=20或者更大时,不知道该怎么用for函数写了,那个“函数不能在IF THEN FOR循环控制语句中被引用的原理和解决方案”帖子正在看,有点不好理解


--  作者:蚍蜉之力
--  发布时间:2015/6/20 10:39:24
--  
刚开始的,思路不是很清晰,想写一个a=rec(a,1)*aa(系数),但是这样明显不对,又不知道具体该怎么编,整理了一下思路,大致是楼上表达的那样
--  作者:王锋
--  发布时间:2015/6/20 15:05:55
--  

a=你要初始的值,如果没这个是计算不出的

a=rec(a,1)*aa


--  作者:蚍蜉之力
--  发布时间:2015/6/20 15:18:18
--  
这个我知道了,能否帮我用for函数编一下3楼所说的那个,如果初始值a1:=rec(c,m)
--  作者:jinzhe
--  发布时间:2015/6/23 8:48:33
--  

runmode:0;
variable:a[6]=0;
a[1]:=ref(c,5);

for i=1 to 5 do begin
 a[i+1]:=a[i]*(1+(ref(c,5-i)-ref(c,5-i+1))/ref(c,5-i+1));
end
aa1:a[1];
aa2:a[2];
aa3:a[3];

用数组循环的


--  作者:蚍蜉之力
--  发布时间:2015/6/23 21:43:46
--  
谢了,受益匪浅