Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:新手求教关于编写类似dma,如何定义初始值

1楼
蚍蜉之力 发表于:2015/6/14 18:38:33
想定义一个类似dma的值,y:=若Y=DMA(X,A) 则 Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须小于1。
编译时是未定义变量,初始值不知道该怎么搞,求帮助
2楼
jinzhe 发表于:2015/6/15 9:27:01
把你写的都贴一下,你发的内容我不知道如何找到“未定义变量”在哪里
3楼
蚍蜉之力 发表于: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循环控制语句中被引用的原理和解决方案”帖子正在看,有点不好理解

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

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

a=rec(a,1)*aa

6楼
蚍蜉之力 发表于:2015/6/20 15:18:18
这个我知道了,能否帮我用for函数编一下3楼所说的那个,如果初始值a1:=rec(c,m)
7楼
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];

用数组循环的

8楼
蚍蜉之力 发表于:2015/6/23 21:43:46
谢了,受益匪浅
共8 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03320 s, 3 queries.